help! details on unresolved "__librt_multiple_threads" error

Robert P. J. Day rpjday@mindspring.com
Mon Dec 19 15:49:00 GMT 2005


  ok, here's a bunch of detail on the toolchain build error i'm
getting.  if you have any advice, i'm more than happy to try out any
suggestions.

  here's what i start with to build an "sh3eb" toolchain:

	crosstool-0.38
	gcc-4.0.1
	glibc-2.3.5
	binutils-2.16.1
	- select linuxthreads

for no reason whatsoever, i tried to build this by changing the glibc
configure option in crosstool.sh from "--enable-kernel=2.4.3" to
"--enable-kernel=2.6.0" (which i thought would be safe), and this
caused the build to fail (details below).

  in order to isolate the error, i tried the following combinations of
building a toolchain (using i686 as a benchmark):

	i686		--enable-kernel=2.4.3
	i686		--enable-kernel=2.6.0
	sh3eb		--enable-kernel=2.4.3
	sh3eb		--enable-kernel=2.6.0

of the four combinations above, the first three worked and the last
one failed as i'm about to describe.  what this seems to mean is that
it's not *just* the 2.6.0 option value or the sh3eb target selection
that's causing the problem -- it's the combination of the two somehow.
so what's the error?

====================================================================

sh3eb-unknown-linux-gnu-gcc    -shared -static-libgcc -Wl,-O1
-Wl,-dynamic-linker=/lib/ld-linux.so.2
-B/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc/csu/
-Wl,--version-script=/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc/librt.map
-Wl,-soname=librt.so.1 -Wl,-z,combreloc -Wl,-z,relro
-Wl,--enable-new-dtags,-z,nodelete
-L/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc
-L/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc/math
-L/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc/elf
-L/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc/dlfcn
-L/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc/nss
-L/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc/nis
-L/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc/rt
-L/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc/resolv
-L/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc/crypt
-L/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc/linuxthreads
-Wl,-rpath-link=/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc:/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc/math:/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc/elf:/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc/dlfcn:/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc/nss:/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc/nis:/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc/rt:/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc/resolv:/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc/crypt:/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build
-glibc/linuxthreads
-o
/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc/rt/librt.so
-T
/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc/shlib.lds
/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc/csu/abi-note.o
-Wl,--whole-archive
/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc/rt/librt_pic.a
-Wl,--no-whole-archive
/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc/elf/interp.os
/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc/libc.so
/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc/libc_nonshared.a
/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc/linuxthreads/libpthread_nonshared.a
/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc/linuxthreads/libpthread.so
/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc/elf/ld.so
/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/gcc-core-prefix/lib/gcc/sh3eb-unknown-linux-gnu/4.0.1/../../../../sh3eb-unknown-linux-gnu/bin/ld:
/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc/rt/librt_pic.a(clock_nanosleep.os)(.text):
unresolvable relocation against symbol
`__librt_multiple_threads@@GLIBC_PRIVATE'
/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/gcc-core-prefix/lib/gcc/sh3eb-unknown-linux-gnu/4.0.1/../../../../sh3eb-unknown-linux-gnu/bin/ld:
final link failed: Nonrepresentable section on output
collect2: ld returned 1 exit status
make[2]: ***
[/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/build-glibc/rt/librt.so]
Error 1
make[2]: Leaving directory
`/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/glibc-2.3.5/rt'
make[1]: *** [rt/install-lib] Error 2
make[1]: Leaving directory
`/home/rpjday/ct/crosstool-0.38/build/sh3eb-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/glibc-2.3.5'
make: *** [install-lib-all] Error 2

====================================================================

  that is, in trying to create the rt shared library librt.so,
apparently "__librt_multiple_threads@@GLIBC_PRIVATE" is missing in
action (this seems to be referenced from rt/clock_nanosleep.os).

  rather than get even more verbose, any thoughts on why that symbol
is missing when it seemed to be available in all of the other builds
and i can't yet see a difference in the builds?

rday
-------------- next part --------------
------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com


More information about the crossgcc mailing list