2
1

0007-ext-xml-expat_compat.h-add-missing-php.h-include.patch 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. From fb1f0e17eed729204a6d5caf590715d6257dceb3 Mon Sep 17 00:00:00 2001
  2. From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
  3. Date: Thu, 5 Apr 2018 22:50:00 +0200
  4. Subject: [PATCH] ext/xml/expat_compat.h: add missing php.h include
  5. When expat support is disabled and libxml support is enabled, the
  6. following part of the code in expat_compat.h gets used:
  7. and therefore "php".h" is included. However, when libexpat support is
  8. enabled, HAVE_LIBEXPAT is defined, and therefore the following part of
  9. the code is used:
  10. In this case, "php.h" is not included. Due to this, zend_alloc.h is
  11. never included when building the ext/xmlrpc/libxmlrpc/xml_element.c
  12. file, and therefore the estrdup -> _estrdup macros are never defined,
  13. causing the following link time failure:
  14. ext/xmlrpc/libxmlrpc/xml_element.o: In function `xml_element_serialize':
  15. /home/thomas/projets/php/ext/xmlrpc/libxmlrpc/xml_element.c:462: undefined reference to `efree'
  16. ext/xmlrpc/libxmlrpc/xml_element.o: In function `xml_elem_entity_escape':
  17. /home/thomas/projets/php/ext/xmlrpc/libxmlrpc/xml_element.c:347: undefined reference to `emalloc'
  18. ext/xmlrpc/libxmlrpc/xml_element.o: In function `_xmlrpc_charHandler':
  19. /home/thomas/projets/php/ext/xmlrpc/libxmlrpc/xml_element.c:646: undefined reference to `efree'
  20. ext/xmlrpc/libxmlrpc/xml_element.o: In function `xml_elem_free_non_recurse':
  21. /home/thomas/projets/php/ext/xmlrpc/libxmlrpc/xml_element.c:198: undefined reference to `efree'
  22. /home/thomas/projets/php/ext/xmlrpc/libxmlrpc/xml_element.c:199: undefined reference to `efree'
  23. /home/thomas/projets/php/ext/xmlrpc/libxmlrpc/xml_element.c:200: undefined reference to `efree'
  24. /home/thomas/projets/php/ext/xmlrpc/libxmlrpc/xml_element.c:207: undefined reference to `efree'
  25. ext/xmlrpc/libxmlrpc/xml_element.o: In function `xml_elem_new':
  26. /home/thomas/projets/php/ext/xmlrpc/libxmlrpc/xml_element.c:263: undefined reference to `ecalloc'
  27. ext/xmlrpc/libxmlrpc/xml_element.o: In function `_xmlrpc_startElement':
  28. /home/thomas/projets/php/ext/xmlrpc/libxmlrpc/xml_element.c:602: undefined reference to `estrdup'
  29. /home/thomas/projets/php/ext/xmlrpc/libxmlrpc/xml_element.c:607: undefined reference to `emalloc'
  30. /home/thomas/projets/php/ext/xmlrpc/libxmlrpc/xml_element.c:609: undefined reference to `estrdup'
  31. /home/thomas/projets/php/ext/xmlrpc/libxmlrpc/xml_element.c:610: undefined reference to `estrdup'
  32. ext/xmlrpc/libxmlrpc/xml_element.o: In function `xml_elem_free_non_recurse':
  33. /home/thomas/projets/php/ext/xmlrpc/libxmlrpc/xml_element.c:211: undefined reference to `efree'
  34. collect2: error: ld returned 1 exit status
  35. make: *** [Makefile:248: sapi/cgi/php-cgi] Error 1
  36. This link time failure can be produced with:
  37. ./configure --prefix=/usr --with-libdir=/usr/lib64 --disable-all \
  38. --without-pear --with-config-file-path=/etc --disable-phpdbg \
  39. --disable-cli --enable-cgi --disable-fpm --enable-xmlreader \
  40. --enable-xmlwriter --enable-libxml --enable-wddx --with-xmlrpc \
  41. --with-libexpat-dir=/
  42. We fix it by including "php.h" in the HAVE_LIBEXPAT case.
  43. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
  44. Upstream-status: https://github.com/php/php-src/pull/3212
  45. ---
  46. ext/xml/expat_compat.h | 1 +
  47. 1 file changed, 1 insertion(+)
  48. diff --git a/ext/xml/expat_compat.h b/ext/xml/expat_compat.h
  49. index ed621ab53d..29fe48a7dd 100644
  50. --- a/ext/xml/expat_compat.h
  51. +++ b/ext/xml/expat_compat.h
  52. @@ -154,6 +154,7 @@ PHP_XML_API const XML_Char *XML_ExpatVersion(void);
  53. PHP_XML_API void XML_ParserFree(XML_Parser);
  54. #elif defined(HAVE_LIBEXPAT)
  55. +#include "php.h"
  56. #include <expat.h>
  57. #endif /* HAVE_LIBEXPAT */
  58. --
  59. 2.14.3