aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarian Buschsieweke <marian.buschsieweke@ovgu.de>2020-11-24 17:40:56 +0100
committerMilan P. Stanić <mps@arvanta.net>2021-04-02 15:55:12 +0000
commite14054d7d450cd8c22469766f96c775c5bc03689 (patch)
treea4881331db7d7b47818b4723a5348439f09a9f3b
parent55888c043fc0ba97b960b08bf79503e0062fb178 (diff)
testing/picolibc: new aport
A C standard library based on newlib with focus on compact size https://github.com/picolibc/picolibc
-rw-r--r--testing/picolibc/APKBUILD75
1 files changed, 75 insertions, 0 deletions
diff --git a/testing/picolibc/APKBUILD b/testing/picolibc/APKBUILD
new file mode 100644
index 00000000000..43faa4b2ad2
--- /dev/null
+++ b/testing/picolibc/APKBUILD
@@ -0,0 +1,75 @@
+# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+
+_targets="
+ arm-none-eabi
+ riscv-none-elf
+ "
+pkgname=picolibc
+pkgver=1.5.1
+pkgrel=0
+pkgdesc="A C standard library based on newlib with focus on compact size"
+url="https://github.com/picolibc/picolibc"
+makedepends="meson"
+arch="all !s390x !mips !mips64" # Blocked by gcc-cross-embedded
+license="GPL-2.0-only AND LGPL-2.1-only AND 0BSD AND BSD-3-Clause AND GPL-3.0-only AND LGPL-3.0-only"
+source="$pkgname-$pkgver.tar.xz::https://github.com/picolibc/picolibc/releases/download/$pkgver/picolibc-$pkgver.tar.xz"
+options="!check"
+
+for target in $_targets; do
+ targetnorm="${target//-/_}"
+ subpackages="picolibc-$target:$targetnorm $subpackages"
+ makedepends="binutils-$target gcc-$target newlib-$target $makedepends"
+done
+
+prepare() {
+ default_prepare
+
+ # Handle mismatch of target triples
+ mv "$builddir/scripts/cross-riscv64-unknown-elf.txt" \
+ "$builddir/scripts/cross-riscv-none-elf.txt"
+ sed -e 's/riscv64-unknown-elf/riscv-none-elf/g' \
+ -i "$builddir/scripts/cross-riscv-none-elf.txt"
+
+ # We don't really need bash
+ find "$builddir/scripts" -type f -exec \
+ sed -e 's|#!/bin/bash|#!/bin/sh|g' -i {} \;
+}
+
+build() {
+ for target in $_targets; do
+ # cannot use abuild-meson here, as target != host
+ meson \
+ --prefix=/usr/ \
+ --buildtype=plain \
+ --cross-file=scripts/cross-$target.txt \
+ -Dincludedir=picolibc/$target/include \
+ -Dlibdir=picolibc/$target/lib \
+ . build-$target
+ meson compile -C build-$target
+ done
+}
+
+package() {
+ for target in $_targets; do
+ depends="$depends picolibc-$target"
+ done
+ mkdir -p "$pkgdir"
+}
+
+_install_subpkg() {
+ target="${subpkgname#picolibc-}"
+ pkgdesc="A C standard library based on newlib with focus on compact size for $target"
+ depends="binutils-$target gcc-$target $depends"
+
+ DESTDIR="$subpkgdir" meson install -C "$builddir/build-$target"
+}
+
+arm_none_eabi() {
+ _install_subpkg
+}
+
+riscv_none_elf() {
+ _install_subpkg
+}
+
+sha512sums="882ad8a20ab6dd8816a8b468834c3fcd66dd57f668f9fcb53e92b99c643377e15df2c37e80f6212c82d4ec63320575e0f7158c071edf5d8f66bb58aa4eecfd24 picolibc-1.5.1.tar.xz"