diff options
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.patch | 24 |
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 |