From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/11041 Path: news.gmane.org!.POSTED!not-for-mail From: "Romain" Newsgroups: gmane.linux.lib.musl.general Subject: RE: ld-musl-i386.so.1 disappear after gcc install Date: Tue, 14 Feb 2017 13:19:44 +0100 Message-ID: <000f01d286bc$a1a9a930$e4fcfb90$@binbones.com> References: <000301d285a0$885689c0$99039d40$@binbones.com> <20170213032628.GF1520@brightrain.aerifal.cx> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Trace: blaine.gmane.org 1487074812 21037 195.159.176.226 (14 Feb 2017 12:20:12 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 14 Feb 2017 12:20:12 +0000 (UTC) To: Original-X-From: musl-return-11056-gllmg-musl=m.gmane.org@lists.openwall.com Tue Feb 14 13:20:08 2017 Return-path: Envelope-to: gllmg-musl@m.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by blaine.gmane.org with smtp (Exim 4.84_2) (envelope-from ) id 1cdc5W-00054r-Ru for gllmg-musl@m.gmane.org; Tue, 14 Feb 2017 13:20:06 +0100 Original-Received: (qmail 7481 invoked by uid 550); 14 Feb 2017 12:20:09 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Original-Received: (qmail 7461 invoked from network); 14 Feb 2017 12:20:09 -0000 X-ME-Helo: SUPADESKTOP X-ME-Date: Tue, 14 Feb 2017 13:19:57 +0100 X-ME-IP: 109.209.110.16 In-Reply-To: <20170213032628.GF1520@brightrain.aerifal.cx> X-Mailer: Microsoft Outlook 14.0 Thread-Index: AQKb6xyVRqzzNIHx+L/QFW60oJEQqAFZNq+xn8rNy/A= Content-Language: fr X-Antivirus: avast! (VPS 170213-3, 13/02/2017), Outbound message X-Antivirus-Status: Clean Xref: news.gmane.org gmane.linux.lib.musl.general:11041 Archived-At: 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 ?