Bug#649094: xapt: paths not fixed in libc.so in cross packages

Vincent Danjean <[email protected]>
Newsgroups gmane.linux.debian.devel.embedded
Message-ID <20111117153747.4930.56809.reportbug__45619.9784101502$1321544557$gmane$org@eyak.imag.fr>
Package: xapt
Version: 2.2.17
Severity: normal

  Hi,

  I'm trying to build a debian package of a mipsel cross-compiler.
To do that, I build a binutils for my target, then I install
required cross library with xapt and finally I try to build the cross-compiler
itself.
  The last part fails within sid and testing. It took me some times, but I
found the problem. xapt correctly fix paths in lib/libc.so but not
in lib{32,64}/libc.so (ie these files refers to /lib{32,64}/* and
/usr/lib{32,64}/* files instead of /usr/mipsel-linux-gnu/lib{32,64})

  Manually changing these paths allow me to go further in the compilation of
the cross compiler (but not yet to the end :-( )

  You will find in attachment the script I use to build my cross-compiler.

  Regards,
    Vincent


-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 3.0.0-2-amd64 (SMP w/8 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages xapt depends on:
ii  apt                      0.8.15.9           
ii  dpkg-cross               2.6.5              
ii  dpkg-dev                 1.16.2~50.gbp921bea
ii  libconfig-inifiles-perl  2.68-1             
ii  libdpkg-perl             1.16.2~50.gbp921bea
ii  liblocale-gettext-perl   1.05-7             
ii  perl                     5.12.4-6           

xapt recommends no packages.

xapt suggests no packages.

-- no debconf information
README.Debian (text/plain, 2.4 KB)
# Here is a script to build and install a cross compiler to be used on Nachos
#
# Contrary to previous document, this script build a recent cross compiler
# (gcc 4.6 by default) so gcc 2.95 is not used anymore.
# improvement: software is installed as real packages on the system
# inconvenient: only works for Debian (unstable and perhaps
#   testing/wheezy) and it could perhaps work with ubuntu (feedback welcome)
#
# Note: recent gcc requires the target libc to build the cross-compiler.
# This is why I cannot tell how to build one only from gcc sources
# (as it was done with gcc 2.95)
#
# I think I put all required commands. Howver, it is probably better
# to copy and paste the command to be able to look at the results
#
# WARNING: building the cross compiler itself requires lots of time and
# lots of available disk space. It is probably possible to reduce this
# if we build only the C cross compiler (and not C++, ...) but I did not
# look if this can be easily done.

# Do not copy-paste the next line in a interractive shell
# (else your shell will exit as soon as a command does not succeed)
set -ex

mkdir -p tools
cd tools

TARGET=mipsel-linux-gnu
if test "$(ls binutils-$TARGET_*.deb 2>/dev/null)" ; then
	echo "Skipping building and installing binutils (already there)"
else
	apt-get source binutils
	sudo apt-get build-dep binutils
	sudo apt-get install fakeroot build-essential binutils-multiarch
	cd binutils-*
	env TARGET=$TARGET dpkg-buildpackage -b -uc -us
	cd ..
	sudo dpkg -i binutils-$TARGET_*.deb
fi

sudo apt-get install dpkg-cross xapt
sudo xapt --mirror http://ftp.fr.debian.org/debian/ \
  --arch mipsel --suite unstable --keep-cache libc6-dev libc6 \
  libc6-dev-mips64 libc6-dev-mipsn32 libc6-mips64 linux-libc-dev libc6-mipsn32

# At least 4.5. Previous does not have a correct cross-compiler build setup
GCC_V=4.6

apt-get source gcc-${GCC_V}
sudo apt-get build-dep gcc-${GCC_V}
sudo apt-get install gcc-${GCC_V}-source

cd gcc-${GCC_V}-*
env GCC_TARGET=mipsel debian/rules control
env GCC_TARGET=mipsel dpkg-buildpackage -rfakeroot -us -uc -b

cd ..
sudo dpkg -i gcc-${GCC_V}-mipsel-linux-gnu_*.deb gcc-${GCC_V}-mipsel-linux-gnu-base_*.deb  cpp-${GCC_V}-mipsel-linux-gnu_*.deb  libgcc1-mipsel-cross_*.deb  libgomp1-mipsel-cross_*.deb

# Once the packages are installed, all the tools directory can be removed.

# This version of nachos will automatically detect and use this cross-compiler
# Enjoy.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.