This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
glibc source from cvs fails to compile.
- From: root at server dot boros dot com
- To: libc-alpha at sourceware dot org
- Date: Tue, 23 Jan 2007 11:58:11 -0600 (CST)
- Subject: glibc source from cvs fails to compile.
The latest glibc from cvs has failed to compile atleast a week now and
here are the errors when attempting to compile.
make[3]: Leaving directory `/tmp/glibc-2.4/elf'
gcc -nostdlib -nostartfiles -shared \
-Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both
-Wl,-z,defs -Wl,--verbose 2>&1 | \
LC_ALL=C \
sed -e '/^=========/,/^=========/!d;/^=========/d' \
-e 's/\. = 0 + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \
> /tmp/glibc-build/elf/ld.so.lds
gcc -nostdlib -nostartfiles -shared -o /tmp/glibc-build/elf/ld.so
\
-Wl,-z,combreloc -Wl,-z,relro -Wl,--hash-style=both
-Wl,-z,defs \
/tmp/glibc-build/elf/librtld.os
-Wl,--version-script=/tmp/glibc-build/ld.map \
-Wl,-soname=ld-linux.so.2 -T
/tmp/glibc-build/elf/ld.so.lds
/tmp/glibc-build/elf/librtld.os: In function `add_dependency':
/tmp/glibc-2.4/elf/dl-lookup.c:106: undefined reference to
`__sync_fetch_and_add_4'
/tmp/glibc-2.4/elf/dl-lookup.c:110: undefined reference to
`__sync_val_compare_and_swap_4'
/tmp/glibc-build/elf/librtld.os: In function `_dl_profile_fixup':
/tmp/glibc-2.4/elf/dl-runtime.c:196: undefined reference to
`__sync_val_compare_and_swap_4'
/tmp/glibc-2.4/elf/dl-runtime.c:205: undefined reference to
`__sync_fetch_and_add_4'
/tmp/glibc-build/elf/librtld.os: In function `_dl_fixup':
/tmp/glibc-2.4/elf/dl-runtime.c:102: undefined reference to
`__sync_val_compare_and_swap_4'
/tmp/glibc-2.4/elf/dl-runtime.c:110: undefined reference to
`__sync_fetch_and_add_4'
/tmp/glibc-build/elf/librtld.os: In function `dl_open_worker':
/tmp/glibc-2.4/elf/dl-open.c:424: undefined reference to
`__sync_val_compare_and_swap_4'
/tmp/glibc-2.4/elf/dl-open.c:426: undefined reference to
`__sync_fetch_and_add_4'
/tmp/glibc-build/elf/librtld.os: In function `_dl_close_worker':
/tmp/glibc-2.4/elf/dl-close.c:406: undefined reference to
`__sync_val_compare_and_swap_4'
/tmp/glibc-2.4/elf/dl-close.c:408: undefined reference to
`__sync_fetch_and_add_4'
collect2: ld returned 1 exit status
make[2]: *** [/tmp/glibc-build/elf/ld.so] Error 1
make[2]: Leaving directory `/tmp/glibc-2.4/elf'
make[1]: *** [elf/subdir_lib] Error 2
make[1]: Leaving directory `/tmp/glibc-2.4'
make: *** [all] Error 2
Looking through the change, I think it might be the following that breaks
it.
2007-01-15 Ulrich Drepper <drepper@redhat.com>
* elf/dl-lookup.c (add_dependency): If scope map is locked, unlock
it before getting dl_load_lock and then relock.
(_dl_lookup_symbol_x): Pass flags to add_dependency.
When rerunning _dl_lookup_symbol_x, compute symbol_scope again in
case we unlocked the scope.
* elf/dl-runtime.c (_dl_fixup): Pass DL_LOOKUP_SCOPE_LOCK to
_dl_lookup_symbol_x in case we locked the scope.
(_dl_profile_fixup): Likewise.
* elf/dl-sym.c (do_sym): In flags passed to call_dl_lookup, also
set DL_LOOKUP_SCOPE_LOCK.x