crosstool-ng/patches/gcc/3.4.6/210-all_sh-pr20617.patch

25 lines
850 B
Diff

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