OpenSDE Packages Database (without history before r20070)
 
 
 
 
 
 

93 lines
2.9 KiB

# --- 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"