summaryrefslogtreecommitdiff
path: root/patches/gcc/3.4.6/730-all_sh-pr20617.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/gcc/3.4.6/730-all_sh-pr20617.patch')
-rw-r--r--patches/gcc/3.4.6/730-all_sh-pr20617.patch24
1 files changed, 24 insertions, 0 deletions
diff --git a/patches/gcc/3.4.6/730-all_sh-pr20617.patch b/patches/gcc/3.4.6/730-all_sh-pr20617.patch
new file mode 100644
index 0000000..80d0d90
--- /dev/null
+++ b/patches/gcc/3.4.6/730-all_sh-pr20617.patch
@@ -0,0 +1,24 @@
+diff -durN gcc-3.4.6.orig/gcc/config/sh/lib1funcs.asm gcc-3.4.6/gcc/config/sh/lib1funcs.asm
+--- gcc-3.4.6.orig/gcc/config/sh/lib1funcs.asm 2003-08-12 03:25:07.000000000 +0200
++++ gcc-3.4.6/gcc/config/sh/lib1funcs.asm 2007-08-15 23:04:26.000000000 +0200
+@@ -37,9 +37,19 @@
+ 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