diff options
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 115 |
1 files changed, 61 insertions, 54 deletions
@@ -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 } |