1
0
Fork 0
mirror of https://github.com/pygos/build.git synced 2024-11-05 19:47:09 +01:00
build/pkg/musl/build
David Oberhollenzer b2fa4c2b76 Add sys/{cdefs,queue,tree}.h headers from NetBSD to musl
Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
2019-08-10 21:31:32 +02:00

88 lines
2.1 KiB
Text
Executable file

VERSION="1.1.23"
SRCDIR="musl-$VERSION"
TARBALL="$SRCDIR.tar.gz"
URL="https://www.musl-libc.org/releases"
SHA256SUM="8a0feb41cef26c97dde382c014e68b9bb335c094bbc1356f6edaaf6b79bd14aa"
DEPENDS="tc-gcc1 linux-dev fortify-headers tc-pkgtool"
SUBPKG="libc libc-dev"
prepare() {
return
}
build() {
local cflags="-O2 -Os"
local ldflags=""
if [ "x$TC_HARDENING" = "xyes" ]; then
cflags="$cflags -fPIE -fPIC -fstack-protector-all"
ldflags="$ldflags -z noexecstack -z relro -z now"
fi
${TARGET}-gcc -c "$SCRIPTDIR/pkg/$PKGNAME/__stack_chk_fail_local.c" -o __stack_chk_fail_local.o
${TARGET}-ar r libssp_nonshared.a __stack_chk_fail_local.o
CFLAGS="$cflags" LDFLAGS="$ldflags" \
CROSS_COMPILE="${TARGET}-" $1/configure --prefix=/ --target="$TARGET"
CROSS_COMPILE="${TARGET}-" make -j $NUMJOBS
}
deploy() {
local INPUT="$1"
local MUSL_CPU=""
case "$TARGET" in
i*86-*)
MUSL_CPU="i386"
;;
x86_64-*)
MUSL_CPU="x86_64"
;;
arm-*-*hf)
MUSL_CPU="armhf"
;;
arm-*)
MUSL_CPU="arm"
;;
*)
echo "don't know how to map $TARGET to Musl arch"
exit 1
;;
esac
DESTDIR="$PKGDEPLOYDIR" make install-headers
DESTDIR="$PKGDEPLOYDIR" make install-libs
cp "$SCRIPTDIR/pkg/$PKGNAME/sys-cdefs.h" \
"$PKGDEPLOYDIR/include/sys/cdefs.h"
cp "$SCRIPTDIR/pkg/$PKGNAME/sys-queue.h" \
"$PKGDEPLOYDIR/include/sys/queue.h"
cp "$SCRIPTDIR/pkg/$PKGNAME/sys-tree.h" \
"$PKGDEPLOYDIR/include/sys/tree.h"
cat_file_merge "LDPATH" > "$PKGDEPLOYDIR/LDPATH"
cp libssp_nonshared.a "$PKGDEPLOYDIR/lib"
cp "$SCRIPTDIR/pkg/$PKGNAME/libc-dev.files" "$PKGDEPLOYDIR"
if [ "x$TC_HARDENING" = "xyes" ]; then
echo "requires libc linux-dev fortify-headers" > \
"$PKGDEPLOYDIR/libc-dev.desc"
else
echo "requires libc linux-dev" > "$PKGDEPLOYDIR/libc-dev.desc"
fi
touch "$PKGDEPLOYDIR/libc.desc"
cat > "$PKGDEPLOYDIR/libc.files" <<_EOF
dir lib 0755 0 0
dir etc 0755 0 0
file lib/libc.so 0755 0 0 $PKGDEPLOYDIR/lib/libc.so
slink lib/ld-musl-${MUSL_CPU}.so.1 0777 0 0 libc.so
file etc/ld-musl-${MUSL_CPU}.path 0644 0 0 $PKGDEPLOYDIR/LDPATH
_EOF
}
check_update() {
check_update_simple "$URL" "musl" "tar.gz"
}