I built myself a compiler that can compile binaries for ubuntu (using
their libraries). Originally I just used the standard LFS compiler,
but later on had a few messages that I believe were complaining that
my glibc was newer then ubuntu's. (was long ago, don't quite recall
the exact message).
To work around this, I built a
First, I grabbed a few of the ubuntu .deb files, and converted them w/
the deb2tgz utility.
install -d -m755 /usr/x86_64-ubuntu1104-linux-gnu/sysroot
tar -xf src/libc6_2.13-0ubuntu13_amd64.tar.xz -C
/usr/x86_64-ubuntu1104-linux-gnu/sysroot
tar -xf src/libc6-i386_2.13-0ubuntu13_amd64.tar.xz -C
/usr/x86_64-ubuntu1104-linux-gnu/sysroot
tar -xf src/libc6-dev_2.13-0ubuntu13_amd64.tar.xz -C
/usr/x86_64-ubuntu1104-linux-gnu/sysroot
tar -xf src/libc6-dev-i386_2.13-0ubuntu13_amd64.tar.xz -C
/usr/x86_64-ubuntu1104-linux-gnu/sysroot
tar -xf src/linux-libc-dev_2.6.38-11.48_amd64.tar.xz -C
/usr/x86_64-ubuntu1104-linux-gnu/sysroot
tar -xf src/ia32-libs_20090808ubuntu13_amd64.tar.xz -C
/usr/x86_64-ubuntu1104-linux-gnu/sysroot
tar -xf src/libltdl7_2.2.6b-2ubuntu3_amd64.tar.xz -C
/usr/x86_64-ubuntu1104-linux-gnu/sysroot
fixed up a few absolute symlinks,
rm /usr/x86_64-ubuntu1104-linux-gnu/sysroot/lib64
ln -sv lib /usr/x86_64-ubuntu1104-linux-gnu/sysroot/lib64
#fix absolute symlinks
cd /usr/x86_64-ubuntu1104-linux-gnu/sysroot/usr/lib/x86_64-linux-gnu
for x in *; do if [ -h "$x" ];then LINK=../..`readlink $x`; ln -sf
$LINK $x; fi; done
cd /usr/x86_64-ubuntu1104-linux-gnu/sysroot/usr/lib/
ln -sf x86_64-linux-gnu/* .
cd /usr/x86_64-ubuntu1104-linux-gnu/sysroot/lib
ln -sf x86_64-linux-gnu/* .
rm /usr/x86_64-ubuntu1104-linux-gnu/sysroot/usr/include/asm
ln -sfv x86_64-linux-gnu/asm
/usr/x86_64-ubuntu1104-linux-gnu/sysroot/usr/include/asm
then rebuilt binutils/gcc using the sysroot flag (I used the same
versions from LFS, so perhaps a bit newer then ubuntu's)
../binutils-${BINUTILS_VERSION}/configure --prefix=/usr \
--target=x86_64-ubuntu1104-linux-gnu \
--with-sysroot=/usr/x86_64-ubuntu1104-linux-gnu/sysroot &&
make &&
make install &&
../gcc-${GCC_VERSION}/configure --prefix=/usr \
--target=x86_64-ubuntu1104-linux-gnu \
--with-sysroot=/usr/x86_64-ubuntu1104-linux-gnu/sysroot \
--enable-shared --enable-threads=posix \
--enable-__cxa_atexit --enable-languages=c \
--disable-libstdcxx-pch \
--enable-long-long \
--disable-libgomp --disable-libquadmath \
--without-ppl --without-cloog &&
make -j6 &&
make install &&
(I based this upon my linux -> mingw64 compiler, may have a few extra
flags. I'll have to investigate later. although I don't think I
disabled any features I actually use)
It works fine and dandy, but I was wondering if I should be worrying
about the updates in ubuntu, and how hard it would be to setup an apt
repository and just pull the updates directly from ubuntu into a
sysroot folder. Would save time compared to hunting down the .deb's
then converting them manually.
--
Nathan Coulson (conathan)
------
Location: British Columbia, Canada
Timezone: PST (-8)
Webpage: http://www.nathancoulson.com
--
http://linuxfromscratch.org/mailman/listinfo/lfs-chat
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page