[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