summaryrefslogtreecommitdiff
path: root/core/glibc
diff options
context:
space:
mode:
Diffstat (limited to 'core/glibc')
-rw-r--r--core/glibc/.arch1
-rw-r--r--core/glibc/PKGBUILD75
2 files changed, 49 insertions, 27 deletions
diff --git a/core/glibc/.arch b/core/glibc/.arch
new file mode 100644
index 000000000..9fe4d07f7
--- /dev/null
+++ b/core/glibc/.arch
@@ -0,0 +1 @@
+mips64el=false
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}
}