This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
powerpc vDSO: problem with symbol lookup
- From: Benjamin Herrenschmidt <benh at kernel dot crashing dot org>
- To: tom_gall at vnet dot ibm dot com
- Cc: Roland McGrath <roland at redhat dot com>, libc-alpha at sources dot redhat dot com, Steve Munroe <sjmunroe at us dot ibm dot com>
- Date: Thu, 10 Nov 2005 19:12:03 +1100
- Subject: powerpc vDSO: problem with symbol lookup
I'm working on the kernel side, getting the vDSO to the 32 bits kernel
and adding the new functions. It's pretty much done, I expect to be able
to push that to Linus tomorrow, however, I'm having a problem building a
libc to test with the vDSO related patches.
Trying to build glibc with 2 patches, Tom's #3 plus one adding a
sysdeps/unix/sysv/linux/powerpc/dl-sysdep.h that defines
#define NEED_DL_SYSINFO_DSO 1
(From an earlier batch from Steve)
I'm getting this error building the libc. The kernel is a current -git with
the "old" vDSO (no new symbols yet). It's pretty bad that you can't build/run
things on older kernel :) So if I understand correctly, it's using the newly
built libc to run a local program called rpcgen, but the newly built stuff
will not load if it can't find the kernel symbols... That is pretty bad.
I _think_ the problem is that dl_lookup_symbol_x considers the error fatal,
unless you pass in a "ref" that has the binding set to STB_WEAK, but I'm
not sure at all how these things work. Expecially, I don't fully understand
how the "ref" parameter is to be used, so I didn't try to fix it myself...
I'm building a 32 bits powerpc library.
Thanks in advance for insight.
Ben.
CPP='powerpc-linux-gnu-gcc -E -x c-header' /home/benh/glibc/libc-build/elf/ld.so.1 --library-path /home/benh/glibc/libc-buil d:/home/benh/glibc/libc-build/math:/home/benh/glibc/libc-build/elf:/home/benh/glibc/libc-build/dlfcn:/home/benh/glibc/libc-bu ild/nss:/home/benh/glibc/libc-build/nis:/home/benh/glibc/libc-build/rt:/home/benh/glibc/libc-build/resolv:/home/benh/glibc/li bc-build/crypt:/home/benh/glibc/libc-build/nptl /home/benh/glibc/libc-build/sunrpc/rpcgen -Y ../scripts -c rpcsvc/bootparam_p rot.x -o /home/benh/glibc/libc-build/sunrpc/xbootparam_prot.T
.././scripts/mkinstalldirs /home/benh/glibc/libc-build/sunrpc/rpcsvc
/home/benh/glibc/libc-build/sunrpc/rpcgen: symbol lookup error: /home/benh/glibc/libc-build/sunrpc/rpcgen: undefined symbol: __kernel_clock_gettime
make[2]: *** [/home/benh/glibc/libc-build/sunrpc/xbootparam_prot.stmp] Error 127
make[2]: *** Waiting for unfinished jobs....
CPP='powerpc-linux-gnu-gcc -E -x c-header' /home/benh/glibc/libc-build/elf/ld.so.1 --library-path /home/benh/glibc/libc-buil d:/home/benh/glibc/libc-build/math:/home/benh/glibc/libc-build/elf:/home/benh/glibc/libc-build/dlfcn:/home/benh/glibc/libc-bu ild/nss:/home/benh/glibc/libc-build/nis:/home/benh/glibc/libc-build/rt:/home/benh/glibc/libc-build/resolv:/home/benh/glibc/li bc-build/crypt:/home/benh/glibc/libc-build/nptl /home/benh/glibc/libc-build/sunrpc/rpcgen -Y ../scripts -c rpcsvc/nlm_prot.x -o /home/benh/glibc/libc-build/sunrpc/xnlm_prot.T
make[2]: *** Waiting for unfinished jobs....
mkdir /home/benh/glibc/libc-build/sunrpc/rpcsvc
/home/benh/glibc/libc-build/sunrpc/rpcgen: symbol lookup error: /home/benh/glibc/libc-build/sunrpc/rpcgen: undefined symbol: __kernel_clock_gettime
make[2]: *** [/home/benh/glibc/libc-build/sunrpc/xnlm_prot.stmp] Error 127
CPP='powerpc-linux-gnu-gcc -E -x c-header' /home/benh/glibc/libc-build/elf/ld.so.1 --library-path /home/benh/glibc/libc-buil d:/home/benh/glibc/libc-build/math:/home/benh/glibc/libc-build/elf:/home/benh/glibc/libc-build/dlfcn:/home/benh/glibc/libc-bu ild/nss:/home/benh/glibc/libc-build/nis:/home/benh/glibc/libc-build/rt:/home/benh/glibc/libc-build/resolv:/home/benh/glibc/li bc-build/crypt:/home/benh/glibc/libc-build/nptl /home/benh/glibc/libc-build/sunrpc/rpcgen -Y ../scripts -h rpcsvc/bootparam_p rot.x -o /home/benh/glibc/libc-build/sunrpc/rpcsvc/bootparam_prot.T
/home/benh/glibc/libc-build/sunrpc/rpcgen: symbol lookup error: /home/benh/glibc/libc-build/sunrpc/rpcgen: undefined symbol: __kernel_clock_gettime
make[2]: *** [/home/benh/glibc/libc-build/sunrpc/rpcsvc/bootparam_prot.stmp] Error 127