summaryrefslogtreecommitdiff
path: root/patches/gcc/3.4.4/73_all_sh-pr20617.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/gcc/3.4.4/73_all_sh-pr20617.patch')
-rw-r--r--patches/gcc/3.4.4/73_all_sh-pr20617.patch28
1 files changed, 28 insertions, 0 deletions
diff --git a/patches/gcc/3.4.4/73_all_sh-pr20617.patch b/patches/gcc/3.4.4/73_all_sh-pr20617.patch
new file mode 100644
index 0000000..6d8021c
--- /dev/null
+++ b/patches/gcc/3.4.4/73_all_sh-pr20617.patch
@@ -0,0 +1,28 @@
+2005-03-24 J"orn Rennecke <joern.rennecke@st.com>
+
+ Band aid for PR target/20617:
+ * config/sh/lib1funcs.asm (FUNC, ALIAS): Add .hidden directive.
+
+--- g/gcc/config/sh/lib1funcs.asm
++++ g/gcc/config/sh/lib1funcs.asm
+@@ -37,9 +37,19 @@ Boston, MA 02111-1307, USA. */
+ ELF local label prefixes by J"orn Rennecke
+ amylaar@cygnus.com */
+
++#define ALIAS(X,Y) .global GLOBAL(X); .set GLOBAL(X),GLOBAL(Y)
++
+ #ifdef __ELF__
+ #define LOCAL(X) .L_##X
+-#define FUNC(X) .type X,@function
++
++#if 1 /* ??? The export list mechanism is broken, everything that is not
++ hidden is exported. */
++#undef FUNC
++#define FUNC(X) .type X,@function; .hidden X
++#undef ALIAS
++#define ALIAS(X,Y) .global GLOBAL(X); .set GLOBAL(X),GLOBAL(Y); .hidden GLOBAL(X)
++#endif
++
+ #define ENDFUNC0(X) .Lfe_##X: .size X,.Lfe_##X-X
+ #define ENDFUNC(X) ENDFUNC0(X)
+ #else