# --- SDE-COPYRIGHT-NOTE-BEGIN --- # This copyright note is auto-generated by ./scripts/Create-CopyPatch. # # Filename: package/.../musl/musl.conf # Copyright (C) 2012 - 2020 The OpenSDE Project # # More information can be found in the files COPYING and README. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. A copy of the # GNU General Public License can be found in the file COPYING. # --- SDE-COPYRIGHT-NOTE-END --- # translate $arch for being usable with musl musl_arch="$( echo $arch | arch2uname )" if [ $prefix_auto == 1 ]; then syslibdir="/lib" fi var_append configprefix ' ' "LDFLAGS=\"$LDFLAGS -Wl,-soname,libc.musl-$musl_arch.so.1\"" if atstage toolchain; then var_append extraconfopt ' ' "--syslibdir=$root$syslibdir" confopt="$extraconfopt" makeopt="ARCH=$musl_arch" fi musl_postinstall() { # LDSO is the be the real file, and libc the symlink. local LDSO=ld-musl-$musl_arch.so.1 local LIBCSO=libc.musl-$musl_arch.so.1 mv $root$libdir/libc.so $root$syslibdir/$LDSO ln -vsf $LDSO $root$syslibdir/$LIBCSO # create a libc.so symlink to avoid libtool's attempt linking shared # libs against libc.a in certain cases ln -vsf $( relative_path $root$syslibdir/$LDSO $root$libdir/libc.so ) \ $root$libdir/libc.so # create a symlink from ld-musl-$musl_arch.so to ldd if the dynlinker # was started as "ldd" it will print DSO information ln -vsf $( relative_path $root$syslibdir/$LDSO $root$bindir/ldd ) \ $root$bindir/ldd # make some compat links for various libraries for i in libc.so.6 libcrypt.so.1 libm.so.6 libpthread.so.0 librt.so.1 libutil.so.1; do ln -vsf $( relative_path $root$syslibdir/$LIBCSO $root$syslibdir/$i ) \ $root$syslibdir/$i done } musl_make_utils() { # build minimal libssp_nonshared.a so we don't need libssp from gcc # comes from Alpine Linux gcc $CPPFLAGS $CFLAGS -c $confdir/__stack_chk_fail_local.c -o __stack_chk_fail_local.o $AR r libssp_nonshared.a __stack_chk_fail_local.o cp -a libssp_nonshared.a $root/$libdir/ local i for i in getconf getent iconv ; do gcc $CPPFLAGS $CFLAGS -c $confdir/$i.c -o $i chmod +x $i cp -a $i $root/$sbindir done cp -a $confdir/ldconfig $root/$sbindir chmod +x $root/$sbindir/ldconfig } # if musl is default libc if [ "$SDECFG_LIBC" == "musl" ]; then # disable gcc wrapper script var_append extraconfopt ' ' "--disable-gcc-wrapper" if ! atstage toolchain; then hook_add postinstall 5 'musl_postinstall' fi hook_add postflist 9 "rm -rf $root/$includedir/libintl.h" hook_add postpatch 5 'musl_make_utils' fi # always install the headers even if already present in the sandbox install_headers() { touch include/*.h include/*/*.h arch/$musl_arch/*.h arch/$musl_arch/*/*.h arch/generic/*/*.h $MAKE ARCH=$musl_arch prefix=/usr DESTDIR=$sysroot install-headers } hook_add postmake 9 "install_headers"