From 06a3d35eda134aa178747be2a3b92e35625863ec Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
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 <nbd@openwrt.org>

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 @@
-- 
GitLab