diff options
Diffstat (limited to 'abs/core/glibc/PKGBUILD')
-rw-r--r-- | abs/core/glibc/PKGBUILD | 150 |
1 files changed, 89 insertions, 61 deletions
diff --git a/abs/core/glibc/PKGBUILD b/abs/core/glibc/PKGBUILD index e7f866f..673951b 100644 --- a/abs/core/glibc/PKGBUILD +++ b/abs/core/glibc/PKGBUILD @@ -1,67 +1,69 @@ -# $Id: PKGBUILD 25809 2009-01-29 17:49:56Z aaron $ +# $Id: PKGBUILD 87193 2010-08-11 00:55:29Z allan $ # Maintainer: Jan de Groot <jgc@archlinux.org> -# Maintainer: Andreas Radke <andyrtr@archlinux.org> +# Maintainer: Allan McRae <allan@archlinux.org> + +# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc +# NOTE: valgrind requires rebuilt with each new glibc version pkgname=glibc -pkgver=2.9 -pkgrel=4 -_glibcdate=20081119 -install=glibc.install -backup=(etc/locale.gen) +pkgver=2.12.1 +pkgrel=1 +_glibcdate=20100811 pkgdesc="GNU C Library" -arch=(i686 x86_64) -license=('GPL' 'LGPL') +arch=('i686' 'x86_64') url="http://www.gnu.org/software/libc" +license=('GPL' 'LGPL') groups=('base') -depends=('kernel-headers>=2.6.27.6' 'tzdata') -makedepends=('gcc>=4.3.2-2') +depends=('linux-api-headers>=2.6.34' 'tzdata') +makedepends=('gcc>=4.4') replaces=('glibc-xen') -source=(ftp://ftp.archlinux.org/other/glibc/${pkgname}-${pkgver}_${_glibcdate}.tar.bz2 - ftp://ftp.archlinux.org/other/glibc/glibc-patches-${pkgver}-2.tar.gz - nscd - locale.gen.txt - locale-gen) -md5sums=('1f7cc590a7a9bbef8b09fe89af69fb8c' - '7679e2bcd981847efccb2bad9e57fee3' +backup=(etc/locale.gen + etc/nscd.conf) +options=('!strip') +install=glibc.install +source=(ftp://ftp.archlinux.org/other/glibc/${pkgname}-${pkgver}_${_glibcdate}.tar.xz + glibc-2.10-dont-build-timezone.patch + glibc-2.10-bz4781.patch + glibc-__i686.patch + nscd + locale.gen.txt + locale-gen) +md5sums=('3f0d64de5a9fc5614d8acc0f1d5846ed' + '4dadb9203b69a3210d53514bb46f41c3' + '0c5540efc51c0b93996c51b57a8540ae' + '40cd342e21f71f5e49e32622b25acc52' 'b587ee3a70c9b3713099295609afde49' '07ac979b6ab5eeb778d55f041529d623' '476e9113489f93b348b21e144b6a8fcf') -build() { - - # for cvs checkout - mkdir ${srcdir}/glibc-${_glibcdate} - cd ${srcdir}/glibc-${_glibcdate} - export _TAG=glibc-2_9-branch - export 'CVSROOT=:pserver:anoncvs@sources.redhat.com:/cvs/glibc' -# cvs -z9 co -r $_TAG libc || return 1 -# tar -cvjf ../../glibc-2.9_${_glibcdate}.tar.bz2 libc -# return 1 - - cd ${srcdir}/libc +mksource() { + git clone git://sourceware.org/git/glibc.git + pushd glibc + git checkout -b glibc-2.12-arch origin/release/2.12/master + popd + tar -cvJf glibc-${pkgver}_${_glibcdate}.tar.xz glibc/* +} - # patch from Debian - patch -Np1 -i ${srcdir}/glibc-patches/glibc-2.5-localedef_segfault-1.patch || return 1 # still needed? +build() { + cd ${srcdir}/glibc - # Upstream fixes. See sources.redhat.com bugzilla - patch -Np1 -i ${srcdir}/glibc-patches/glibc-2.7-bz4781.patch || return 1 + # timezone data is in separate package (tzdata) + patch -Np1 -i ${srcdir}/glibc-2.10-dont-build-timezone.patch - # Gentoo fixes - patch -Np1 -i ${srcdir}/glibc-patches/glibc-dont-build-timezone.patch || return 1 + # http://sources.redhat.com/bugzilla/show_bug.cgi?id=4781 + patch -Np1 -i ${srcdir}/glibc-2.10-bz4781.patch - # fixes taken from FC10 2.9-3 rpm, fixes FS#12215 - # see http://sources.redhat.com/bugzilla/show_bug.cgi?id=7060 - # see https://bugzilla.redhat.com/show_bug.cgi?id=459756 - patch -Np1 -i ${srcdir}/glibc-patches/glibc-nss_dns-gethostbyname4-disable.patch || return 1 - patch -Np1 -i ${srcdir}/glibc-patches/glibc-fixes1.patch || return 1 + # http://sources.redhat.com/bugzilla/show_bug.cgi?id=411 + # http://sourceware.org/ml/libc-alpha/2009-07/msg00072.html + patch -Np1 -i ${srcdir}/glibc-__i686.patch - install -m755 -d ${pkgdir}/etc + install -dm755 ${pkgdir}/etc touch ${pkgdir}/etc/ld.so.conf mkdir glibc-build cd glibc-build - if [ "${CARCH}" = "i686" ]; then + if [[ ${CARCH} = "i686" ]]; then # Hack to fix NPTL issues with Xen, only required on 32bit platforms export CFLAGS="${CFLAGS} -mno-tls-direct-seg-refs" fi @@ -70,34 +72,41 @@ build() { ../configure --prefix=/usr \ --enable-add-ons=nptl,libidn --without-cvs \ - --enable-kernel=2.6.16 --disable-profile \ + --enable-kernel=2.6.18 --disable-profile \ --with-headers=/usr/include --libexecdir=/usr/lib \ --enable-bind-now --with-tls --with-__thread \ - --libdir=/usr/lib --without-gd - - make || return 1 - make install_root=${pkgdir} install || return 1 + --libdir=/usr/lib --without-gd --disable-multi-arch + + make +} - rm -f ${pkgdir}/etc/ld.so.cache ${pkgdir}/etc/ld.so.conf ${pkgdir}/etc/localtime +package() { + cd ${srcdir}/glibc/glibc-build + make install_root=${pkgdir} install - install -m755 -d ${pkgdir}/etc/rc.d - install -m755 -d ${pkgdir}/usr/sbin - install -m755 -d ${pkgdir}/usr/lib/locale - install -m644 ${srcdir}/libc/nscd/nscd.conf ${pkgdir}/etc/nscd.conf + # provided by kernel-headers + rm ${pkgdir}/usr/include/scsi/scsi.h + + rm ${pkgdir}/etc/ld.so.conf + + install -dm755 ${pkgdir}/etc/rc.d + install -dm755 ${pkgdir}/usr/sbin + install -dm755 ${pkgdir}/usr/lib/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 - sed -i -e 's/^\tserver-user/#\tserver-user/' ${pkgdir}/etc/nscd.conf || return 1 + sed -i -e 's/^\tserver-user/#\tserver-user/' ${pkgdir}/etc/nscd.conf # create /etc/locale.gen install -m644 ${srcdir}/locale.gen.txt ${pkgdir}/etc/locale.gen - sed -i "s|/| |g" ${srcdir}/libc/localedata/SUPPORTED - sed -i 's|\\| |g' ${srcdir}/libc/localedata/SUPPORTED - sed -i "s|SUPPORTED-LOCALES=||" ${srcdir}/libc/localedata/SUPPORTED - cat ${srcdir}/libc/localedata/SUPPORTED >> ${pkgdir}/etc/locale.gen + sed -i "s|/| |g" ${srcdir}/glibc/localedata/SUPPORTED + sed -i 's|\\| |g' ${srcdir}/glibc/localedata/SUPPORTED + sed -i "s|SUPPORTED-LOCALES=||" ${srcdir}/glibc/localedata/SUPPORTED + cat ${srcdir}/glibc/localedata/SUPPORTED >> ${pkgdir}/etc/locale.gen sed -i "s|^|#|g" ${pkgdir}/etc/locale.gen - if [ "${CARCH}" = "x86_64" ]; then + if [[ ${CARCH} = "x86_64" ]]; then # fix for the linker sed -i '/RTLDLIST/s%/ld-linux.so.2 /lib64%%' ${pkgdir}/usr/bin/ldd #Comply with multilib binaries, they look for the linker in /lib64 @@ -105,6 +114,25 @@ build() { cd ${pkgdir}/lib64 ln -v -s ../lib/ld* . fi - - rm -f ${pkgdir}/usr/share/info/dir + + # manually strip files as stripping libpthread-*.so and libthread_db.so + # with the default $STRIP_SHARED breaks gdb and stripping ld-*.so breaks + # valgrind on x86_64 + + cd $pkgdir + strip $STRIP_BINARIES sbin/{ldconfig,sln} \ + usr/bin/{gencat,getconf,getent,iconv,locale} \ + usr/bin/{localedef,pcprofiledump,rpcgen,sprof} \ + usr/lib/getconf/* \ + usr/sbin/{iconvconfig,nscd,rpcinfo} + [[ $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_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,gconv/*.so} } |