[Clfs-support] CLFS support

Andrew Bradford andrew at bradfordembedded.com
Fri Feb 7 05:40:49 PST 2014


On 02/06/2014 07:35 PM, Kevyn-Alexandre Paré wrote:
>> Here what I'm using in my script:
>> CC=${CLFS_TARGET}-gcc ./configure \
>>   --prefix=/ \
>>   --target=${CLFS_TARGET}
>> CC=${CLFS_TARGET}-gcc make
>> DESTDIR=${CLFS}/cross-tools/${CLFS_TARGET} make install
>>
> 
> So if this can help here some of my output for musl:
> 
> configure:
> 
> checking for C compiler... arm-linux-musleabihf-gcc
> checking whether compiler is gcc... yes
> checking whether to build musl-gcc wrapper... no
> checking target system type... arm-linux-musleabihf
> checking whether compiler accepts -std=c99... yes
> checking whether compiler accepts -nostdinc... yes
> checking whether compiler accepts -ffreestanding... yes
> checking whether compiler accepts -fexcess-precision=standard... yes
> checking whether compiler accepts -frounding-math... yes
> checking whether compiler needs attribute((may_alias)) suppression... no
> checking whether compiler accepts -fno-tree-loop-distribute-patterns... yes
> checking for optimization settings... using defaults
> checking whether compiler accepts -Os... yes
> components to be optimized for speed: internal malloc string
> checking whether compiler accepts -pipe... yes
> checking whether compiler accepts -fomit-frame-pointer... yes
> checking whether compiler accepts -fno-unwind-tables... yes
> checking whether compiler accepts -fno-asynchronous-unwind-tables... yes
> checking whether compiler accepts -Wa,--noexecstack... yes
> checking whether compiler accepts -Werror=implicit-function-declaration... yes
> checking whether compiler accepts -Werror=implicit-int... yes
> checking whether compiler accepts -Werror=pointer-sign... yes
> checking whether compiler accepts -Werror=pointer-arith... yes
> checking whether compiler accepts -fno-stack-protector... yes
> checking whether linker accepts -Wl,--hash-style=both... yes
> checking whether linker accepts -Wl,-Bsymbolic-functions... yes
> checking whether linker accepts -lgcc... yes
> checking whether linker accepts -lgcc_eh... yes
> using compiler runtime libraries: -lgcc -lgcc_eh
> checking preprocessor condition __ARMEB__... false
> checking preprocessor condition __ARM_PCS_VFP... true
> configured for arm variant: armhf
> checking whether compiler's long double definition matches float.h... yes
> creating config.mak... done
> 
> The make worked:
> 
> CC=arm-linux-musleabihf-gcc make
> 
> The make install :
> 
> ./tools/install.sh -D -m 644 lib/crt1.o
> /mnt/clfs/cross-tools/arm-linux-musleabihf/lib/crt1.o
> ./tools/install.sh -D -m 644 lib/Scrt1.o
> /mnt/clfs/cross-tools/arm-linux-musleabihf/lib/Scrt1.o
> ./tools/install.sh -D -m 644 lib/crti.o
> /mnt/clfs/cross-tools/arm-linux-musleabihf/lib/crti.o
> ./tools/install.sh -D -m 644 lib/crtn.o
> /mnt/clfs/cross-tools/arm-linux-musleabihf/lib/crtn.o
> ./tools/install.sh -D -m 644 lib/libc.a
> /mnt/clfs/cross-tools/arm-linux-musleabihf/lib/libc.a
> ./tools/install.sh -D -m 755 lib/libc.so
> /mnt/clfs/cross-tools/arm-linux-musleabihf/lib/libc.so
> ./tools/install.sh -D -m 644 lib/libm.a
> /mnt/clfs/cross-tools/arm-linux-musleabihf/lib/libm.a
> ./tools/install.sh -D -m 644 lib/librt.a
> /mnt/clfs/cross-tools/arm-linux-musleabihf/lib/librt.a
> ./tools/install.sh -D -m 644 lib/libpthread.a
> /mnt/clfs/cross-tools/arm-linux-musleabihf/lib/libpthread.a
> ./tools/install.sh -D -m 644 lib/libcrypt.a
> /mnt/clfs/cross-tools/arm-linux-musleabihf/lib/libcrypt.a
> ./tools/install.sh -D -m 644 lib/libutil.a
> /mnt/clfs/cross-tools/arm-linux-musleabihf/lib/libutil.a
> ./tools/install.sh -D -m 644 lib/libxnet.a
> /mnt/clfs/cross-tools/arm-linux-musleabihf/lib/libxnet.a
> ./tools/install.sh -D -m 644 lib/libresolv.a
> /mnt/clfs/cross-tools/arm-linux-musleabihf/lib/libresolv.a
> ./tools/install.sh -D -m 644 lib/libdl.a
> /mnt/clfs/cross-tools/arm-linux-musleabihf/lib/libdl.a
> ./tools/install.sh -D -l /lib/libc.so
> /mnt/clfs/cross-tools/arm-linux-musleabihf/lib/ld-musl-armhf.so.1 ||
> true

<snip>

> Don't see the ld-musl-armhf.so?

Just before my snip is the ld-musl-armhf.so.1 getting installed as a
symlink to /lib/libc.so.  If this fails, the "|| true" makes sure it
doesn't cause an error.  The symlink failing isn't an error condition if
you're just making a cross compiler and not also a root fs, thus it
shouldn't fail most of the time for the way the musl devs use it.

Since the symlink's target is a full path, if you weren't actually
running a root file system using musl, that symlink may point to your
build host's libc which likely isn't musl.

> In musl the only thing I see is
> 
> clfs at knight:/mnt/clfs/sources/musl-0.9.14$ find . -iname *.so
> ./lib/libc.so
> 
> Could this be releated to choice I made here:
> 
> export CLFS_FLOAT="hard"
> export CLFS_FPU="neon"
> export CLFS_HOST=$(echo ${MACHTYPE} | sed "s/-[^-]*/-cross/")
> export CLFS_TARGET="arm-linux-musleabihf"
> export CLFS_ARCH="arm"
> export CLFS_ARM_ARCH="armv7-a"

Probably not.  Likely there's a very simple reason, possibly permissions?

-Andrew



More information about the Clfs-support mailing list