This is the mail archive of the
crossgcc@sourceware.org
mailing list for the crossgcc project.
See the CrossGCC FAQ for lots
more information.
Crosstool 0.43, PowerPC 750, Ubuntu 8.0.4: glibc Versioning vs. shared-libs build problem
- From: Christoph Lauer <christoph dot lauer at informatik dot uni-erlangen dot de>
- To: crossgcc at sourceware dot org
- Date: Thu, 30 Oct 2008 09:09:07 +0100
- Subject: Crosstool 0.43, PowerPC 750, Ubuntu 8.0.4: glibc Versioning vs. shared-libs build problem
Hello,
I am trying to build a ppc750 crosstool-chain on my ubuntu 8.0.4
machine. I already stumbled across the known issue in ubuntu regarding
the "Missing " Character" error which can be solved by pointing /bin/sh
to bash rather than dash.
However, a more complicated issue I have not been able occurs when
building glibc.2.3.6 (gcc: 4.1.0, binutils 2.16.1), i.e the default
config in crosstool0.43 for ppc750.
The build of binutils, gcc-code and glibc-headers all runs well, glibc
stops with error msg:
../sysdeps/powerpc/powerpc32/dl-machine.c:38:2: #error This will not
work with versioning turned off, sorry.
make[2]: ***
[/home/clauer/crosstool-0.43/build/powerpc-750-linux-gnu/gcc-4.1.0-glibc-2.3.6/build-glibc/elf/dl-machine.os]
Error 1
make[2]: Leaving directory
`/home/clauer/crosstool-0.43/build/powerpc-750-linux-gnu/gcc-4.1.0-glibc-2.3.6/glibc-2.3.6/elf'
make[1]: *** [elf/subdir_lib] Error 2
make[1]: Leaving directory
`/home/clauer/crosstool-0.43/build/powerpc-750-linux-gnu/gcc-4.1.0-glibc-2.3.6/glibc-2.3.6'
make: *** [lib] Error 2
apparently versioning is turend off and this causes trouble. Strangely
additional --enable-versioning config-params for glibc doen not enable
versioning. This is because of the following configure-script of glibc:
echo "${ECHO_T}$libc_cv_ld_version_script_option" >&6
if test $shared != no &&
test $libc_cv_asm_symver_directive = yes &&
test $libc_cv_ld_version_script_option = yes &&
test $enable_versioning = yes; then
VERSIONING=yes
cat >>confdefs.h <<\_ACEOF
#define DO_VERSIONING 1
_ACEOF
else
VERSIONING=no
fi
It seems you cannot build glibc with versioning turned on and
shared-libs enabled. reading through the crosstool-doc I found a
SHARED_MODE flag that could be set to "--disable-shared" but
unfortunately shared-libs are required for a certain part of glibc:
make[1]: Leaving directory
`/home/clauer/crosstool-0.43/build/powerpc-750-linux-gnu/gcc-4.1.0-glibc-2.3.6/glibc-2.3.6'
+ make
install_root=/opt/crosstool/gcc-4.1.0-glibc-2.3.6/powerpc-750-linux-gnu/powerpc-750-linux-gnu
prefix= install-lib-all install-headers
make -r PARALLELMFLAGS="" CVSOPTS="" -C
/home/clauer/crosstool-0.43/build/powerpc-750-linux-gnu/gcc-4.1.0-glibc-2.3.6/glibc-2.3.6
objdir=`pwd` install-lib-all
make[1]: Entering directory
`/home/clauer/crosstool-0.43/build/powerpc-750-linux-gnu/gcc-4.1.0-glibc-2.3.6/glibc-2.3.6'
make[1]: *** No rule to make target
`/opt/crosstool/gcc-4.1.0-glibc-2.3.6/powerpc-750-linux-gnu/powerpc-750-linux-gnu/lib/libc.so',
needed by `install-lib-all'. Stop.
make[1]: Leaving directory
`/home/clauer/crosstool-0.43/build/powerpc-750-linux-gnu/gcc-4.1.0-glibc-2.3.6/glibc-2.3.6'
make: *** [install-lib-all] Error 2
The big question is: How do I build the glibc-2.3.6 correctly without
versioning? Is this really a glibc/gnu issue or am I doing s.th. wrong?
Thanks heaps :)
Chris
--
For unsubscribe information see http://sourceware.org/lists.html#faq