Last active
December 29, 2019 01:06
-
-
Save opalenic/79d1fbe3ad11896a1d9a to your computer and use it in GitHub Desktop.
Arch Linux PKGBUILD for the arm-none-eabi-newlib package. Modified to build newlib without syscall stubs.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# $Id$ | |
# Maintainer: Anatol Pomozov <[email protected]> | |
# Modified by: Ondrej Palenicek <[email protected]> | |
_target=arm-none-eabi | |
pkgname=$_target-newlib | |
_pkgver=3.1.0 | |
pkgver="$_pkgver"_nostubs | |
pkgrel=2 | |
_upstream_ver=$_pkgver | |
pkgdesc='A C standard library implementation intended for use on embedded systems (ARM bare metal)' | |
arch=(any) | |
url='https://www.sourceware.org/newlib/' | |
license=(BSD) | |
makedepends=($_target-gcc) | |
options=(!emptydirs !strip) | |
source=(https://sourceware.org/pub/newlib/newlib-$_upstream_ver.tar.gz) | |
sha256sums=('fb4fa1cc21e9060719208300a61420e4089d6de6ef59cf533b57fe74801d102a') | |
prepare() { | |
cd newlib-$_upstream_ver | |
patch newlib/configure.host ../../reentrant_syscalls_provided.patch | |
} | |
build() { | |
rm -rf build-{newlib,nano} | |
mkdir build-{newlib,nano} | |
export CFLAGS_FOR_TARGET='-g -O2 -ffunction-sections -fdata-sections' | |
cd "$srcdir"/build-newlib | |
../newlib-$_upstream_ver/configure \ | |
--target=$_target \ | |
--prefix=/usr \ | |
--enable-newlib-io-long-long \ | |
--enable-newlib-io-c99-formats \ | |
--enable-newlib-register-fini \ | |
--enable-newlib-retargetable-locking \ | |
--disable-newlib-supplied-syscalls \ | |
--disable-nls | |
make | |
export CFLAGS_FOR_TARGET='-g -Os -ffunction-sections -fdata-sections' | |
cd "$srcdir"/build-nano | |
../newlib-$_upstream_ver/configure \ | |
--target=$_target \ | |
--prefix=/usr \ | |
--disable-newlib-supplied-syscalls \ | |
--enable-newlib-reent-small \ | |
--enable-newlib-retargetable-locking \ | |
--disable-newlib-fvwrite-in-streamio \ | |
--disable-newlib-fseek-optimization \ | |
--disable-newlib-wide-orient \ | |
--enable-newlib-nano-malloc \ | |
--disable-newlib-unbuf-stream-opt \ | |
--enable-lite-exit \ | |
--enable-newlib-global-atexit \ | |
--enable-newlib-nano-formatted-io \ | |
--disable-nls | |
make | |
} | |
package() { | |
cd "$srcdir"/build-nano | |
make DESTDIR="$pkgdir" install -j1 | |
find "$pkgdir" -regex ".*/lib\(c\|g\|rdimon\)\.a" -exec rename .a _nano.a '{}' \; | |
install -d "$pkgdir"/usr/$_target/include/newlib-nano | |
install -m644 -t "$pkgdir"/usr/$_target/include/newlib-nano "$pkgdir"/usr/$_target/include/newlib.h | |
cd "$srcdir"/build-newlib | |
make DESTDIR="$pkgdir" install -j1 | |
find "$pkgdir"/usr/$_target/lib \( -name "*.a" -or -name "*.o" \) -exec $_target-objcopy -R .comment -R .note -R .debug_info -R .debug_aranges -R .debug_pubnames -R .debug_pubtypes -R .debug_abbrev -R .debug_line -R .debug_str -R .debug_ranges -R .debug_loc '{}' \; | |
install -d "$pkgdir"/usr/share/licenses/$pkgname/ | |
install -m644 -t "$pkgdir"/usr/share/licenses/$pkgname/ "$srcdir"/newlib-$_upstream_ver/COPYING* | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
108a109 | |
> newlib_cflags="${newlib_cflags} -DREENTRANT_SYSCALLS_PROVIDED" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment