diff options
Diffstat (limited to 'toolchain/gcc/patches/3.4.5/73_all_sh-pr20617.patch')
-rw-r--r-- | toolchain/gcc/patches/3.4.5/73_all_sh-pr20617.patch | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/toolchain/gcc/patches/3.4.5/73_all_sh-pr20617.patch b/toolchain/gcc/patches/3.4.5/73_all_sh-pr20617.patch new file mode 100644 index 000000000..6d8021cc7 --- /dev/null +++ b/toolchain/gcc/patches/3.4.5/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 |