Subject: problems with ld.elf_so
To: None <current-users@netbsd.org>
From: Dan Debertin <airboss@nodewarrior.org>
List: current-users
Date: 06/20/2001 08:52:06
libexec/ld.elf_so/rtld.h appears to be broken on my system. While building
libc with NOLINT=1, it pulls in rtld.h and dies:

In file included from /usr/src/lib/libc/dlfcn/dlfcn_elf.c:42:
/usr/src/lib/libc/../../libexec/ld.elf_so/rtld.h:163: syntax error before
`*'
/usr/src/lib/libc/../../libexec/ld.elf_so/rtld.h:164: syntax error before
`*'
/usr/src/lib/libc/../../libexec/ld.elf_so/rtld.h:167: syntax error before
`*'
/usr/src/lib/libc/../../libexec/ld.elf_so/rtld.h:168: syntax error before
`*'

All four of the lines in question define pointers to the "Elf_Rela"
datatype, and I don't see a typedef or a #define for it anywhere.

After a bit of looking around, I find this:

javelin:/usr/src/libexec/ld.elf_so# grep Elf_Rel /usr/include/sys/exec_elf.h
#define Elf_Rel         Elf32_Rel
#define Elf_RelA        Elf32_RelA
#define Elf_Rel         Elf64_Rel
#define Elf_RelA        Elf64_RelA

Okay, so it might be as simple as a typo, but highly doubtful, as Elf_Rela
seems to be everywhere in ld.elf_so, and I trust you're all good enough
typists not to make the same typo 10 or 20 times ;).

However, adding a #define Elf_Rela Elf_RelA appears to cause things to
stop breaking. So ... what's going on here?

These are current sources as of ~12 hours ago. Platform is sparc.


Dan D.
--
Dan Debertin
airboss@nodewarrior.org
www.nodewarrior.org