summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorChrister Solskogen2021-02-10 13:48:18 +0100
committerChrister Solskogen2021-02-10 13:48:18 +0100
commitcff9adfd7d5fa37a4c9d79ee9c087085cb7eddfa (patch)
tree30156b8402119b9b9ca678578433853c7751d51a
downloadaur-cff9adfd7d5fa37a4c9d79ee9c087085cb7eddfa.tar.gz
Initial commit
-rw-r--r--.SRCINFO21
-rw-r--r--PKGBUILD70
2 files changed, 91 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..56384a5f7760
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,21 @@
+pkgbase = aarch64-glibc
+ pkgdesc = GNU C Library ARM64 target
+ pkgver = 2.33
+ pkgrel = 1
+ url = https://www.gnu.org/software/libc/
+ arch = any
+ license = GPL
+ license = LGPL
+ makedepends = aarch64-gcc
+ makedepends = aarch64-linux-api-headers
+ options = !strip
+ options = staticlibs
+ source = https://ftp.gnu.org/gnu/libc/glibc-2.33.tar.xz
+ source = https://ftp.gnu.org/gnu/libc/glibc-2.33.tar.xz.sig
+ validpgpkeys = 7273542B39962DF7B299931416792B4EA25340F8
+ validpgpkeys = BC7C7372637EC10C57D7AA6579C43DFBF1CF2187
+ sha256sums = 2e2556000e105dbd57f0b6b2a32ff2cf173bde4f0d85dffccfd8b7e51a0677ff
+ sha256sums = SKIP
+
+pkgname = aarch64-glibc
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..7c7e2c6e9405
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,70 @@
+# Maintainer: Anatol Pomozov
+# Maintainer: Eli Schwartz <eschwartz@archlinux.org>
+# Contributor: Christer Solskogen <christer.solskogen@gmail.com>
+# Build order: aarch64-binutils -> aarch64-linux-api-headers -> aarch64-gcc-bootstrap -> aarch64-glibc -> aarch64-gcc -> aarch64-glibc (again)
+
+_arch=aarch64
+_target=$_arch-unknown-linux-gnu
+pkgname=$_arch-glibc
+pkgver=2.33
+pkgrel=1
+_commit=be176490b818b65b5162c332eb6b581690b16e5c
+pkgdesc="GNU C Library ARM64 target"
+arch=(any)
+url='https://www.gnu.org/software/libc/'
+license=('GPL' 'LGPL')
+depends=()
+makedepends=($_arch-gcc $_arch-linux-api-headers)
+options=(!strip staticlibs)
+source=(https://ftp.gnu.org/gnu/libc/glibc-$pkgver.tar.xz{,.sig})
+sha256sums=('2e2556000e105dbd57f0b6b2a32ff2cf173bde4f0d85dffccfd8b7e51a0677ff'
+ 'SKIP')
+validpgpkeys=(7273542B39962DF7B299931416792B4EA25340F8 # "Carlos O'Donell <carlos@systemhalted.org>"
+ BC7C7372637EC10C57D7AA6579C43DFBF1CF2187) # Siddhesh Poyarekar
+
+prepare() {
+ mkdir -p glibc-build
+}
+
+build() {
+ cd glibc-build
+ echo "build-programs=no" > configparms
+ echo "cross-compiling=yes" >> configparms
+ echo "slibdir=/usr/lib" >> configparms
+ echo "rtlddir=/usr/lib" >> configparms
+
+ #hack - Having CPPFLAGS defined makes the build barf. Workaround it like this:
+ _cppflags=$CPPFLAGS
+ unset LD_LIBRARY_PATH CFLAGS CPPFLAGS
+
+ ../glibc-$pkgver/configure \
+ --prefix=/usr \
+ --host=$_target \
+ --libdir=/usr/lib \
+ --with-bugurl=https://bugs.archlinux.org \
+ --enable-kernel=4.4 \
+ --enable-bind-now \
+ --enable-stack-protector=strong \
+ --enable-stackguard-randomization \
+ --disable-timezone-tools \
+ --enable-multi-arch CFLAGS="$_cppflags -O2 -pipe -fno-plt"
+
+ make
+}
+
+package() {
+ cd glibc-build
+ make DESTDIR="$pkgdir"/usr/$_target/sys-root install
+
+ #we don't want static libraries. Only keep the one that we really need.
+ find "$pkgdir"/usr/$_target/sys-root -name '*.a' -and -not -name libc_nonshared.a -delete
+
+ #Remove files we don't need in a cross compilation environment
+ rm -r "$pkgdir"/usr/$_target/sys-root/{etc,usr/share,var}
+
+ #strip manually
+ find "$pkgdir"/usr/$_target/sys-root -name '*.so' -and ! -name 'libc.so' -print0 | xargs -0 $_target-strip --strip-all
+
+ #workaround for fakeroot bug
+ chown -R root:root "$pkgdir"/usr
+}