From c6c8f64057b175d51cec18df02a30d73a59d16a5 Mon Sep 17 00:00:00 2001 From: nbd Date: Mon, 24 Feb 2014 21:09:37 +0000 Subject: [PATCH] gcc: fix visibility of symbols libgcc.a Symbols need to be hidden, even for the static variant Signed-off-by: Felix Fietkau git-svn-id: svn://svn.openwrt.org/openwrt/trunk@39749 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../patches/4.6-linaro/850-use_shared_libgcc.patch | 28 ++++++++++++++++++---- .../patches/4.8-linaro/850-use_shared_libgcc.patch | 11 --------- .../gcc/patches/4.8.0/850-use_shared_libgcc.patch | 11 --------- 3 files changed, 23 insertions(+), 27 deletions(-) diff --git a/toolchain/gcc/patches/4.6-linaro/850-use_shared_libgcc.patch b/toolchain/gcc/patches/4.6-linaro/850-use_shared_libgcc.patch index 1a7f62a7e1..61e1035d35 100644 --- a/toolchain/gcc/patches/4.6-linaro/850-use_shared_libgcc.patch +++ b/toolchain/gcc/patches/4.6-linaro/850-use_shared_libgcc.patch @@ -57,12 +57,30 @@ } --- a/libgcc/Makefile.in +++ b/libgcc/Makefile.in -@@ -272,7 +272,7 @@ ifeq ($(enable_shared),yes) +@@ -269,6 +269,12 @@ ifeq ($(enable_shared),yes) + install-libunwind = install-libunwind + endif + ++else ++# Not enable_shared. ++iterator = $(srcdir)/empty.mk $(patsubst %,$(srcdir)/static-object.mk,$(iter-items)) ++endif ++ ++ # For -fvisibility=hidden. We need both a -fvisibility=hidden on # the command line, and a #define to prevent libgcc2.h etc from # overriding that with #pragmas. --vis_hide = @vis_hide@ -+vis_hide = - - ifneq (,$(vis_hide)) +@@ -291,13 +297,6 @@ else + gen-hide-list = echo > $@ + endif +-else +-# Not enable_shared. +-iterator = $(srcdir)/empty.mk $(patsubst %,$(srcdir)/static-object.mk,$(iter-items)) +-vis_hide = +-gen-hide-list = echo > \$@ +-endif +- + ifneq ($(EXTRA_PARTS),) + extra-parts = libgcc-extra-parts + INSTALL_PARTS = $(EXTRA_PARTS) diff --git a/toolchain/gcc/patches/4.8-linaro/850-use_shared_libgcc.patch b/toolchain/gcc/patches/4.8-linaro/850-use_shared_libgcc.patch index ee3f602731..6fa19241f5 100644 --- a/toolchain/gcc/patches/4.8-linaro/850-use_shared_libgcc.patch +++ b/toolchain/gcc/patches/4.8-linaro/850-use_shared_libgcc.patch @@ -33,17 +33,6 @@ - printf ("\n local:\n\t*;\n};\n"); + printf ("\n\t*;\n};\n"); } ---- a/libgcc/Makefile.in -+++ b/libgcc/Makefile.in -@@ -368,7 +368,7 @@ endif - # For -fvisibility=hidden. We need both a -fvisibility=hidden on - # the command line, and a #define to prevent libgcc2.h etc from - # overriding that with #pragmas. --vis_hide = @vis_hide@ -+vis_hide = - - ifneq (,$(vis_hide)) - --- a/gcc/config/rs6000/linux.h +++ b/gcc/config/rs6000/linux.h @@ -61,6 +61,9 @@ diff --git a/toolchain/gcc/patches/4.8.0/850-use_shared_libgcc.patch b/toolchain/gcc/patches/4.8.0/850-use_shared_libgcc.patch index 4a77b86c17..2c7369fc25 100644 --- a/toolchain/gcc/patches/4.8.0/850-use_shared_libgcc.patch +++ b/toolchain/gcc/patches/4.8.0/850-use_shared_libgcc.patch @@ -33,17 +33,6 @@ - printf ("\n local:\n\t*;\n};\n"); + printf ("\n\t*;\n};\n"); } ---- a/libgcc/Makefile.in -+++ b/libgcc/Makefile.in -@@ -368,7 +368,7 @@ endif - # For -fvisibility=hidden. We need both a -fvisibility=hidden on - # the command line, and a #define to prevent libgcc2.h etc from - # overriding that with #pragmas. --vis_hide = @vis_hide@ -+vis_hide = - - ifneq (,$(vis_hide)) - --- a/gcc/config/rs6000/linux.h +++ b/gcc/config/rs6000/linux.h @@ -61,6 +61,9 @@ -- 2.11.0