Hi,

I was working on making a root-filesystem for a 64 bit powerPC
architecture with ptxdist (e.g. Sony Playstation 3).
Now I run into an issue related to 64 bit toolchains.
I use a cross-toolchain powerpc64-unknown-linux-gnu build with crosstool-ng.
This toolchain provides a sys-root tree where:
* powerpc64-unknown-linux-gnu/sys-root/usr/lib64 is a symlink to
powerpc64-unknown-linux-gnu/sys-root/usr/lib
* powerpc64-unknown-linux-gnu/sys-root/lib64 is a symlink to
powerpc64-unknown-linux-gnu/sys-root/lib
* powerpc64-unknown-linux-gnu/lib64 is a symlink to
powerpc64-unknown-linux-gnu/lib

Now glibc.targetinstall makes a mess out of it (Looking at the 'root'
and 'root-debug' directories that I use for NFS-booting):
it creates 2 directories:
root/lib:
total 2068
-rwxr-xr-x 1 166392 2009-08-18 10:11 ld-2.9.so
lrwxrwxrwx 1      9 2009-08-18 10:11 ld64.so.1 -> ld-2.9.so
-rwxr-xr-x 1  44824 2009-08-18 10:11 libcrypt-2.9.so
lrwxrwxrwx 1     15 2009-08-18 10:11 libcrypt.so.1 -> libcrypt-2.9.so
-rwxr-xr-x 1  15880 2009-08-18 10:11 libdl-2.9.so
lrwxrwxrwx 1     12 2009-08-18 10:11 libdl.so.2 -> libdl-2.9.so
-rwxr-xr-x 1 698880 2009-08-18 10:11 libm-2.9.so
lrwxrwxrwx 1     11 2009-08-18 10:11 libm.so.6 -> libm-2.9.so
lrwxrwxrwx 1     17 2009-08-18 10:01 libncurses.so -> libncurses.so.5.6
lrwxrwxrwx 1     17 2009-08-18 10:01 libncurses.so.5 -> libncurses.so.5.6
-rw-r--r-- 1 451832 2009-08-18 10:01 libncurses.so.5.6
-rwxr-xr-x 1 116288 2009-08-18 10:11 libnsl-2.9.so
lrwxrwxrwx 1     13 2009-08-18 10:11 libnsl.so.1 -> libnsl-2.9.so
-rwxr-xr-x 1  41448 2009-08-18 10:11 libnss_compat-2.9.so
lrwxrwxrwx 1     20 2009-08-18 10:11 libnss_compat.so.2 -> libnss_compat-2.9.so
-rwxr-xr-x 1  23408 2009-08-18 10:11 libnss_dns-2.9.so
lrwxrwxrwx 1     17 2009-08-18 10:11 libnss_dns.so.2 -> libnss_dns-2.9.so
-rwxr-xr-x 1  58664 2009-08-18 10:11 libnss_files-2.9.so
lrwxrwxrwx 1     19 2009-08-18 10:11 libnss_files.so.2 -> libnss_files-2.9.so
-rwxr-xr-x 1  24008 2009-08-18 10:11 libnss_hesiod-2.9.so
lrwxrwxrwx 1     20 2009-08-18 10:11 libnss_hesiod.so.2 -> libnss_hesiod-2.9.so
-rwxr-xr-x 1  58688 2009-08-18 10:11 libnss_nis-2.9.so
-rwxr-xr-x 1  67168 2009-08-18 10:11 libnss_nisplus-2.9.so
lrwxrwxrwx 1     21 2009-08-18 10:11 libnss_nisplus.so.2 ->
libnss_nisplus-2.9.so
lrwxrwxrwx 1     17 2009-08-18 10:11 libnss_nis.so.2 -> libnss_nis-2.9.so
-rw-r--r-- 1  79672 2009-08-18 10:03 libproc-3.2.8.so
-rwxr-xr-x 1 101232 2009-08-18 10:11 libresolv-2.9.so
lrwxrwxrwx 1     16 2009-08-18 10:11 libresolv.so.2 -> libresolv-2.9.so
-rwxr-xr-x 1  42672 2009-08-18 10:11 librt-2.9.so
lrwxrwxrwx 1     12 2009-08-18 10:11 librt.so.1 -> librt-2.9.so
-rwxr-xr-x 1  42592 2009-08-18 10:11 libthread_db-1.0.so
lrwxrwxrwx 1     19 2009-08-18 10:11 libthread_db.so.1 -> libthread_db-1.0.so
-rwxr-xr-x 1  15024 2009-08-18 10:11 libutil-2.9.so
lrwxrwxrwx 1     14 2009-08-18 10:11 libutil.so.1 -> libutil-2.9.so

root/lib64:
total 1748
-rwxr-xr-x 1 1654480 2009-08-18 10:11 libc-2.9.so
lrwxrwxrwx 1      11 2009-08-18 10:11 libc.so.6 -> libc-2.9.so
-rwxr-xr-x 1  124096 2009-08-18 10:11 libpthread-2.9.so
lrwxrwxrwx 1      17 2009-08-18 10:11 libpthread.so.0 -> libpthread-2.9.so

Now this does not work on the target.
What works is moving the files in root/lib64 to root/lib, and make a
symbolic link root/lib64 to lib.(symlink _must_ exist)
I do not care about multilib, all libraries and applications will be
linked to 64bit libraries. But if I would care I would prefer the
debian structure where /lib64 is indeed a link to /lib and containing
only 64 bit libs and where the 32 bit libs are installed in /lib32

I looked into the scripts that collect the glibc libraries, and I kind
of lost track what is happening there and why.
any good suggestions how to solve this?

Kind regards,

Remy

--
ptxdist mailing list
ptxdist@pengutronix.de

Reply via email to