mailing list of musl libc
 help / color / mirror / code / Atom feed
From: "Romain" <romain@binbones.com>
To: <musl@lists.openwall.com>
Subject: RE: ld-musl-i386.so.1 disappear after gcc install
Date: Tue, 14 Feb 2017 13:19:44 +0100	[thread overview]
Message-ID: <000f01d286bc$a1a9a930$e4fcfb90$@binbones.com> (raw)
In-Reply-To: <20170213032628.GF1520@brightrain.aerifal.cx>

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 ?



      reply	other threads:[~2017-02-14 12:19 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-13  2:26 Romain
2017-02-13  3:26 ` Rich Felker
2017-02-14 12:19   ` Romain [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='000f01d286bc$a1a9a930$e4fcfb90$@binbones.com' \
    --to=romain@binbones.com \
    --cc=musl@lists.openwall.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).