Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v3 1/1] package/libxml2: fix compilation with uclibc
@ 2024-12-27 17:42 Dario Binacchi
  2024-12-30 22:26 ` Thomas Petazzoni
  2025-01-16 13:54 ` James Hilliard
  0 siblings, 2 replies; 3+ messages in thread
From: Dario Binacchi @ 2024-12-27 17:42 UTC (permalink / raw)
  To: buildroot; +Cc: Pierre-Jean Texier, linux-amarula, Dario Binacchi

The patch fixes the following errors and warnings raised by the
compilation of the library with uClibc:

encoding.c: In function ‘xmlEncInputChunk’:
encoding.c:2209:32: warning: comparison between pointer and integer
 2209 |     else if (handler->iconv_in != NULL) {
      |                                ^~
encoding.c: In function ‘xmlEncOutputChunk’:
encoding.c:2269:33: warning: comparison between pointer and integer
 2269 |     else if (handler->iconv_out != NULL) {
      |                                 ^~
encoding.c: In function ‘xmlCharEncCloseFunc’:
encoding.c:2681:29: warning: comparison between pointer and integer
 2681 |     if ((handler->iconv_out != NULL) || (handler->iconv_in != NULL)) {
      |                             ^~
encoding.c:2681:60: warning: comparison between pointer and integer
 2681 |     if ((handler->iconv_out != NULL) || (handler->iconv_in != NULL)) {
      |                                                            ^~
encoding.c:2683:32: warning: comparison between pointer and integer
 2683 |         if (handler->iconv_out != NULL) {
      |                                ^~
encoding.c:2686:32: error: assignment to ‘iconv_t’ {aka ‘long int’} from ‘void *’ makes integer from pointer without a cast [-Wint-conversion]
 2686 |             handler->iconv_out = NULL;
      |                                ^
encoding.c:2688:31: warning: comparison between pointer and integer
 2688 |         if (handler->iconv_in != NULL) {
      |                               ^~
encoding.c:2691:31: error: assignment to ‘iconv_t’ {aka ‘long int’} from ‘void *’ makes integer from pointer without a cast [-Wint-conversion]
 2691 |             handler->iconv_in = NULL;
      |                               ^
make[4]: *** [Makefile:1147: libxml2_la-encoding.lo] Error 1

The regression was partially introduced in version 2.1.0:
496a1cf59284 ("496a1cf59284 revamped the encoding support, added iconv support, so now libxml if")
and partially in version 2.2.3:
87b953957305 ("Large sync between my W3C base and Gnome's one:")

So the regression was already present in the first version of libxml2
(2.6.29) in Buildroot.

Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
---

Changes v2 -> v3:
- Update the commit message adding info about the version introduced the
  regression.

Changes v1 -> v2:
- Update the patch to the merged

 .../0001-Fix-compilation-with-uclibc.patch    | 114 ++++++++++++++++++
 1 file changed, 114 insertions(+)
 create mode 100644 package/libxml2/0001-Fix-compilation-with-uclibc.patch

diff --git a/package/libxml2/0001-Fix-compilation-with-uclibc.patch b/package/libxml2/0001-Fix-compilation-with-uclibc.patch
new file mode 100644
index 000000000000..857f6ca2a2a1
--- /dev/null
+++ b/package/libxml2/0001-Fix-compilation-with-uclibc.patch
@@ -0,0 +1,114 @@
+From fc72e0833a4e5724aef604e2fd9adb1014cb4844 Mon Sep 17 00:00:00 2001
+From: Dario Binacchi <dario.binacchi@amarulasolutions.com>
+Date: Mon, 16 Dec 2024 17:23:23 +0100
+Subject: [PATCH] Fix compilation with uclibc
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The patch fixes the following errors and warnings raised by the
+compilation of the library with uClibc:
+
+encoding.c: In function ‘xmlEncInputChunk’:
+encoding.c:2209:32: warning: comparison between pointer and integer
+ 2209 |     else if (handler->iconv_in != NULL) {
+      |                                ^~
+encoding.c: In function ‘xmlEncOutputChunk’:
+encoding.c:2269:33: warning: comparison between pointer and integer
+ 2269 |     else if (handler->iconv_out != NULL) {
+      |                                 ^~
+encoding.c: In function ‘xmlCharEncCloseFunc’:
+encoding.c:2681:29: warning: comparison between pointer and integer
+ 2681 |     if ((handler->iconv_out != NULL) || (handler->iconv_in != NULL)) {
+      |                             ^~
+encoding.c:2681:60: warning: comparison between pointer and integer
+ 2681 |     if ((handler->iconv_out != NULL) || (handler->iconv_in != NULL)) {
+      |                                                            ^~
+encoding.c:2683:32: warning: comparison between pointer and integer
+ 2683 |         if (handler->iconv_out != NULL) {
+      |                                ^~
+encoding.c:2686:32: error: assignment to ‘iconv_t’ {aka ‘long int’} from ‘void *’ makes integer from pointer without a cast [-Wint-conversion]
+ 2686 |             handler->iconv_out = NULL;
+      |                                ^
+encoding.c:2688:31: warning: comparison between pointer and integer
+ 2688 |         if (handler->iconv_in != NULL) {
+      |                               ^~
+encoding.c:2691:31: error: assignment to ‘iconv_t’ {aka ‘long int’} from ‘void *’ makes integer from pointer without a cast [-Wint-conversion]
+ 2691 |             handler->iconv_in = NULL;
+      |                               ^
+make[4]: *** [Makefile:1147: libxml2_la-encoding.lo] Error 1
+
+Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
+Upstream: https://gitlab.gnome.org/GNOME/libxml2/-/merge_requests/292
+---
+ encoding.c | 20 ++++++++++----------
+ 1 file changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/encoding.c b/encoding.c
+index 14ffafddbc02..41ecde1885e4 100644
+--- a/encoding.c
++++ b/encoding.c
+@@ -1264,7 +1264,7 @@ DECLARE_ISO_FUNCS(16)
+ #endif /* LIBXML_ISO8859X_ENABLED */
+ 
+ #ifdef LIBXML_ICONV_ENABLED
+-  #define EMPTY_ICONV , (iconv_t) 0, (iconv_t) 0
++  #define EMPTY_ICONV , (iconv_t) -1, (iconv_t) -1
+ #else
+   #define EMPTY_ICONV
+ #endif
+@@ -1389,8 +1389,8 @@ xmlNewCharEncodingHandler(const char *name,
+     handler->name = up;
+ 
+ #ifdef LIBXML_ICONV_ENABLED
+-    handler->iconv_in = NULL;
+-    handler->iconv_out = NULL;
++    handler->iconv_in = (iconv_t) -1;
++    handler->iconv_out = (iconv_t) -1;
+ #endif
+ #ifdef LIBXML_ICU_ENABLED
+     handler->uconv_in = NULL;
+@@ -2200,7 +2200,7 @@ xmlEncInputChunk(xmlCharEncodingHandler *handler, unsigned char *out,
+         }
+     }
+ #ifdef LIBXML_ICONV_ENABLED
+-    else if (handler->iconv_in != NULL) {
++    else if (handler->iconv_in != (iconv_t) -1) {
+         ret = xmlIconvWrapper(handler->iconv_in, out, outlen, in, inlen);
+     }
+ #endif /* LIBXML_ICONV_ENABLED */
+@@ -2260,7 +2260,7 @@ xmlEncOutputChunk(xmlCharEncodingHandler *handler, unsigned char *out,
+         }
+     }
+ #ifdef LIBXML_ICONV_ENABLED
+-    else if (handler->iconv_out != NULL) {
++    else if (handler->iconv_out != (iconv_t) -1) {
+         ret = xmlIconvWrapper(handler->iconv_out, out, outlen, in, inlen);
+     }
+ #endif /* LIBXML_ICONV_ENABLED */
+@@ -2672,17 +2672,17 @@ xmlCharEncCloseFunc(xmlCharEncodingHandler *handler) {
+      * Iconv handlers can be used only once, free the whole block.
+      * and the associated icon resources.
+      */
+-    if ((handler->iconv_out != NULL) || (handler->iconv_in != NULL)) {
++    if ((handler->iconv_out != (iconv_t) -1) || (handler->iconv_in != (iconv_t) -1)) {
+         tofree = 1;
+-	if (handler->iconv_out != NULL) {
++	if (handler->iconv_out != (iconv_t) -1) {
+ 	    if (iconv_close(handler->iconv_out))
+ 		ret = -1;
+-	    handler->iconv_out = NULL;
++	    handler->iconv_out = (iconv_t) -1;
+ 	}
+-	if (handler->iconv_in != NULL) {
++	if (handler->iconv_in != (iconv_t) -1) {
+ 	    if (iconv_close(handler->iconv_in))
+ 		ret = -1;
+-	    handler->iconv_in = NULL;
++	    handler->iconv_in = (iconv_t) -1;
+ 	}
+     }
+ #endif /* LIBXML_ICONV_ENABLED */
+-- 
+2.43.0
+
-- 
2.43.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2025-01-16 13:54 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-27 17:42 [Buildroot] [PATCH v3 1/1] package/libxml2: fix compilation with uclibc Dario Binacchi
2024-12-30 22:26 ` Thomas Petazzoni
2025-01-16 13:54 ` James Hilliard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox