From 99aaeae7550e879973cb175ab82f65353c31ee02 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Wed, 29 Jan 2020 17:53:09 +0000 Subject: Small incremental build fixes (41) --- lh-config.dist | 6 ++++++ make | 12 ++++++++++-- sub/layout/copylayout | 11 +++++------ sub/skarnet.org/Makefile | 2 +- 4 files changed, 22 insertions(+), 9 deletions(-) diff --git a/lh-config.dist b/lh-config.dist index 0905191..1972a88 100644 --- a/lh-config.dist +++ b/lh-config.dist @@ -20,6 +20,12 @@ NORMALUSER=nobody # By default, it will be true for musl toolchains, false for glibc toolchains. # BUILD_HOST_STATIC=false +# Whether or not you want to copy the shared libc from the toolchain. +# By default, the shared libs are copied if the build isn't static. +# You can also optionally manually specify the sysroot to copy the libs from. +# LIBC_COPY= +# LIBC_SYSROOT= + # Filesystems size, as understood by libguestfs's virt-make-fs ROOTFS_SIZE=1024M RWFS_SIZE=512M diff --git a/make b/make index 965caa3..9aef9bb 100755 --- a/make +++ b/make @@ -22,7 +22,7 @@ BUILD_HOST_CC="$TRIPLE-${CROSS_CC:-gcc}" ROOTFS_SIZE=${ROOTFS_SIZE:-1024M} RWFS_SIZE=${RWFS_SIZE:-512M} USERFS_SIZE=${USERFS_SIZE:-512M} - +LIBC_SYSROOT=${LIBC_SYSROOT:-$(${BUILD_HOST_CC} -print-sysroot)} if test -z "$BUILD_HOST_STATIC" ; then case "$TRIPLE" in @@ -31,6 +31,13 @@ if test -z "$BUILD_HOST_STATIC" ; then esac fi +if test -z "$LIBC_COPY" ; then + case "$BUILD_HOST_STATIC" in + true) LIBC_COPY=false ;; + *) LIBC_COPY=true ;; + esac +fi + if test -n "$CROSS_BASE" ; then crossenv="" else @@ -57,7 +64,8 @@ PATH="$WD/bin:$OUTPUT/build-build/command:$OUTPUT/build-build/bin:$OUTPUT/build- umask 022 exec env -i $crossenv LH_MAKE_MARKER=1 "WD=$WD" "NORMALUSER=$NORMALUSER" "TRIPLE=$TRIPLE" "OUTPUT=$OUTPUT" "PATH=$PATH" \ - "ROOTFS_SIZE=$ROOTFS_SIZE" "RWFS_SIZE=$RWFS_SIZE" "USERFS_SIZE=$USERFS_SIZE" BUILD_HOST_STATIC="$BUILD_HOST_STATIC" \ + "ROOTFS_SIZE=$ROOTFS_SIZE" "RWFS_SIZE=$RWFS_SIZE" "USERFS_SIZE=$USERFS_SIZE" \ + "BUILD_HOST_STATIC=$BUILD_HOST_STATIC" "LIBC_SYSROOT=$LIBC_SYSROOT" "LIBC_COPY=$LIBC_COPY" \ "BUILD_HOST_CC=$BUILD_HOST_CC" "BUILD_HOST_CC_FULL=$BUILD_HOST_CC_FULL" "BUILD_HOST_SYSROOT=$BUILD_HOST_SYSROOT" "BUILD_HOST_PREFIX=$BUILD_HOST_PREFIX" \ "KERNEL_ARCH=$KERNEL_ARCH" "KERNEL_GENERIC_ARCH=$KERNEL_GENERIC_ARCH" "QEMU_ARCH=$QEMU_ARCH" "KERNEL_CONFIG=$KERNEL_CONFIG" \ "BUILD_BUILD_CC=$BUILD_BUILD_CC" SHELL=/bin/sh "CONSOLE=$CONSOLE" \ diff --git a/sub/layout/copylayout b/sub/layout/copylayout index 01e1574..91f901f 100755 --- a/sub/layout/copylayout +++ b/sub/layout/copylayout @@ -3,12 +3,12 @@ output="$1" s6-hiercopy layout/rootfs $output/rootfs -chown -R 0:0 $output/rootfs $output/rwfs $output/userfs find "$output/rootfs" -type f -name .empty -size 0c -exec s6-rmrf {} \; s6-hiercopy layout/rwfs $output/rwfs find "$output/rwfs" -type f -name .empty -size 0c -exec s6-rmrf {} \; s6-hiercopy layout/userfs $output/userfs find "$output/userfs" -type f -name .empty -size 0c -exec s6-rmrf {} \; +chown -R 0:0 $output/rootfs $output/rwfs $output/userfs buildtime=$(s6-clock) @@ -24,13 +24,12 @@ done < sub/layout/permissions # If dynamic: copy shared libs from the toolchain into the target -if ! ${BUILD_HOST_STATIC} ; then - sysroot=`${BUILD_HOST_CC} -print-sysroot` +if ${LIBC_COPY} ; then for lib in lib lib32 lib64 ; do - if s6-test -d "$sysroot/$lib" ; then + if s6-test -d "$LIBC_SYSROOT/$lib" ; then s6-mkdir -p "$output/rootfs/$lib" - for i in `ls -1 "$sysroot/$lib" | grep -e '\.so$' -e '\.so\.'` ; do - s6-hiercopy "$sysroot/$lib/$i" "$output/rootfs/$lib/$i" + for i in `ls -1 "$LIBC_SYSROOT/$lib" | grep -e '\.so$' -e '\.so\.'` ; do + s6-hiercopy "$LIBC_SYSROOT/$lib/$i" "$output/rootfs/$lib/$i" done fi done diff --git a/sub/skarnet.org/Makefile b/sub/skarnet.org/Makefile index 1e44fe0..fa67b31 100644 --- a/sub/skarnet.org/Makefile +++ b/sub/skarnet.org/Makefile @@ -16,7 +16,7 @@ S6_LINUX_INIT_VERSION := 6a1207350d876659296c6aab7cd1063bbb3d0ed1 MDEVD_VERSION := 7430c9be1d379ae1eb0626ec67968b6edcfbf7d6 BCNM_VERSION := fe28e76256c4ff7d1af53ad3940bf737f6000107 -SKARNET_CONF_STATIC := $(if $(filter true,$(BUILD_HOST_STATIC)),--enable-static-libc,--enable-shared --disable-allstatic) +SKARNET_CONF_STATIC := $(if $(filter true,$(BUILD_HOST_STATIC)),--disable-shared --enable-static-libc,--enable-shared --disable-allstatic) SKALIBS_FIND_OPTIONS := --with-sysdeps=$(OUTPUT)/rootfs/package/prog/skalibs/sysdeps --with-include=$(OUTPUT)/rootfs/package/prog/skalibs/include --with-lib=$(OUTPUT)/rootfs/package/prog/skalibs/library --with-dynlib=$(OUTPUT)/rootfs/package/prog/skalibs/library.so EXECLINE_FIND_OPTIONS := --with-include=$(OUTPUT)/rootfs/package/admin/execline/include --with-lib=$(OUTPUT)/rootfs/package/admin/execline/library --with-dynlib=$(OUTPUT)/rootfs/package/admin/execline/library.so S6_FIND_OPTIONS := --with-include=$(OUTPUT)/rootfs/package/admin/s6/include --with-lib=$(OUTPUT)/rootfs/package/admin/s6/library --with-dynlib=$(OUTPUT)/rootfs/package/admin/s6/library.so -- cgit v1.2.3