------- Additional Comments From joern dot rennecke at st dot com 2005-03-24 16:30 ------- Subject: Re: shared SH libgcc is exporting too many symbols
pinskia at gcc dot gnu dot org wrote: > What |Removed |Added >---------------------------------------------------------------------------- > CC| |pinskia at gcc dot gnu dot > | |org > Severity|critical |normal > Target Milestone|4.0.0 |--- Since you are not prepared to take this seriously, I have checked in the attached patch into the 4.0 branch without testing. A broken 4.0.0 release is a lesser hazard that to be stuck with some hundred unwanted exported symbols forever. 2005-03-24 J"orn Rennecke <[EMAIL PROTECTED]> Band aid for PR target/20617: * config/sh/lib1funcs.asm (FUNC, ALIAS): Add .hidden directive. Index: config/sh/lib1funcs.asm =================================================================== RCS file: /cvs/gcc/gcc/gcc/config/sh/lib1funcs.asm,v retrieving revision 1.40 retrieving revision 1.40.34.1 diff -p -r1.40 -r1.40.34.1 *** config/sh/lib1funcs.asm 29 Jul 2004 22:27:43 -0000 1.40 --- config/sh/lib1funcs.asm 24 Mar 2005 16:24:44 -0000 1.40.34.1 *************** Boston, MA 02111-1307, USA. */ *** 37,45 **** ELF local label prefixes by J"orn Rennecke [EMAIL PROTECTED] */ #ifdef __ELF__ #define LOCAL(X) .L_##X ! #define FUNC(X) .type X,@function #define ENDFUNC0(X) .Lfe_##X: .size X,.Lfe_##X-X #define ENDFUNC(X) ENDFUNC0(X) #else --- 37,55 ---- ELF local label prefixes by J"orn Rennecke [EMAIL PROTECTED] */ + #define ALIAS(X,Y) .global GLOBAL(X); .set GLOBAL(X),GLOBAL(Y) + #ifdef __ELF__ #define LOCAL(X) .L_##X ! ! #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 *************** Boston, MA 02111-1307, USA. */ *** 52,58 **** #define GLOBAL0(U,X) CONCAT(U,__##X) #define GLOBAL(X) GLOBAL0(__USER_LABEL_PREFIX__,X) - #define ALIAS(X,Y) .global GLOBAL(X); .set GLOBAL(X),GLOBAL(Y) #if defined __SH5__ && ! defined __SH4_NOFPU__ && ! defined (__LITTLE_ENDIAN__) #define FMOVD_WORKS --- 62,67 ---- -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20617