This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]