From: Anatol Belski Date: Wed, 4 Feb 2015 16:13:52 +0000 (+0100) Subject: fix wars about importing of locally defined symbols X-Git-Tag: PRE_PHP7_EREG_MYSQL_REMOVALS~3^2~18 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=430514e33d9200284f2f9fb5403f887757e2f033;p=php fix wars about importing of locally defined symbols --- diff --git a/ext/dom/xml_common.h b/ext/dom/xml_common.h index a52ced773f..eb7b7e8909 100644 --- a/ext/dom/xml_common.h +++ b/ext/dom/xml_common.h @@ -40,22 +40,20 @@ static inline dom_object *php_dom_obj_from_obj(zend_object *obj) { #define Z_DOMOBJ_P(zv) php_dom_obj_from_obj(Z_OBJ_P((zv))) #ifdef PHP_WIN32 -# ifdef PHPAPI -# undef PHPAPI -# endif # ifdef DOM_EXPORTS -# define PHPAPI __declspec(dllexport) -# else -# define PHPAPI __declspec(dllimport) +# define PHP_DOM_EXPORT __declspec(dllexport) +# elif !defined(DOM_LOCAL_DEFINES) /* Allow to counteract LNK4049 warning. */ +# define PHP_DOM_EXPORT __declspec(dllimport) +# else +# define PHP_DOM_EXPORT # endif /* DOM_EXPORTS */ #elif defined(__GNUC__) && __GNUC__ >= 4 -# ifdef PHPAPI -# undef PHPAPI -# endif -# define PHPAPI __attribute__ ((visibility("default"))) -#endif /* PHP_WIN32 */ - -#define PHP_DOM_EXPORT PHPAPI +# define PHP_DOM_EXPORT __attribute__ ((visibility("default"))) +#elif defined(PHPAPI) +# define PHP_DOM_EXPORT PHPAPI +#else +# define PHP_DOM_EXPORT +#endif PHP_DOM_EXPORT extern zend_class_entry *dom_node_class_entry; PHP_DOM_EXPORT dom_object *php_dom_object_get_data(xmlNodePtr obj); diff --git a/ext/xmlreader/php_xmlreader.h b/ext/xmlreader/php_xmlreader.h index 47fbccf488..e07c126c8e 100644 --- a/ext/xmlreader/php_xmlreader.h +++ b/ext/xmlreader/php_xmlreader.h @@ -31,6 +31,14 @@ extern zend_module_entry xmlreader_module_entry; #include "ext/libxml/php_libxml.h" #include +/* If xmlreader and dom both are compiled statically, + no DLL import should be used in xmlreader for dom symbols. */ +#ifdef PHP_WIN32 +# if defined(HAVE_DOM) && !defined(COMPILE_DL_DOM) +# define DOM_LOCAL_DEFINES 1 +# endif +#endif + typedef struct _xmlreader_object { xmlTextReaderPtr ptr; /* strings must be set in input buffer as copy is required */