This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: 4.0.2/4.1 PATCH: Enforce PIC code for mips libffi (PR libgcj/21943)


On Thu, 9 Jun 2005, Rainer Orth wrote:

> As reported in PR libgcj/21943, the O32 libffi doesn't build on IRIX 6
> (haven't tried IRIX 5 yet) due to the following error:
> 
> ld: FATAL   45 : Non-PIC (src/mips/.libs/o32.o) used in shared/call_shared link.
> 
> It turns out that gas (unlike the native as) defaults to non-PIC code, so
> the above error is expected.
> 
> I'm not sure if one wants to do something about this, either change gas in
> this respect or at least pass -KPIC by default or at least with
> -fpic/-fPIC.

 It looks like a bug in GCC specs for your target.  Libffi builds just 
fine for MIPS/Linux despite the same conditions (objects conforming to the 
MIPS SysV ABI have to be PIC, gas defaults to non-PIC).

> Anyway, for the case at hand the fix is trivial.  With that change, the O32
> libffi.so builds and testresults are not completely broken:
> 
> 	http://gcc.gnu.org/ml/gcc-testresults/2005-06/msg00589.html
> 
> To avoid any potential problems for N32, I've applied the same change there
> as well, although it doesn't seem to be necessary for some reason.
> 
> Ok for mainline and the 4.0 branch once testing is complete and the branch
> reopens?

 I'd suggest changing specs to pass "-KPIC" to gas instead or otherwise 
you'll have problems with other assembly language sources anyway.  For 
Linux GCC passes this option to gas unless "-mno-abicalls" is given -- I 
guess it should work for you as well.  But I'll leave the decision up to 
the MIPS maintainers.

  Maciej


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]