From 06a3d35eda134aa178747be2a3b92e35625863ec Mon Sep 17 00:00:00 2001 From: Felix Fietkau 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 SVN-Revision: 39749 --- .../4.6-linaro/850-use_shared_libgcc.patch | 28 +++++++++++++++---- .../4.8-linaro/850-use_shared_libgcc.patch | 11 -------- .../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 @@