aboutsummaryrefslogtreecommitdiffstats
path: root/community/newlib/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'community/newlib/APKBUILD')
-rw-r--r--community/newlib/APKBUILD62
1 files changed, 43 insertions, 19 deletions
diff --git a/community/newlib/APKBUILD b/community/newlib/APKBUILD
index 2a90650ca11..220d71083e5 100644
--- a/community/newlib/APKBUILD
+++ b/community/newlib/APKBUILD
@@ -1,33 +1,49 @@
# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
-
-_targets="
- aarch64-none-elf
- arm-none-eabi
- mips-mti-elf
- msp430-elf
- riscv-none-elf
- "
-# or1k-elf fails to build on 32-bit architectures
-case "$CARCH" in
- x86_64|aarch64|ppc64le) _targets="$_targets or1k-elf"
-esac
pkgname=newlib
-pkgver=4.2.0.20211231
-pkgrel=1
+pkgver=4.3.0.20230120
+pkgrel=3
pkgdesc="C standard library implementation intended for use on embedded systems"
url="https://www.sourceware.org/newlib/"
makedepends="texinfo"
-# s390x and riscv64 blocked by gcc-cross-embedded
-arch="all !s390x !riscv64"
+arch="aarch64 ppc64le x86_64 x86"
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="
https://sourceware.org/pub/newlib/newlib-$pkgver.tar.gz
+
+ msp430-elf-nano.specs
+ 0001-msp430-enable-syscalls.patch
"
options="!check"
+# classify targets as exotic or mainstream. Only build support for
+# exotic targets on typical developer / CI hardware (x86_86, aarach64).
+_targets_mainstream="
+ arm-none-eabi
+ riscv-none-elf
+ "
+
+_targets_exotic="
+ msp430-elf
+ or1k-elf
+ aarch64-none-elf
+ "
+
+case "$CARCH" in
+x86_64|aarch64)
+ # support all targets on typical workstation / notebook / CI servers
+ _targets="$_targets_mainstream $_targets_exotic"
+ ;;
+*)
+ # support only mainstream targets on exotic hosts
+ _targets="$_targets_mainstream"
+ ;;
+esac
+
for target in $_targets; do
targetnorm="${target//-/_}"
subpackages="newlib-$target:$targetnorm $subpackages"
+ # here only makedepends. The depends to binutils-$target and gcc-$target
+ # will be set in the subpkg newlib-$target
makedepends="binutils-$target gcc-$target $makedepends"
done
@@ -130,14 +146,20 @@ _install_subpkg() {
find . -regex ".*\(c\|g\|m\|rdimon\|gloss\)\.a" | while read -r _file; do
mv "$_file" "${_file%%.a}_nano.a"
done
- mkdir -p "$subpkgdir/usr/$target/include/nano"
+ mkdir -p "$subpkgdir/usr/$target/include/newlib-nano"
mv "$subpkgdir/usr/$target/include/newlib.h" \
- "$subpkgdir/usr/$target/include/nano/"
+ "$subpkgdir/usr/$target/include/newlib-nano/"
# install regular version
cd "$builddir/build-$target"
make -j1 DESTDIR="$subpkgdir" install
rm -rf "$subpkgdir/deleteme"
+
+ # install custom nano specs, if existing
+ if [ -e "$srcdir/$target-nano.specs" ]; then
+ install -m 644 "$srcdir/$target-nano.specs" \
+ "$subpkgdir/usr/$target/lib/nano.specs"
+ fi
}
arm_none_eabi() {
@@ -165,5 +187,7 @@ aarch64_none_elf() {
}
sha512sums="
-0c3efd7b74a6b8457a717cbb6aa6c5ff268eeaba375535465c6bd6502c3d32b54a9bc3ba7f2c6990f78e29152eee2f62acb39b674d24f9ddf440374a1ec9d2e8 newlib-4.2.0.20211231.tar.gz
+4a06309d36c2255fef8fc8f2d133cafa850f1ed2eddfb27b5d45f5d16af69e0fca829a0b4c9b34af4ed3a28c6fcc929761e0ee823a4229f35c2853d432b5e7ef newlib-4.3.0.20230120.tar.gz
+647b79e3cc6f3bb98b1263ebbf4b3efa4a4692fddc0df6491c726de2fa0ee46b05ab2ddf96c2c8c785f3cd6a442135ec97bf8df93a8f371d479ea46d03aa8a08 msp430-elf-nano.specs
+268c44f8056067e03ee9914d04e8cfa2bb22764bb294b7d16dbfdd51c2e5ef0ad221037a86caafd20ab755b16b38519d61e27ffcd13239cbdbbfad421fa8cb60 0001-msp430-enable-syscalls.patch
"