[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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



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
# 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.

Reply to: