mirror of
https://github.com/php/php-src.git
synced 2025-08-15 13:38:49 +02:00

* Include from build dir first This fixes out of tree builds by ensuring that configure artifacts are included from the build dir. Before, out of tree builds would preferably include files from the src dir, as the include path was defined as follows (ignoring includes from ext/ and sapi/) : -I$(top_builddir)/main -I$(top_srcdir) -I$(top_builddir)/TSRM -I$(top_builddir)/Zend -I$(top_srcdir)/main -I$(top_srcdir)/Zend -I$(top_srcdir)/TSRM -I$(top_builddir)/ As a result, an out of tree build would include configure artifacts such as `main/php_config.h` from the src dir. After this change, the include path is defined as follows: -I$(top_builddir)/main -I$(top_builddir) -I$(top_srcdir)/main -I$(top_srcdir) -I$(top_builddir)/TSRM -I$(top_builddir)/Zend -I$(top_srcdir)/Zend -I$(top_srcdir)/TSRM * Fix extension include path for out of tree builds * Include config.h with the brackets form `#include "config.h"` searches in the directory containing the including-file before any other include path. This can include the wrong config.h when building out of tree and a config.h exists in the source tree. Using `#include <config.h>` uses exclusively the include path, and gives priority to the build dir.
39 lines
837 B
C
39 lines
837 B
C
#ifndef incl_PHP_GMP_INT_H
|
|
#define incl_PHP_GMP_INT_H
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
#include <config.h>
|
|
#endif
|
|
|
|
#include "php.h"
|
|
#include <gmp.h>
|
|
|
|
#ifdef PHP_WIN32
|
|
# define PHP_GMP_API __declspec(dllexport)
|
|
#elif defined(__GNUC__) && __GNUC__ >= 4
|
|
# define PHP_GMP_API __attribute__ ((visibility("default")))
|
|
#else
|
|
# define PHP_GMP_API
|
|
#endif
|
|
|
|
typedef struct _gmp_object {
|
|
mpz_t num;
|
|
zend_object std;
|
|
} gmp_object;
|
|
|
|
static inline gmp_object *php_gmp_object_from_zend_object(zend_object *zobj) {
|
|
return (gmp_object *)( ((char *)zobj) - XtOffsetOf(gmp_object, std) );
|
|
}
|
|
|
|
PHP_GMP_API zend_class_entry *php_gmp_class_entry(void);
|
|
|
|
/* GMP and MPIR use different datatypes on different platforms */
|
|
#ifdef _WIN64
|
|
typedef zend_long gmp_long;
|
|
typedef zend_ulong gmp_ulong;
|
|
#else
|
|
typedef long gmp_long;
|
|
typedef unsigned long gmp_ulong;
|
|
#endif
|
|
|
|
#endif
|