summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD115
1 files changed, 61 insertions, 54 deletions
diff --git a/PKGBUILD b/PKGBUILD
index d30da13b8df7..74c24cada8e9 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -3,61 +3,40 @@
# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Contributor: Kevin Mihelich <kevin@archlinuxarm.org>
-# Maintainer: Tavian Barnes <tavianator@tavianator.com>
+# Contributor: Tavian Barnes <tavianator@tavianator.com>
+# Contributor: Vyacheslav Razykov <v.razykov@gmail.com>
+# Maintainer: Wilken Gottwalt <wilken dot gottwalt at posteo dot net>
-_target="arm-linux-gnueabihf"
+_target=arm-linux-gnueabihf
pkgname=${_target}-glibc
-pkgver=2.27
-pkgrel=3
-pkgdesc="GNU C Library (${_target})"
+pkgver=2.38
+pkgrel=4
+pkgdesc="GNU C Library"
arch=('any')
-url="http://www.gnu.org/software/libc/"
+url="https://www.gnu.org/software/libc/"
license=(GPL LGPL)
-depends=("${_target}-linux-api-headers>=4.16.1-1")
-makedepends=("${_target}-gcc-stage2>=8.1.0-1" gperf)
+depends=("${_target}-linux-api-headers>=6.1")
+makedepends=("${_target}-gcc-stage2>=13.2.0" python)
provides=("${_target}-glibc-headers=${pkgver}" "${_target}-eglibc")
conflicts=("${_target}-glibc-headers" "${_target}-eglibc")
replaces=("${_target}-glibc-headers")
-options=(!buildflags !strip staticlibs)
-_commit=23158b08a0908f381459f273a984c6fd328363cb
-#source=(git+https://sourceware.org/git/glibc.git#commit=$_commit
-source=(https://ftp.gnu.org/gnu/glibc/glibc-$pkgver.tar.xz{,.sig}
- bz20338.patch)
-validpgpkeys=(7273542B39962DF7B299931416792B4EA25340F8) # Carlos O'Donell
-md5sums=('898cd5656519ffbc3a03fe811dd89e82'
- 'SKIP'
- 'dc0d3ad59aeaaf591b085a77de6e03e9')
+options=(!buildflags !strip lto staticlibs)
+source=(https://ftp.gnu.org/gnu/glibc/glibc-${pkgver}.tar.xz{,.sig}
+ sdt.h sdt-config.h
+ xldd)
+validpgpkeys=(7273542B39962DF7B299931416792B4EA25340F8 # Carlos O'Donell
+ BC7C7372637EC10C57D7AA6579C43DFBF1CF2187) # Siddhesh Poyarekar
+sha256sums=('fb82998998b2b29965467bc1b69d152e9c307d2cf301c9eafb4555b770ef3fd2'
+ 'SKIP'
+ '1ecf90005ff5a65374c7266acb164fa265aff92328593bdca2352acf5dab240d'
+ 'cdc234959c6fdb43f000d3bb7d1080b0103f4080f5e67bcfe8ae1aaf477812f0'
+ '96aaa6baacd84f8cd517e5b31d575b766a7af5a3be6fad3c8707da796e8f8ca7')
prepare() {
mkdir -p glibc-build
-
- [[ -d glibc-$pkgver ]] && ln -s glibc-$pkgver glibc
- cd glibc
-
- local i; for i in ${source[@]}; do
- case ${i%::*} in
- *.patch)
- msg2 "Applying ${i}"
- patch -p1 -i "$srcdir/${i}"
- ;;
- esac
- done
}
build() {
- local _configure_flags=(
- --prefix=/
- --with-headers=/usr/${_target}/include
- --enable-add-ons
- --enable-bind-now
- --enable-lock-elision
- --disable-multi-arch
- --enable-stack-protector=strong
- --enable-stackguard-randomization
- --disable-profile
- --disable-werror
- )
-
cd glibc-build
echo "slibdir=/lib" >> configparms
@@ -68,19 +47,39 @@ build() {
# remove fortify for building libraries
CPPFLAGS=${CPPFLAGS/-D_FORTIFY_SOURCE=2/}
+ CFLAGS="${CFLAGS/-fno-plt/} -O2"
+ CXXFLAGS="${CXXFLAGS/-fno-plt/} -O2"
+ LDFLAGS="${LDFLAGS/,-z,now/}"
+
export BUILD_CC=gcc
export CC=${_target}-gcc
export CXX=${_target}-g++
export AR=${_target}-ar
export RANLIB=${_target}-ranlib
- "$srcdir/glibc-$pkgver/configure" \
- --libdir=/lib \
- --libexecdir=/lib \
- ${_configure_flags[@]} \
- --target=${_target} \
- --host=${_target} \
- --build=${CHOST}
+ ../glibc-${pkgver}/configure \
+ --target=${_target} \
+ --host=${_target} \
+ --build=${CHOST} \
+ --prefix=/usr \
+ --libdir=/lib \
+ --libexecdir=/lib \
+ --includedir=/include \
+ --with-headers=/usr/${_target}/include \
+ --enable-add-ons \
+ --enable-bind-now \
+ --enable-cet \
+ --enable-fortify-source \
+ --enable-lock-elision \
+ --enable-stack-protector=strong \
+ --enable-stackguard-randomization \
+ --enable-systemtap \
+ --enable-crypt \
+ --enable-obsolete-rpc \
+ --enable-kernel=2.6.32 \
+ --disable-multi-arch \
+ --disable-profile \
+ --disable-werror
echo "build-programs=no" >> configparms
make
@@ -89,11 +88,19 @@ build() {
package() {
cd glibc-build
- make install_root="$pkgdir/usr/$_target" install
+ make install_root="${pkgdir}"/usr/"${_target}" install
+
+ # provide famous ldd script
+ install -Dm755 "${srcdir}"/xldd "${pkgdir}"/usr/bin/"${_target}"-ldd
+
+ # remove not required files
+ rm -r "$pkgdir"/usr/$_target/{etc,usr/share,var}
- mkdir -p "$pkgdir/usr/$_target/usr"
- ln -s ../{include,lib} "$pkgdir/usr/$_target/usr"
+ # provide tracing probes to libstdc++ for exceptions, possibly for other
+ # libraries too. Useful for gdb's catch command.
+ install -Dm644 "${srcdir}"/sdt.h "${pkgdir}"/usr/"${_target}"/include/sys/sdt.h
+ install -Dm644 "${srcdir}"/sdt-config.h "${pkgdir}"/usr/"${_target}"/include/sys/sdt-config.h
- # Remove unneeded for compilation files
- rm -rf "$pkgdir/usr/$_target/"{bin,sbin,etc,share,var}
+ # strip it manually to prevent makepkg complaining about srcdir references
+ find "${pkgdir}"/usr/"${_target}"/lib -type f -exec /usr/bin/"${_target}"-strip --strip-unneeded {} \; 2>/dev/null || true
}