Xavier-Francois Roblot on Wed, 20 Jun 2007 16:55:42 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: Compilation for debugging


On Wed, 2007-06-20 at 16:29 +0200, Bill Allombert wrote:
> On Wed, Jun 20, 2007 at 03:52:22PM +0200, Xavier-Francois Roblot wrote:
> > Hi,
> > 
> > I have a C-file called series.c that contains a certain number of
> > functions that I use in GP files using install. Previously, when it did
> > not work properly, I was able to compile it in debug mode and run it
> > with dbg to find out what was going on. But when I try to do that now, I
> > get the following error:  
> > 
> > gcc -c -g -o series.o -Wall -fPIC -I/home/roblot/pari/installed/include series.c -L/home/roblot/pari/Olinux-i686.dbg -L/usr/lib && gcc -o series.so -shared -Wall -fPIC -fomit-frame-pointer -Wl,-shared series.o -L/home/roblot/pari/Olinux-i686.dbg -lc -ldl -lm -L/usr/lib -lpari
> > /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/../../../../i686-pc-linux-gnu/bin/ld: avma: TLS reference in series.o mismatches non-TLS definition in /home/roblot/pari/Olinux-i686.dbg/libpari.so section .bss
> > /home/roblot/pari/Olinux-i686.dbg/libpari.so: could not read symbols: Bad value
> > collect2: ld returned 1 exit status
> > make: *** [debug] Error 1
> > 
> > For information, I am using GCC v.4.1.2.
> > 
> > If anybody can help, I would be very grateful since it is quite
> > difficult to debug a big program without using gdb :o)
> 
> I wonder whether you have used the option --enable-tls when configuring
> PARI. This breaks the ABI, so you have to do it also for the debugging 
> build.  You cannot use the TLS headers with a non-TLS libpari.

Indeed, I was using the --enable-tls option for the (normal)
configuration of PARI, but not for the debugging configuration. Somehow,
I thought the two were not linked, but they are. Anyway, adding the same
option to the debugging configuration makes the compilation possible. 

Thanks a lot!

Xavier