[parisc-linux] segfaults with new binutils

Alan Modra alan@linuxcare.com.au
Mon, 12 Mar 2001 10:41:39 +1100 (EST)


On Sun, 11 Mar 2001, Randolph Chung wrote:

> > You've already started down the path to recovery:
> >   build and install binutils with --disable-shared,
> >   build and install gcc with --enable-languages=c --disable-shared,
> >   build and install glibc
> 
> trying to do this last step, but am getting some pretty odd results.
> 
> when trying to build linuxthreads, the glibc compile dies when trying to
> assemble linuxthreads/crti.S
> 
> it's also complaining about .init and .fini. From what I gather the
> compile takes pt-initfini.c, translates it to a .S file, then does some
> sed magic to remove some sections. This leaves a .S that has a .PROC and
> .ENTRY for .init/.fini without a corresponding .EXIT and .PROCEND

Huh?  My builds don't try to build crti.o for linuxthreads.  crti.o is
built in csu/ from sysdeps/hppa/elf/initfini.c.  Perhaps you have a
configuration problem.  What options did you pass to configure?  Hmm, more
importantly, what source are you compiling?  I don't have a pt-initfini.c
in my source tree!

$ cd /usr/src/parisc/glibc
$ cvs update -d -ko
? sysdeps/hppa/hppa64
$ find . -name '*initfini*'
./sysdeps/generic/initfini.c
./sysdeps/hppa/elf/initfini.c
./sysdeps/ia64/elf/initfini.c
./sysdeps/s390/initfini.c
./sysdeps/sh/elf/initfini.c

> i thought LT and RT were #define's of some sort, but i don't see them
> defined any place. 

LT' and RT' are field selectors.  They give you the LR' and RR' values
respectively of the offset from %r19 to the .got slot for the symbol.  The
presense of these selectors also tells the asembler/linker to set up .got
entries for the symbol.

Alan
-- 
Linuxcare