[Bug target/20617] shared SH libgcc is exporting too many symbols
joern dot rennecke at st dot com
gcc-bugzilla@gcc.gnu.org
Thu Mar 24 16:31:00 GMT 2005
------- 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 <joern.rennecke@st.com>
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
amylaar@cygnus.com */
#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
amylaar@cygnus.com */
+ #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
More information about the Gcc-bugs
mailing list