This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
Re: Final linking failed (ld.so) on alpha for 20030803 it require`__GI___pwrite64'
- From: Finn Thain <ft01 at webmastery dot com dot au>
- To: Balint Cristian <rezso at rdsor dot ro>
- Cc: libc-alpha at sources dot redhat dot com
- Date: Mon, 11 Aug 2003 23:38:24 +1000 (EST)
- Subject: Re: Final linking failed (ld.so) on alpha for 20030803 it require`__GI___pwrite64'
It may be some small comfort to know that you are not alone! I am having
the same problem linking ld.so, as are these people:
http://www.linux.cz/lists/archive/linux/183787-full.html
http://sources.redhat.com/ml/bug-glibc/2003-07/msg00034.html
None of these posts has received any replies, so I guess it is still
unsolved. I initially blamed my cross tool-chain and rebuilt it numerous
times, with different releases and configure options etc, but I always end
up here. I have now successfully built glibc for powerpc using the
--disable-shared configure option, so I guess this toolchain can't be
completely broken.
When I build powerpc shared libraries, like your build, and those in the
posts above, my build fails with
powerpc-linux-gcc -nostdlib -nostartfiles -shared \
-Wl,-z,combreloc -Wl,-z,defs -Wl,--verbose 2>&1 | \
sed -e '/^=========/,/^=========/!d;/^=========/d' \
-e 's/\. = 0 + SIZEOF_HEADERS;/& _begin = . -
SIZEOF_HEADERS;/' \
> /Volumes/Linux/build/glibc-powerpc-linux-2/elf/ld.so.lds
powerpc-linux-gcc -nostdlib -nostartfiles -shared -o
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/ld.so \
-Wl,-z,combreloc -Wl,-z,defs \
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os
-Wl,--version-script=/Volumes/Linux/build/glibc-powerpc-linux-2/ld.map
\
-Wl,-soname=ld.so.1 -T
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/ld.so.lds
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0x2358):
In function `process_envvars':
: undefined reference to `__open'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0x23b4):
In function `process_envvars':
: undefined reference to `__access'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0x32b2):
In function `_dl_map_object_internal':
: undefined reference to `errno'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0x3580):
In function `_dl_map_object_internal':
: undefined reference to `__close'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0x441c):
In function `_dl_map_object_from_fd':
: undefined reference to `__GI___fxstat64'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0x46f6):
In function `_dl_map_object_from_fd':
: undefined reference to `errno'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0x4744):
In function `_dl_map_object_from_fd':
: undefined reference to `__close'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0x4f90):
In function `_dl_map_object_from_fd':
: undefined reference to `__lseek'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0x4fa0):
In function `_dl_map_object_from_fd':
: undefined reference to `__libc_read'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0x4ff0):
In function `_dl_map_object_from_fd':
: undefined reference to `__close'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0x5068):
In function `open_verify':
: undefined reference to `__open'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0x507a):
In function `open_verify':
: undefined reference to `errno'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0x508c):
In function `open_verify':
: undefined reference to `__libc_read'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0x5220):
In function `open_verify':
: undefined reference to `__close'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0x523c):
In function `open_verify':
: undefined reference to `__lseek'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0x524c):
In function `open_verify':
: undefined reference to `__libc_read'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0x52a4):
In function `open_verify':
: undefined reference to `__lseek'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0x52b4):
In function `open_verify':
: undefined reference to `__libc_read'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0x5526):
In function `open_path':
: undefined reference to `errno'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0x561c):
In function `open_path':
: undefined reference to `__close'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0x5640):
In function `open_path':
: undefined reference to `__GI___fxstat64'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0x5660):
In function `open_path':
: undefined reference to `__close'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0x566a):
In function `open_path':
: undefined reference to `errno'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0x5690):
In function `open_path':
: undefined reference to `__GI___xstat64'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0x5758):
In function `lose':
: undefined reference to `__close'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0x803e):
In function `_dl_new_object':
: undefined reference to `errno'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0x806c):
In function `_dl_new_object':
: undefined reference to `__getcwd'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0x8a26):
In function `_dl_relocate_object':
: undefined reference to `errno'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0x8ce6):
In function `_dl_map_object_deps':
: undefined reference to `errno'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0xab04):
In function `_dl_sysdep_read_whole_file':
: undefined reference to `__open'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0xab20):
In function `_dl_sysdep_read_whole_file':
: undefined reference to `__GI___fxstat64'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0xab58):
In function `_dl_sysdep_read_whole_file':
: undefined reference to `__close'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0xbef4):
In function `_dl_start_profile_internal':
: undefined reference to `__open'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0xbf10):
In function `_dl_start_profile_internal':
: undefined reference to `__GI___fxstat64'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0xbf36):
In function `_dl_start_profile_internal':
: undefined reference to `errno'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0xbf40):
In function `_dl_start_profile_internal':
: undefined reference to `__close'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0xbfe8):
In function `_dl_start_profile_internal':
: undefined reference to `__close'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0xc048):
In function `_dl_start_profile_internal':
: undefined reference to `__close'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0xc296):
In function `_dl_start_profile_internal':
: undefined reference to `errno'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0xc2a0):
In function `_dl_start_profile_internal':
: undefined reference to `__close'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0xc310):
In function `_dl_start_profile_internal':
: undefined reference to `__lseek'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0xc31e):
In function `_dl_start_profile_internal':
: undefined reference to `errno'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0xc334):
In function `_dl_start_profile_internal':
: undefined reference to `__libc_write'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0xc366):
In function `_dl_start_profile_internal':
: undefined reference to `errno'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0xc370):
In function `_dl_start_profile_internal':
: undefined reference to `__close'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0xc3ae):
In function `_dl_start_profile_internal':
: undefined reference to `errno'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0xc930):
In function `_dl_get_origin_internal':
: undefined reference to `__readlink'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0xccf8):
In function `_dl_sysdep_start':
: undefined reference to `__libc_check_standard_fds'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0xcd3c):
In function `_dl_sysdep_start':
: undefined reference to `__open'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0xcd54):
In function `_dl_sysdep_start':
: undefined reference to `__read'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0xcd68):
In function `_dl_sysdep_start':
: undefined reference to `__close'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0xdb5e):
In function `__strtoul_internal':
: undefined reference to `errno'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0xddb8):
In function `brk':
: undefined reference to `__syscall_error'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0xecb0):
In function `mmap':
: undefined reference to `__syscall_error'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0xecc0):
In function `__munmap':
: undefined reference to `__syscall_error'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0xecd0):
In function `mprotect':
: undefined reference to `__syscall_error'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0xece0):
In function `__uname':
: undefined reference to `__syscall_error'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0xecfa):
In function `_exit':
: undefined reference to `errno'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0xefaa):
In function `__sigaction':
: undefined reference to `errno'
/Volumes/Linux/build/glibc-powerpc-linux-2/elf/librtld.os(.text+0x10384):
In function `__setitimer':
: undefined reference to `__syscall_error'
collect2: ld returned 1 exit status
make[2]: *** [/Volumes/Linux/build/glibc-powerpc-linux-2/elf/ld.so] Error 1
make[2]: Leaving directory `/Volumes/Linux/LFS/cvs/libc/elf'
make[1]: *** [elf/subdir_lib] Error 2
make[1]: Leaving directory `/Volumes/Linux/LFS/cvs/libc'
make: *** [all] Error 2
I am at a loss. If anyone can help with some pointers as to what might be
going wrong here, I would be very grateful. I have spent way too much time
getting pretty much nowhere. I did manage to determine where these symbols
are actually defined, in case it helps,
glibc-powerpc-linux-2/csu/check_fds.o:00000000 T __libc_check_standard_fds
glibc-powerpc-linux-2/csu/check_fds.op:00000000 T __libc_check_standard_fds
glibc-powerpc-linux-2/csu/check_fds.os:00000000 T __libc_check_standard_fds
glibc-powerpc-linux-2/csu/errno.o:00000000 B errno
glibc-powerpc-linux-2/csu/errno.op:00000000 B errno
glibc-powerpc-linux-2/csu/errno.os:00000000 B errno
glibc-powerpc-linux-2/csu/sysdep.o:00000000 T __syscall_error
glibc-powerpc-linux-2/csu/sysdep.op:00000000 T __syscall_error
glibc-powerpc-linux-2/csu/sysdep.os:00000000 T __syscall_error
glibc-powerpc-linux-2/io/access.o:00000000 T __access
glibc-powerpc-linux-2/io/access.op:00000000 T __access
glibc-powerpc-linux-2/io/access.os:00000000 T __access
glibc-powerpc-linux-2/io/close.o:00000000 W __close
glibc-powerpc-linux-2/io/close.op:00000000 W __close
glibc-powerpc-linux-2/io/close.os:00000000 W __close
glibc-powerpc-linux-2/io/fxstat64.os:00000000 T __GI___fxstat64
glibc-powerpc-linux-2/io/getcwd.o:00000000 T __getcwd
glibc-powerpc-linux-2/io/getcwd.op:00000000 T __getcwd
glibc-powerpc-linux-2/io/getcwd.os:00000000 T __getcwd
glibc-powerpc-linux-2/io/lseek.o:00000000 W __lseek
glibc-powerpc-linux-2/io/lseek.op:00000000 W __lseek
glibc-powerpc-linux-2/io/lseek.os:00000000 W __lseek
glibc-powerpc-linux-2/io/open.o:00000000 W __open
glibc-powerpc-linux-2/io/open.op:00000000 W __open
glibc-powerpc-linux-2/io/open.os:00000000 W __open
glibc-powerpc-linux-2/io/read.o:00000000 T __libc_read
glibc-powerpc-linux-2/io/read.o:00000000 W __read
glibc-powerpc-linux-2/io/read.op:00000000 T __libc_read
glibc-powerpc-linux-2/io/read.op:00000000 W __read
glibc-powerpc-linux-2/io/read.os:00000000 T __libc_read
glibc-powerpc-linux-2/io/read.os:00000000 W __read
glibc-powerpc-linux-2/io/readlink.o:00000000 T __readlink
glibc-powerpc-linux-2/io/readlink.op:00000000 T __readlink
glibc-powerpc-linux-2/io/readlink.os:00000000 T __readlink
glibc-powerpc-linux-2/io/write.o:00000000 T __libc_write
glibc-powerpc-linux-2/io/write.op:00000000 T __libc_write
glibc-powerpc-linux-2/io/write.os:00000000 T __libc_write
glibc-powerpc-linux-2/io/xstat64.os:00000000 T __GI___xstat64
I can't build shared glibc for the alpha architecture due to the same
ld.so link problem (a couple of undefined references are different, but
they are still csu and io symbols).
Here is some info on the tools I'm using,
$ powerpc-linux-gcc -v
Reading specs from
/Users/fthain/xcompiler/powerpc-linux-local/lib/gcc-lib/powerpc-linux/3.2.3/specs
Configured with: ../gcc-core-3.2.3/configure
--prefix=/Users/fthain/xcompiler/powerpc-linux-local
--target=powerpc-linux --enable-languages=c
--with-headers=/Users/fthain/xcompiler/powerpc-linux-local/powerpc-linux/include
--with-sysroot=/Users/fthain/xcompiler/powerpc-linux-local
--enable-threads=single
Thread model: single
gcc version 3.2.3
$ powerpc-linux-ld -v
GNU ld version 2.14.90.0.5 20030722
The glibc source is today's CVS. I configured glibc with,
$ ../glibc-2.3.2/configure --host=powerpc-linux
--prefix=/Users/fthain/xcompiler/powerpc-linux-local/powerpc-linux
--build=powerpc-apple-darwin6.6 --without-cvs --enable-kernel=2.4.20
--enable-add-ons --with-headers=/Users/fthain/xcompiler/powerpc-linux-local/src/kernel-headers
The kernel headers are from version 2.4.21.
--
Finn Thain