From: Alexandre Oliva (oliva@dcc.unicamp.br)
Date: Sun Jan 17 1999 - 01:48:34 EST
Thought you might be interested in knowing why Kaffe hasn't worked on
FreeBSD during the last week...
-- Alexandre Oliva http://www.dcc.unicamp.br/~oliva aoliva@{acm.org} oliva@{dcc.unicamp.br,gnu.org,egcs.cygnus.com,samba.org} Universidade Estadual de Campinas, SP, Brasil ------- Start of forwarded message ------- Resent-Date: Sun, 17 Jan 1999 01:48:13 -0500 To: Alex Zepeda <garbanzo@hooked.net> Cc: bug-libtool@gnu.org Subject: Re: libtool doesn't work well on FreeBSD2 From: Alexandre Oliva <oliva@dcc.unicamp.br> Date: 17 Jan 1999 04:39:32 -0200 Message-ID: <or90f2flnf.fsf@araguaia.dcc.unicamp.br> Mime-Version: 1.0 Resent-Message-ID: <"ruVFa.0._R6.wTOes"@mescaline.gnu.org> Resent-From: bug-libtool@gnu.org Resent-Sender: bug-libtool-request@gnu.org Content-Type: textThere's a strange interaction of -fPIC with -lm, see:
bash$ gcc -v gcc version 2.7.2.1 bash$ uname -a FreeBSD marker.cs.utah.edu 2.2.6-BETA FreeBSD 2.2.6-BETA #0: Mon Aug 24 17:45:26 MDT 1998 sclawson@marker.cs.utah.edu:/usr/src/sys/compile/MARKER i386 bash$ cat t.c int i; main() { i = 1; } bash$ gcc t.c -lm bash$ ./a.out bash$ gcc -fPIC t.c bash$ ./a.out bash$ gcc -fPIC t.c -lm bash$ ./a.out bash$ gcc -fPIC t.c -lm -lm bash$ ./a.out bash$ gcc -lm t.c bash$ ./a.out bash$ gcc -fPIC -lm t.c ld: symbol __GLOBAL_OFFSET_TABLE_ remains undefined bash$ ./a.out Segmentation fault (core dumped) bash$ gcc -fPIC -lm t.c -lm ld: symbol __GLOBAL_OFFSET_TABLE_ remains undefined bash$ ./a.out Segmentation fault (core dumped)
Note that the program does not depend on `-lm' in anyway. Nevertheless, the presence of `-lm' flag affects the output of `ld', and also the result of the program.
The assembly output of gcc (not included) seems correct. Nevertheless, when the program that lacks the __GLOBAL_OFFSET_TABLE is run, it crashes in the instruction that tries to write to the global variable `i', which is expected given the linker error, because the base address in $ebx wasn't properly relocated.
Any suggestions on how to make linking PIC objects more reliable, for the benefit of GNU libtool?
Note that this program was reduced from a more complex test case of libtool, in which -lm appeared after all objects with non-PIC code, but before other libraries with PIC code.
-- Alexandre Oliva http://www.dcc.unicamp.br/~oliva aoliva@{acm.org} oliva@{dcc.unicamp.br,gnu.org,egcs.cygnus.com,samba.org} Universidade Estadual de Campinas, SP, Brasil
------- End of forwarded message -------
This archive was generated by hypermail 2b29 : Sat Sep 23 2000 - 19:57:44 EDT