diff options
Diffstat (limited to 'core/glibc/PKGBUILD')
-rw-r--r-- | core/glibc/PKGBUILD | 75 |
1 files changed, 48 insertions, 27 deletions
diff --git a/core/glibc/PKGBUILD b/core/glibc/PKGBUILD index dd77756e3..a6d490f36 100644 --- a/core/glibc/PKGBUILD +++ b/core/glibc/PKGBUILD @@ -9,7 +9,7 @@ pkgver=2.14.1 pkgrel=1 _glibcdate=20111025 pkgdesc="GNU C Library" -arch=('i686' 'x86_64') +arch=('i686' 'x86_64' 'mips64el') url="http://www.gnu.org/software/libc" license=('GPL' 'LGPL') groups=('base') @@ -21,6 +21,7 @@ backup=(etc/gai.conf options=('!strip') install=glibc.install source=(ftp://ftp.archlinux.org/other/glibc/${pkgname}-${pkgver}_${_glibcdate}.tar.xz + http://repo.parabolagnulinux.org/other/glibc-ports-${pkgver}_${_glibcdate}.tar.xz glibc-2.10-dont-build-timezone.patch glibc-2.10-bz4781.patch glibc-__i686.patch @@ -34,20 +35,6 @@ source=(ftp://ftp.archlinux.org/other/glibc/${pkgname}-${pkgver}_${_glibcdate}.t nscd locale.gen.txt locale-gen) -md5sums=('c52a15134dfa9f2c94f2ccd4cb155cf1' - '4dadb9203b69a3210d53514bb46f41c3' - '0c5540efc51c0b93996c51b57a8540ae' - '40cd342e21f71f5e49e32622b25acc52' - 'a3ac6f318d680347bb6e2805d42b73b2' - 'b042647ea7d6f22ad319e12e796bd13e' - '7d0154b7e17ea218c9fa953599d24cc4' - '6970bcfeb3bf88913436d5112d16f588' - '7da8c554a3b591c7401d7023b1928afc' - 'c5de2a946215d647c8af5432ec4b0da0' - '55febbb72139ac7b65757df085024b83' - 'b587ee3a70c9b3713099295609afde49' - '07ac979b6ab5eeb778d55f041529d623' - '476e9113489f93b348b21e144b6a8fcf') mksource() { @@ -56,6 +43,15 @@ mksource() { git checkout -b glibc-2.14-arch origin/release/2.14/master popd tar -cvJf glibc-${pkgver}_${_glibcdate}.tar.xz glibc/* + mksource-ports +} + +mksource-ports() { + git clone git://sourceware.org/git/glibc-ports.git + pushd glibc-ports + git checkout -b glibc-2.14-arch origin/release/2.14/master + popd + tar -cvJf glibc-ports-${pkgver}_${_glibcdate}.tar.xz glibc-ports/* } build() { @@ -99,6 +95,8 @@ build() { # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=bdd816a3 (only fedora branch...) patch -Np1 -i ${srcdir}/glibc-2.14-reinstall-nis-rpc-headers.patch + ln -s ../glibc-ports ports + install -dm755 ${pkgdir}/etc touch ${pkgdir}/etc/ld.so.conf @@ -109,18 +107,27 @@ build() { if [[ ${CARCH} = "i686" ]]; then # Hack to fix NPTL issues with Xen, only required on 32bit platforms export CFLAGS="${CFLAGS} -mno-tls-direct-seg-refs" + elif [[ ${CARCH} = "mips64el" ]]; then + # mips64el is only supported out of tree. + extra_addons=",ports" fi - echo "slibdir=/lib" >> configparms + if [[ ${CARCH} != "mips64el" ]]; then + echo "slibdir=/lib" >> configparms + libdir=/usr/lib + else + echo "slibdir=/lib32" >> configparms + libdir=/usr/lib32 + fi # remove hardening options from CFLAGS for building libraries CFLAGS=${CFLAGS/-fstack-protector/} CFLAGS=${CFLAGS/-D_FORTIFY_SOURCE=2/} ${srcdir}/glibc/configure --prefix=/usr \ - --libdir=/usr/lib --libexecdir=/usr/lib \ + --libdir=$libdir --libexecdir=$libdir \ --with-headers=/usr/include \ - --enable-add-ons=nptl,libidn \ + --enable-add-ons=nptl,libidn$extra_addons \ --enable-kernel=2.6.27 \ --with-tls --with-__thread \ --enable-bind-now --without-gd \ @@ -152,11 +159,19 @@ package() { cd ${srcdir}/glibc-build make install_root=${pkgdir} install + if [[ ${CARCH} != "mips64el" ]]; then + libdir=usr/lib + slibdir=lib + else + libdir=usr/lib32 + slibdir=lib32 + fi + rm -f ${pkgdir}/etc/ld.so.{cache,conf} install -dm755 ${pkgdir}/etc/rc.d install -dm755 ${pkgdir}/usr/sbin - install -dm755 ${pkgdir}/usr/lib/locale + install -dm755 ${pkgdir}/${libdir}/locale install -m644 ${srcdir}/glibc/nscd/nscd.conf ${pkgdir}/etc/nscd.conf install -m755 ${srcdir}/nscd ${pkgdir}/etc/rc.d/nscd install -m755 ${srcdir}/locale-gen ${pkgdir}/usr/sbin @@ -179,6 +194,12 @@ package() { mkdir ${pkgdir}/lib64 cd ${pkgdir}/lib64 ln -v -s ../lib/ld* . + elif [[ ${CARCH} = "mips64el" ]]; then + # Previously our binaries used /lib/ld.so.1 as the interpreter, we + # don't want the upgrade to fail due to this. + mkdir ${pkgdir}/lib + cd ${pkgdir}/lib + ln -s ../lib32/ld* . fi # manually strip files as stripping libpthread-*.so and libthread_db.so @@ -189,16 +210,16 @@ package() { strip $STRIP_BINARIES sbin/{ldconfig,sln} \ usr/bin/{gencat,getconf,getent,iconv,locale} \ usr/bin/{localedef,pcprofiledump,rpcgen,sprof} \ - usr/lib/getconf/* \ + $libdir/getconf/* \ usr/sbin/{iconvconfig,nscd} [[ $CARCH = "i686" ]] && strip $STRIP_BINARIES usr/bin/lddlibc4 - strip $STRIP_STATIC usr/lib/*.a \ - lib/{{ld,libpthread}-${pkgver},libthread_db-1.0}.so + strip $STRIP_STATIC $libdir/*.a \ + $slibdir/{{ld,libpthread}-${pkgver},libthread_db-1.0}.so - strip $STRIP_SHARED lib/{libanl,libBrokenLocale,libc,libcidn,libcrypt}-${pkgver}.so \ - lib/libnss_{compat,dns,files,hesiod,nis,nisplus}-${pkgver}.so \ - lib/{libdl,libm,libnsl,libresolv,librt,libutil}-${pkgver}.so \ - lib/{libmemusage,libpcprofile,libSegFault}.so \ - usr/lib/{pt_chown,{audit,gconv}/*.so} + strip $STRIP_SHARED $slibdir/{libanl,libBrokenLocale,libc,libcidn,libcrypt}-${pkgver}.so \ + $slibdir/libnss_{compat,dns,files,hesiod,nis,nisplus}-${pkgver}.so \ + $slibdir/{libdl,libm,libnsl,libresolv,librt,libutil}-${pkgver}.so \ + $slibdir/{libmemusage,libpcprofile,libSegFault}.so \ + $libdir/{pt_chown,{audit,gconv}/*.so} } |