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