diff options
Diffstat (limited to 'core/eglibc/PKGBUILD')
-rw-r--r-- | core/eglibc/PKGBUILD | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/core/eglibc/PKGBUILD b/core/eglibc/PKGBUILD new file mode 100644 index 000000000..87ea5dc27 --- /dev/null +++ b/core/eglibc/PKGBUILD @@ -0,0 +1,149 @@ +# $Id: PKGBUILD 116984 2011-03-27 06:35:25Z allan $ +# 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=eglibc +pkgver=2.13 +pkgrel=1 +_glibcdate=20110117 +pkgdesc="GNU C Library" +arch=('i686' 'x86_64' 'mips64el') +url="http://www.gnu.org/software/libc" +license=('GPL' 'LGPL') +groups=('base') +depends=('linux-api-headers>=2.6.37' 'tzdata') +makedepends=('gcc>=4.4') +backup=(etc/locale.gen + etc/nscd.conf) +options=('!strip') +install=glibc.install +source=(http://repo.parabolagnulinux.org/other/eglibc-2_13.tar.bz2 + http://repo.parabolagnulinux.org/other/eglibc-linuxthreads-2_13.tar.bz2 + http://repo.parabolagnulinux.org/other/eglibc-localedef-2_13.tar.bz2 + http://repo.parabolagnulinux.org/other/eglibc-ports-2_13.tar.bz2 + nscd + locale.gen.txt + locale-gen) + +build() { + cd ${srcdir} + ln -s eglibc-2_13 eglibc + + cd eglibc + + # timezone data is in separate package (tzdata) + sed -i "s/localedata //" Makeconfig + + for addon in ports ; do + ln -s ../eglibc-$addon-2_13 $addon + done + + install -dm755 ${pkgdir}/etc + touch ${pkgdir}/etc/ld.so.conf + + cd ${srcdir} + mkdir build || true + cd build + + if [[ ${CARCH} = "mips64el" ]]; then + # mips64el is only supported out of tree. + extra_addons=",ports" + fi + + echo "slibdir=/lib" >> configparms + + ${srcdir}/eglibc/configure --prefix=/usr \ + --libdir=/usr/lib --libexecdir=/usr/lib \ + --with-headers=/usr/include \ + --enable-add-ons=nptl,libidn$extra_addons \ + --enable-kernel=2.6.27 \ + --with-tls --with-__thread \ + --enable-bind-now --without-gd \ + --without-cvs --disable-profile \ + --disable-multi-arch + + make +} + +check() { + cd ${srcdir}/build + + # some errors are expected - manually check log files + make -k check || true +} + +package() { + cd ${srcdir}/build + make install_root=${pkgdir} install + + rm ${pkgdir}/etc/ld.so.{cache,conf} + + install -dm755 ${pkgdir}/etc/rc.d + install -dm755 ${pkgdir}/usr/sbin + install -dm755 ${pkgdir}/usr/lib/locale + install -m644 ${srcdir}/eglibc/nscd/nscd.conf ${pkgdir}/etc/nscd.conf + install -m755 ${srcdir}/nscd ${pkgdir}/etc/rc.d/nscd + install -m755 ${srcdir}/locale-gen ${pkgdir}/usr/sbin + install -m644 ${srcdir}/eglibc/posix/gai.conf ${pkgdir}/etc/gai.conf + + 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}/eglibc/localedata/SUPPORTED + sed -i 's|\\| |g' ${srcdir}/eglibc/localedata/SUPPORTED + sed -i "s|SUPPORTED-LOCALES=||" ${srcdir}/eglibc/localedata/SUPPORTED + cat ${srcdir}/eglibc/localedata/SUPPORTED >> ${pkgdir}/etc/locale.gen + sed -i "s|^|#|g" ${pkgdir}/etc/locale.gen + + if [[ ${CARCH} = "x86_64" ]]; then + # fix for the linker + sed -i '/RTLDLIST/s%lib64%lib%' ${pkgdir}/usr/bin/ldd + # Comply with multilib binaries, they look for the linker in /lib64 + mkdir ${pkgdir}/lib64 + cd ${pkgdir}/lib64 + ln -v -s ../lib/ld* . + fi + + # 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} +} +md5sums=('b7b17d9c6b5b71b5e5322e04ca63c190' + '483f37cfdd619e81d8ca9e9d713944b5' + '4dadb9203b69a3210d53514bb46f41c3' + '0c5540efc51c0b93996c51b57a8540ae' + '40cd342e21f71f5e49e32622b25acc52' + 'a3ac6f318d680347bb6e2805d42b73b2' + 'b042647ea7d6f22ad319e12e796bd13e' + '24dfab6fd244f3773523412588ecc52c' + '7d0154b7e17ea218c9fa953599d24cc4' + 'b587ee3a70c9b3713099295609afde49' + '07ac979b6ab5eeb778d55f041529d623' + '476e9113489f93b348b21e144b6a8fcf') +md5sums=('0f79580a194657aa74e3331d33a3889e' + 'f07ce5e45308fc7e2faaa55f2c766550' + '40b693a9ce8ab0a8837826160b3419c9' + '973e16228492b46bf731ad5ce2e06e9f' + 'b587ee3a70c9b3713099295609afde49' + '07ac979b6ab5eeb778d55f041529d623' + '476e9113489f93b348b21e144b6a8fcf') |