|
Message-ID: <000f01d286bc$a1a9a930$e4fcfb90$@binbones.com> Date: Tue, 14 Feb 2017 13:19:44 +0100 From: "Romain" <romain@...bones.com> To: <musl@...ts.openwall.com> Subject: RE: ld-musl-i386.so.1 disappear after gcc install Hello Rich and All, Thanks for reply > Where did ldconfig.real come from? If it's part of the Ubuntu system you're compiling from Yes this is part of the Ubuntu system . > it shouldn't be getting run on the cross-target at all; I probably did not understand well, but in my head the second pass of GCC is done by the host compiler (--host and --build are x86_64-linux-gnu-gcc in my case) so the libc of host compiler "is running" > my guess would be that something in your build process is unaware that you're cross-compiling. Yes I think I miss something in the cross compiler builing concept > If it's part of the target musl system then it should not even exist; ldconfig is a glibc thing. I put here the simple step of my toolchain building, if you see an obvious mistake, let me know 1 - PACKAGES host : x86_64-linux-gnu target : i486-zydux-linux-musl arch : x86 kernel : 4.9.7 binutils : 2.27 gcc : 6.3.0 musl : 1.1.16 2 - PREPARE $ export PATH=/home/romain/toolchain/bin:$PATH 3- KERNEL HEADER $ make ARCH=x86 INSTALL_HDR_PATH=/home/romain/toolchain/i486-zydux-linux-musl/usr headers_install 2 - BINUTILS $ cd /home/romain/builds/build-binutils $ /home/romain/sources/binutils-2.27/configure --target=i486-zydux-linux-musl --prefix=/home/romain/toolchain --with-sysroot=/home/romain/toolchain/i486-zydux-linux-musl --disable-nls --disable-multilib $ make configure-host $ make -j6 $ make install 2 - GCC (1) $ cd /home/romain/builds/build-gcc1 $ /home/romain/sources/gcc-6.3.0/configure --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=i486-zydux-linux-musl --prefix=/home/romain/toolchain --with-sysroot=/home/romain/toolchain/i486-zydux-linux-musl --disable-nls --disable-shared --without-headers --with-newlib --disable-decimal-float --disable-libgomp --disable-libmudflap --disable-libssp --disable-libatomic --disable-libquadmath --disable-threads --disable-multilib --enable-languages=c --disable-bootstrap $ make -j6 all-gcc $ make -j6 all-target-libgcc $ make -j6 install-gcc $ make -j6 install-target-libgcc 3 - MUSL $ export CC=i486-zydux-linux-musl-gcc $ cd /home/romain/sources/musl-1.1.16 $ ./configure --target=i486-zydux-linux-musl --prefix=/ $ make -j6 $ export DESTDIR=/home/romain/toolchain/i486-zydux-linux-musl $ make install 4 - GCC (2) $ cd /home/romain/builds/build-gcc2 $ /home/romain/sources/gcc-6.3.0/configure --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=i486-zydux-linux-musl --prefix=/home/romain/toolchain --with-sysroot=/home/romain/toolchain/i486-zydux-linux-musl --disable-nls --enable-c99 --enable-long-long --disable-multilib --disable-libmudflap --disable-libmpx --enable-languages=c --disable-bootstrap $ make -j6 $ make -j6 install 5 - QUICK CHECK $ i486-zydux-linux-musl-gcc -v gcc version 6.3.0 $ i486-zydux-linux-musl-gcc dummy.c -o dummy $ export LD_LIBRARY_PATH=/home/romain/toolchain/i486-zydux-linux-musl/lib: $ ldd dummy linux-gate.so.1 => (0xf775c000) libc.so => /home/romain/toolchain/i486-zydux-linux-musl/lib/libc.so (0xf76d0000) Thanks in advance (I hope I don't pollute this list with my newbie problem, let me know) Romain On Mon, Feb 13, 2017 at 03:26:07AM +0100, Romain wrote: >> Hello, >> >> I try to create a script to cross-build a small linux based on musl. >> (https://github.com/rom1nux/zydux-forge) >> >> Basically I first create my cross toolchain in 3 steps >> >> 1 - Build static gcc (first pass) >> 2 - Build musl >> 3 - Build dynamic gcc (second pass) >> >> When I build musl, I can find the loader ld-musl-i386.so.1 this is a >> link to /lib/libc.so But when I do the second pass of gcc the >> ld-musl-i386.so.1 is removed at the gcc "make install" >> >> I create a watch with "audit" to see what process remove the file, and >> it seem that /sbin/ldconfig.real remove the loader, I don't understand why. >> (I fix this by creating my own link, and I can start my target, but I >> don't understand what append) >> >> My host : >> Ubuntu 16.04 >> Arch : x86_64 >> Kernel : 4.4.0 >> Gcc : 5.4 (x86_64-linux-gnu-gcc) >> >> My Cross/Target : >> Arch : x86 >> Kernel : 4.9.7 >> Gcc : 6.3.0 (i486-linux-musl-gcc) >> Musl : 1.1.16 >> >> Can you help me to understand why the linker ld-musl-i386.so.1 is >> removed by /sbin/ldconfig.real, and how to avoid this ?
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.