libgcc-compat patch and gcc 2.95.4 on ppclinux

H. J. Lu hjl@lucon.org
Sat Jul 13 08:41:00 GMT 2002


On Sat, Jul 13, 2002 at 09:31:37AM +0200, Jakub Jelinek wrote:
> On Fri, Jul 12, 2002 at 10:43:02PM -0700, H. J. Lu wrote:
> > Please try this patch. The problem is gcc 2.95.4 won't make those
> > libgcc functions hidden. We have to help it.
> > 
> > --- libc/sysdeps/powerpc/libgcc-compat.c.gcc	Mon May 20 17:19:09 2002
> > +++ libc/sysdeps/powerpc/libgcc-compat.c	Fri Jul 12 22:39:18 2002
> > @@ -23,6 +23,7 @@
> >  
> >  #if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_2_6)
> >  
> > +__asm__(".hidden __ashldi3");
> >  extern int64_t __ashldi3 (int64_t, int32_t);
> >  int64_t INTUSE (__ashldi3) (int64_t u, int32_t b)
> >  {
> 
> Err, isn't this an exact opposite of what is desirable?
> This would make __ashldi3 in libgcc-compat.o hidden, while it has to
> be visible, so with gcc-3.1+ you'd end up
> with not exporting those functions at all, while with 2.95.x you'd

Are you sure? My testcase shows otherwise.

> be exporting the libgcc.a functions (yes, that's what you want in that
> case).
> IMHO libgcc-compat.c should be only compiled in if the functions are .hidden
> in libgcc.a (ie. gcc 3.1+), otherwise glibc just needs to ensure all
> the needed libgcc.a functions are included in the link.

How about libgcc functions in sysdeps/powerpc/Version? They will be
visible from libc.so when compiled with gcc < 3.1.


H.J.



More information about the Libc-alpha mailing list