[parisc-linux] Foiled by the linker again
Paul Bame
bame@endor.fc.hp.com
Tue, 30 May 2000 09:11:19 -0600
= On Tue, 30 May 2000, Alan Modra wrote:
=
= > On Mon, 29 May 2000 bame@puffin.external.hp.com wrote:
= >
= > > /home/bame/xc/bin/../lib/gcc-lib/hppa1.1-linux/2.9-hppa-991112/../../../.
./hppa1.1-linux/lib/libc.a(execve.o): In function `__execve':
= > > /users/bame/palinux/glibc/posix/../sysdeps/unix/sysv/linux/execve.c:39: u
ndefined reference to `$global$'
= > > collect2: ld returned 1 exit status
= >
= > This is a bogus error message. The real error is that a call to
= > __pthread_kill_other_threads_np is too far to be reached by a branch so
= > needs to go through a stub, but the relevant stub
= > _____long_branch_stub___pthread_kill_other_threads_np isn't found for some
= > reason.
= >
= > Chasing it up...
=
= It turned out that elf32_hppa_bfd_final_link_relocate wasn't handling
= undefined weak symbols correctly. I've fixed this, the bogus error
= message, and a handfull of other minor things, and commited the fixes to
= pehp CVS.
=
= Now I get
= $ ld/ld-new -o tar /usr/parisc/lib/crt1.o /usr/parisc/lib/crti.o
= /usr/parisc/lib/gcc-lib/hppa1.1-linux/2.9-hppa-991112/crtbegin.o
= -L/usr/parisc/lib/gcc-lib/hppa1.1-linux/2.9-hppa-991112 -L/usr/parisc/lib/
= rrtar.o -lgcc -lc -lgcc
= /usr/parisc/lib/gcc-lib/hppa1.1-linux/2.9-hppa-991112/crtend.o
= /usr/parisc/lib/crtn.o
= /usr/parisc/lib//libc.a(nsswitch.o)(.data+0x64): undefined reference to
= `_nss_files_getaliasent_r'
=
= which looks like a problem with my glibc build.
Yup. Grab the file glibc/PARISC-EXTRA-FILES which contains a list of
the missing .o files which you can add by hand with 'hppa1.1-linux-ar'.
-P