gmp 4.2 fails tests on G5

Jack Howarth howarth at bromo.msbb.uc.edu
Thu Apr 27 15:04:53 CEST 2006


Torbjorn,
    Okay. I believe this should prove to you that the -fPIC is need...
On the gcc mailing list it was discussed that for -arch ppc64, there
was a bug in the compiler not detecting local relocations (non-PIC code)
when linking...

http://gcc.gnu.org/ml/gcc/2006-04/msg00523.html

Ignoring that issue for now, you can use the example for -arch ppc to
demonstrate that -fast causes non-PIC code. The proof is...

[macintosh:~] cat foo.c
extern int a;
int foo(void) { return a; }
[macintosh:~] cat bar.c
int a = 1;
[macintosh:~] prrlab% cc -fast -c bar.c -arch ppc
[macintosh:~] prrlab% cc -fast -c foo.c -arch ppc
[macintosh:~] prrlab% cc -dynamiclib -o libfoo.dylib foo.o bar.o -arch ppc
ld: foo.o has local relocation entries in non-writable section (__TEXT,__text)
/usr/bin/libtool: internal link edit command failed

Now if you repeat these steps with -arch ppc64 you will see that the
error is incorrectly suppressed. So on MacOS X, -fast DOES cause an
implicit -mdynamic-no-pic. Just add the -fPIC. Easy fix.
                Jack



More information about the gmp-bugs mailing list