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 <Vincent.Riera@imgtec.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Vicente Olivert Riera 2014-10-24 13:34:30 +01:00 committed by Thomas Petazzoni
parent 9e30c5c2b1
commit c34110ec51
2 changed files with 158 additions and 0 deletions

View File

@ -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 <Vincent.Riera@imgtec.com>
From d46dc8bc88e38251bfa3712efe7abf62933f5419 Mon Sep 17 00:00:00 2001
From: Peter S. Mazinger <ps.m@gmx.net>
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 <ps.m@gmx.net>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
---
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 <wchar.h>
#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

View File

@ -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 <Vincent.Riera@imgtec.com>
From d46dc8bc88e38251bfa3712efe7abf62933f5419 Mon Sep 17 00:00:00 2001
From: Peter S. Mazinger <ps.m@gmx.net>
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 <ps.m@gmx.net>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
---
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 <wchar.h>
#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