From c34110ec51a66fb0a1efb5823ea41ba036c1bfe3 Mon Sep 17 00:00:00 2001 From: Vicente Olivert Riera Date: Fri, 24 Oct 2014 13:34:30 +0100 Subject: [PATCH] uclibc: Do not include __iconv_codesets into iconv utility Backporting an upstream patch to fix a problem in the install step: make[1]: Entering directory `/br/output/build/uclibc-0.9.31.1' make[2]: Nothing to be done for `locale_headers'. CC utils/getconf STRIP -x -R .note -R .comment ../utils/getconf CC utils/iconv ../lib/libc.a(iconv.os):(.rodata+0x18): multiple definition of `__iconv_codesets' /tmp/ccVmV8Lq.o:(.rodata+0x18): first defined here collect2: error: ld returned 1 exit status Upstream commit: http://git.uclibc.org/uClibc/commit/?id=d46dc8bc88e38251bfa3712efe7abf62933f5419 Signed-off-by: Vicente Olivert Riera Signed-off-by: Thomas Petazzoni --- ...-__iconv_codesets-into-iconv-utility.patch | 79 +++++++++++++++++++ ...-__iconv_codesets-into-iconv-utility.patch | 79 +++++++++++++++++++ 2 files changed, 158 insertions(+) create mode 100644 package/uclibc/0.9.31.1/0014-Do-not-include-__iconv_codesets-into-iconv-utility.patch create mode 100644 package/uclibc/0.9.33.2/0065-Do-not-include-__iconv_codesets-into-iconv-utility.patch diff --git a/package/uclibc/0.9.31.1/0014-Do-not-include-__iconv_codesets-into-iconv-utility.patch b/package/uclibc/0.9.31.1/0014-Do-not-include-__iconv_codesets-into-iconv-utility.patch new file mode 100644 index 0000000000..4b6a701cfb --- /dev/null +++ b/package/uclibc/0.9.31.1/0014-Do-not-include-__iconv_codesets-into-iconv-utility.patch @@ -0,0 +1,79 @@ +uclibc: Do not include __iconv_codesets into iconv utility + +Backporting an upstream patch to fix a problem in the install step: + +make[1]: Entering directory `/br/output/build/uclibc-0.9.31.1' +make[2]: Nothing to be done for `locale_headers'. + CC utils/getconf + STRIP -x -R .note -R .comment ../utils/getconf + CC utils/iconv +../lib/libc.a(iconv.os):(.rodata+0x18): multiple definition of +`__iconv_codesets' +/tmp/ccVmV8Lq.o:(.rodata+0x18): first defined here +collect2: error: ld returned 1 exit status + +Upstream commit: + http://git.uclibc.org/uClibc/commit/?id=d46dc8bc88e38251bfa3712efe7abf62933f5419 + +Signed-off-by: Vicente Olivert Riera + +From d46dc8bc88e38251bfa3712efe7abf62933f5419 Mon Sep 17 00:00:00 2001 +From: Peter S. Mazinger +Date: Thu, 24 Mar 2011 00:15:25 +0000 +Subject: iconv: Do not include __iconv_codesets into iconv utility + +Host iconv needs only L_iconv_main defined and __iconv_codesets +has to included, as host system does not provide it. +Keep __iconv_codesets out of iconv linked against uClibc. + +Signed-off-by: Peter S. Mazinger +Signed-off-by: Bernhard Reutner-Fischer +--- +diff --git a/libc/misc/wchar/wchar.c b/libc/misc/wchar/wchar.c +index 412c557..0704096 100644 +--- a/libc/misc/wchar/wchar.c ++++ b/libc/misc/wchar/wchar.c +@@ -1196,6 +1196,9 @@ libc_hidden_proto(__iconv_codesets) + #endif + + #if defined L_iconv || defined L_iconv_main ++# ifdef L_iconv_main ++static ++# endif + const unsigned char __iconv_codesets[] = + "\x0a\xe0""WCHAR_T\x00" /* superset of UCS-4 but platform-endian */ + #if __BYTE_ORDER == __BIG_ENDIAN +diff --git a/utils/Makefile.in b/utils/Makefile.in +index bb85be3..1714d28 100644 +--- a/utils/Makefile.in ++++ b/utils/Makefile.in +@@ -36,8 +36,7 @@ CFLAGS-ldd := $(CFLAGS-utils-shared) -DBUILDING_LINKAGE + # Need CFLAGS-utils explicitly, because the source file is not located in utils + CFLAGS-iconv := $(CFLAGS-utils) \ + $(CFLAGS-utils-shared) \ +- -I$(top_srcdir)libc/misc/wchar \ +- -DL_iconv_main \ ++ -I$(top_srcdir)libc/misc/wchar + + CFLAGS-locale := $(CFLAGS-utils) + CFLAGS-getconf :=$(CFLAGS-utils) \ +diff --git a/utils/iconv.c b/utils/iconv.c +index 04e2c32..a0260df 100644 +--- a/utils/iconv.c ++++ b/utils/iconv.c +@@ -108,7 +108,12 @@ + #include + #include "wchar.c" /* for _UC_iconv_t and __iconv_codesets */ + +-extern const unsigned char __iconv_codesets[]; ++#ifdef L_iconv_main ++static ++#else ++extern ++#endif ++const unsigned char __iconv_codesets[]; + + #define IBUF BUFSIZ + #define OBUF BUFSIZ +-- +cgit v0.9.1 diff --git a/package/uclibc/0.9.33.2/0065-Do-not-include-__iconv_codesets-into-iconv-utility.patch b/package/uclibc/0.9.33.2/0065-Do-not-include-__iconv_codesets-into-iconv-utility.patch new file mode 100644 index 0000000000..a6b5b5e9da --- /dev/null +++ b/package/uclibc/0.9.33.2/0065-Do-not-include-__iconv_codesets-into-iconv-utility.patch @@ -0,0 +1,79 @@ +uclibc: Do not include __iconv_codesets into iconv utility + +Backporting an upstream patch to fix a problem in the install step: + +make[1]: Entering directory `/br/output/build/uclibc-0.9.33.2' +make[2]: Nothing to be done for `locale_headers'. + CC utils/getconf + STRIP -x -R .note -R .comment ../utils/getconf + CC utils/iconv +../lib/libc.a(iconv.os):(.rodata+0x18): multiple definition of +`__iconv_codesets' +/tmp/ccVmV8Lq.o:(.rodata+0x18): first defined here +collect2: error: ld returned 1 exit status + +Upstream commit: + http://git.uclibc.org/uClibc/commit/?id=d46dc8bc88e38251bfa3712efe7abf62933f5419 + +Signed-off-by: Vicente Olivert Riera + +From d46dc8bc88e38251bfa3712efe7abf62933f5419 Mon Sep 17 00:00:00 2001 +From: Peter S. Mazinger +Date: Thu, 24 Mar 2011 00:15:25 +0000 +Subject: iconv: Do not include __iconv_codesets into iconv utility + +Host iconv needs only L_iconv_main defined and __iconv_codesets +has to included, as host system does not provide it. +Keep __iconv_codesets out of iconv linked against uClibc. + +Signed-off-by: Peter S. Mazinger +Signed-off-by: Bernhard Reutner-Fischer +--- +diff --git a/libc/misc/wchar/wchar.c b/libc/misc/wchar/wchar.c +index 412c557..0704096 100644 +--- a/libc/misc/wchar/wchar.c ++++ b/libc/misc/wchar/wchar.c +@@ -1196,6 +1196,9 @@ libc_hidden_proto(__iconv_codesets) + #endif + + #if defined L_iconv || defined L_iconv_main ++# ifdef L_iconv_main ++static ++# endif + const unsigned char __iconv_codesets[] = + "\x0a\xe0""WCHAR_T\x00" /* superset of UCS-4 but platform-endian */ + #if __BYTE_ORDER == __BIG_ENDIAN +diff --git a/utils/Makefile.in b/utils/Makefile.in +index bb85be3..1714d28 100644 +--- a/utils/Makefile.in ++++ b/utils/Makefile.in +@@ -36,8 +36,7 @@ CFLAGS-ldd := $(CFLAGS-utils-shared) -DBUILDING_LINKAGE + # Need CFLAGS-utils explicitly, because the source file is not located in utils + CFLAGS-iconv := $(CFLAGS-utils) \ + $(CFLAGS-utils-shared) \ +- -I$(top_srcdir)libc/misc/wchar \ +- -DL_iconv_main \ ++ -I$(top_srcdir)libc/misc/wchar + + CFLAGS-locale := $(CFLAGS-utils) + CFLAGS-getconf :=$(CFLAGS-utils) \ +diff --git a/utils/iconv.c b/utils/iconv.c +index 04e2c32..a0260df 100644 +--- a/utils/iconv.c ++++ b/utils/iconv.c +@@ -108,7 +108,12 @@ + #include + #include "wchar.c" /* for _UC_iconv_t and __iconv_codesets */ + +-extern const unsigned char __iconv_codesets[]; ++#ifdef L_iconv_main ++static ++#else ++extern ++#endif ++const unsigned char __iconv_codesets[]; + + #define IBUF BUFSIZ + #define OBUF BUFSIZ +-- +cgit v0.9.1 -- 2.30.2