summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
Diffstat (limited to 'ext')
-rw-r--r--ext/dom/xml_common.h24
-rw-r--r--ext/xmlreader/php_xmlreader.h8
2 files changed, 19 insertions, 13 deletions
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 <libxml/xmlreader.h>
+/* 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 */