diff options
Diffstat (limited to 'system/musl/APKBUILD')
-rw-r--r-- | system/musl/APKBUILD | 158 |
1 files changed, 158 insertions, 0 deletions
diff --git a/system/musl/APKBUILD b/system/musl/APKBUILD new file mode 100644 index 000000000..25c93f361 --- /dev/null +++ b/system/musl/APKBUILD @@ -0,0 +1,158 @@ +# Contributor: William Pitcock <nenolod@dereferenced.org> +# Maintainer: Timo Teräs <timo.teras@iki.fi> +pkgname=musl +pkgver=1.1.19 +pkgrel=3 +pkgdesc="the musl c library (libc) implementation" +url="http://www.musl-libc.org/" +arch="all" +options="!check" +license="MIT" +depends="" +depends_dev="!uclibc-dev" +makedepends="$depends_dev" +subpackages="$pkgname-dev $pkgname-dbg libc6-compat:compat:noarch" +case "$BOOTSTRAP" in +nocc) pkgname="musl-dev"; subpackages="";; +nolibc) ;; +*) subpackages="$subpackages $pkgname-utils";; +esac +source="http://www.musl-libc.org/releases/musl-$pkgver.tar.gz + 0001-sysconf-Add-_SC_XOPEN_UUCP.patch + 0002-confstr-Add-_CS_POSIX_V7_THREADS_.patch + 0003-pathconf-add-_PC_TIMESTAMP_RESOLUTION.patch + + 2000-pthread-internals-increase-DEFAULT_GUARD_SIZE-to-2-p.patch + complex-math.patch + handle-aux-at_base.patch + + ldconfig + __stack_chk_fail_local.c + getent.c + iconv.c + " + +# secfixes: +# 1.1.15-r4: +# - CVE-2016-8859 + +builddir="$srcdir"/musl-$pkgver + +build() { + cd "$builddir" + + [ "$BOOTSTRAP" = "nocc" ] && return 0 + + # provide minimal libssp_nonshared.a so we don't need libssp from gcc + ${CROSS_COMPILE}gcc $CPPFLAGS $CFLAGS -c "$srcdir"/__stack_chk_fail_local.c -o __stack_chk_fail_local.o + ${CROSS_COMPILE}ar r libssp_nonshared.a __stack_chk_fail_local.o + + if [ "$BOOTSTRAP" != "nolibc" ]; then + # getconf/getent/iconv + local i + for i in getent iconv ; do + ${CROSS_COMPILE}gcc $CPPFLAGS $CFLAGS "$srcdir"/$i.c -o $i + done + fi + + # note: not autotools + LDFLAGS="$LDFLAGS -Wl,-soname,libc.musl-${CARCH}.so.1" \ + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --sysconfdir=/etc \ + --mandir=/usr/share/man \ + --infodir=/usr/share/info \ + --localstatedir=/var + make +} + +package() { + cd "$builddir" + + if [ "$BOOTSTRAP" = "nocc" ]; then + case "$CARCH" in + aarch64*) ARCH="aarch64" ;; + arm*) ARCH="arm" ;; + x86) ARCH="i386" ;; + x86_64) ARCH="x86_64" ;; + ppc) ARCH="powerpc" ;; + ppc64*) ARCH="powerpc64" ;; + s390*) ARCH="s390x" ;; + mips64*) ARCH="mips64" ;; + mips*) ARCH="mips" ;; + esac + + make ARCH="$ARCH" prefix=/usr DESTDIR="$pkgdir" install-headers || return 1 + else + make DESTDIR="$pkgdir" install || return 1 + + cp libssp_nonshared.a "$pkgdir"/usr/lib || return 1 + + # make LDSO the be the real file, and libc the symlink + local LDSO=$(make -f Makefile --eval "$(echo -e 'print-ldso:\n\t@echo $$(basename $(LDSO_PATHNAME))')" print-ldso) + mv -f "$pkgdir"/usr/lib/libc.so "$pkgdir"/lib/"$LDSO" || return 1 + ln -sf "$LDSO" "$pkgdir"/lib/libc.musl-${CARCH}.so.1 || return 1 + ln -sf ../../lib/"$LDSO" "$pkgdir"/usr/lib/libc.so || return 1 + mkdir -p "$pkgdir"/usr/bin || return 1 + ln -sf ../../lib/"$LDSO" "$pkgdir"/usr/bin/ldd || return 1 + fi + + # remove libintl.h, currently we don't want by default any NLS + # and use GNU gettext where needed. the plan is to migrate to + # musl gettext() later on as fully as possible. + rm "$pkgdir"/usr/include/libintl.h || return 1 +} + +utils() { + depends="!uclibc-utils scanelf" + replaces="libiconv uclibc-utils" + license="MIT BSD GPL2+" + + mkdir -p "$subpkgdir"/usr "$subpkgdir"/sbin + mv "$pkgdir"/usr/bin "$subpkgdir"/usr/ || return 1 + + install -D \ + "$builddir"/getent \ + "$builddir"/iconv \ + "$subpkgdir"/usr/bin + + install -D -m755 "$srcdir"/ldconfig "$subpkgdir"/sbin +} + +compat() { + pkgdesc="compatibility libraries for glibc" + + mkdir -p "$subpkgdir"/lib + case "$CARCH" in + armel) _ld="ld-linux.so.3" ;; + armhf | armv7) _ld="ld-linux-armhf.so.3" ;; + aarch64) _ld="ld-linux-aarch64.so.1" ;; + x86) _ld="ld-linux.so.2" ;; + x86_64) _ld="ld-linux-x86-64.so.2" + # go precompiled binary uses /lib64/ld-linux-x86-64.so.2 + # so we add a symlink + ln -s lib "$subpkgdir"/lib64 + ;; + mips* | s390*) _ld="ld.so.1" ;; + ppc64le) _ld="ld64.so.2" ;; + esac + ln -sf "/lib/libc.musl-${CARCH}.so.1" "$subpkgdir/lib/$_ld" + + for i in libc.so.6 libcrypt.so.1 libm.so.6 libpthread.so.0 librt.so.1 libutil.so.1; do + ln -sf "/lib/libc.musl-${CARCH}.so.1" "$subpkgdir/lib/$i" + done +} + +sha512sums="abee52d53af4b3c14c9088866c911a24d2b6ef67dc494f38a7a09dfe77250026f77528c24c52469c89cffa8ced2f0fa95badbdcf8d4460c90faba47e3927bcc5 musl-1.1.19.tar.gz +f274b1c3fff40494e44e68d5385d6f117bac43a10272e1415ed11d65f937e8c34639128860cff451357614a417bb9535a1c676be65a50dd33225c34f249dd4ff 0001-sysconf-Add-_SC_XOPEN_UUCP.patch +e6d7ba709a53cfefb9b5fbb4ede3bde6926504e24d5111691e4a63d15085c0e6e896a3d2df84026fad9520e08b2d98a3be901f29ee47df0bd8c58f6a34ebc49f 0002-confstr-Add-_CS_POSIX_V7_THREADS_.patch +7981521fd3aed5c6b4d6798717945ebe30de83ef327c8c6da135e6e7793f4be533833b1ff87cb25c8646c019da127e73da9adccdc7cf1f91a1ba1b60387a9e91 0003-pathconf-add-_PC_TIMESTAMP_RESOLUTION.patch +2c8e1dde1834238097b2ee8a7bfb53471a0d9cff4a5e38b55f048b567deff1cdd47c170d0578a67b1a039f95a6c5fbb8cff369c75b6a3e4d7ed171e8e86ebb8c 2000-pthread-internals-increase-DEFAULT_GUARD_SIZE-to-2-p.patch +8909dc260968770ace8f3ffdc04c6c7d20933ff115b4fa3e512fb7460860a8216c73ca7a7ad54f59cb5988ef011f02bf18aa13cc2287cc64ffdb8db84ef69d47 complex-math.patch +6a7ff16d95b5d1be77e0a0fbb245491817db192176496a57b22ab037637d97a185ea0b0d19da687da66c2a2f5578e4343d230f399d49fe377d8f008410974238 handle-aux-at_base.patch +8d3a2d5315fc56fee7da9abb8b89bb38c6046c33d154c10d168fb35bfde6b0cf9f13042a3bceee34daf091bc409d699223735dcf19f382eeee1f6be34154f26f ldconfig +062bb49fa54839010acd4af113e20f7263dde1c8a2ca359b5fb2661ef9ed9d84a0f7c3bc10c25dcfa10bb3c5a4874588dff636ac43d5dbb3d748d75400756d0b __stack_chk_fail_local.c +378d70e65bcc65bb4e1415354cecfa54b0c1146dfb24474b69e418cdbf7ad730472cd09f6f103e1c99ba6c324c9560bccdf287f5889bbc3ef0bdf0e08da47413 getent.c +9d42d66fb1facce2b85dad919be5be819ee290bd26ca2db00982b2f8e055a0196290a008711cbe2b18ec9eee8d2270e3b3a4692c5a1b807013baa5c2b70a2bbf iconv.c" |