* [Buildroot] [PATCH v2] package/libxml2: fix compilation with uclibc
@ 2024-12-20 13:18 Dario Binacchi
2024-12-26 22:52 ` Thomas Petazzoni via buildroot
0 siblings, 1 reply; 2+ messages in thread
From: Dario Binacchi @ 2024-12-20 13:18 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
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
---
Changes v1 -> v2:
- Update the patch to the merged one
.../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] 2+ messages in thread* Re: [Buildroot] [PATCH v2] package/libxml2: fix compilation with uclibc
2024-12-20 13:18 [Buildroot] [PATCH v2] package/libxml2: fix compilation with uclibc Dario Binacchi
@ 2024-12-26 22:52 ` Thomas Petazzoni via buildroot
0 siblings, 0 replies; 2+ messages in thread
From: Thomas Petazzoni via buildroot @ 2024-12-26 22:52 UTC (permalink / raw)
To: Dario Binacchi; +Cc: buildroot, Pierre-Jean Texier, linux-amarula
Hello Dario,
On Fri, 20 Dec 2024 14:18:47 +0100
Dario Binacchi <dario.binacchi@amarulasolutions.com> wrote:
> The patch fixes the following errors and warnings raised by the
> compilation of the library with uClibc:
[...]
Thanks a lot for this patch. However your commit log does not indicate
when the regression was introduced. Could you research which libxml2
change introduced the regression, in which libxml2 release this
regression was introduced, and therefore in which Buildroot commit this
regression started appearing?
This is necessary to help us understand if this fix needs to be
backported to the LTS branch of Buildroot.
Thanks a lot!
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2024-12-26 22:52 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-20 13:18 [Buildroot] [PATCH v2] package/libxml2: fix compilation with uclibc Dario Binacchi
2024-12-26 22:52 ` Thomas Petazzoni via buildroot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.