summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Huddleston <eradicator@gentoo.org>2005-01-11 02:42:26 +0000
committerJeremy Huddleston <eradicator@gentoo.org>2005-01-11 02:42:26 +0000
commitcee4f7a990c23fa891ed92162cfc7b8239f1fbbe (patch)
tree1e997cf89834e3ea75c1e81157404fcd6abf2b69
parentThe 200411* glibc ebuild will need some more work before it plays nicely with... (diff)
downloadhistorical-cee4f7a990c23fa891ed92162cfc7b8239f1fbbe.tar.gz
historical-cee4f7a990c23fa891ed92162cfc7b8239f1fbbe.tar.bz2
historical-cee4f7a990c23fa891ed92162cfc7b8239f1fbbe.zip
Support MULTILIB_ABIS. Build for all of them by default so multilib archs can have a multilib c++ compiler without usign ugly hacks.
-rw-r--r--sys-libs/glibc/ChangeLog7
-rw-r--r--sys-libs/glibc/Manifest58
-rw-r--r--sys-libs/glibc/glibc-2.3.4.20040808-r1.ebuild60
-rw-r--r--sys-libs/glibc/glibc-2.3.4.20041102.ebuild73
4 files changed, 129 insertions, 69 deletions
diff --git a/sys-libs/glibc/ChangeLog b/sys-libs/glibc/ChangeLog
index 8cca8be928b6..fa108e62188c 100644
--- a/sys-libs/glibc/ChangeLog
+++ b/sys-libs/glibc/ChangeLog
@@ -1,6 +1,11 @@
# ChangeLog for sys-libs/glibc
# Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/ChangeLog,v 1.300 2005/01/05 01:53:39 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/ChangeLog,v 1.301 2005/01/11 02:42:26 eradicator Exp $
+
+ 10 Jan 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ glibc-2.3.4.20040808-r1.ebuild, glibc-2.3.4.20041102.ebuild:
+ Support MULTILIB_ABIS. Build for all of them by default so multilib archs
+ can have a multilib c++ compiler without usign ugly hacks.
04 Jan 2005; Mike Frysinger <vapier@gentoo.org>
+files/2.3.2/glibc-2.3.2-assert.patch, glibc-2.3.2-r12.ebuild:
diff --git a/sys-libs/glibc/Manifest b/sys-libs/glibc/Manifest
index 48496a8fd660..2592de54fafe 100644
--- a/sys-libs/glibc/Manifest
+++ b/sys-libs/glibc/Manifest
@@ -1,19 +1,20 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
-MD5 ed4fb3223e1583dc9bbfcdc884454e47 ChangeLog 63645
+MD5 d8ad30ce7b4508576195e7adf359bbdd ChangeLog 63907
MD5 5529417ce5503c488b1ccaaa2e781799 glibc-2.2.5-r9.ebuild 10915
MD5 3b44d39389334d36b42c51887729dd4d glibc-2.3.2-r12.ebuild 21817
MD5 39ac6b0f30c9c27a5cd04c4e0b6caadb glibc-2.3.3.20040420-r2.ebuild 21634
-MD5 e4c399efc30efc54fb478b897cd37149 glibc-2.3.4.20040619-r2.ebuild 21078
+MD5 68b59f6a267b5387156243400efeb299 glibc-2.3.4.20040808-r1.ebuild 25745
+MD5 3a7938a240da34b92f8dfbfe5bc75c18 glibc-2.3.4.20041102.ebuild 30701
MD5 567094e03359ffc1c95af7356395228d metadata.xml 162
-MD5 663dd1ec49f1494962ccb7e980aec5ac glibc-2.3.4.20040808-r1.ebuild 25117
-MD5 ba454b14b54067f0ffa7de7bc6941cb4 glibc-2.3.4.20041102.ebuild 29737
+MD5 e4c399efc30efc54fb478b897cd37149 glibc-2.3.4.20040619-r2.ebuild 21078
MD5 9cc1e6b6f749dba7c8759bd07266f7d9 files/digest-glibc-2.2.5-r9 143
MD5 2d5306ef875573750af642a9f93b634a files/digest-glibc-2.3.2-r12 312
MD5 42af7e35fe2404a49954f91fd1aee891 files/digest-glibc-2.3.3.20040420-r2 312
MD5 470f57fe18dd0a94cb4a4d6cf51528af files/digest-glibc-2.3.4.20040619-r2 307
MD5 2f05d3181e9a9ded61e074147af47e8e files/digest-glibc-2.3.4.20040808-r1 382
+MD5 75b85b24e4ded1b0e8a0a762d5805818 files/digest-glibc-2.3.4.20041102 383
MD5 e4393f4721a207750581d6265d5f7f40 files/fix-sysctl_h.patch 376
MD5 52cfc7627fc62dfb26d8d163aac361f6 files/glibc-2.2.2-test-lfs-timeout.patch 320
MD5 135f8145885a2f4f9876fe973f33ddf6 files/glibc-2.2.4-string2.h.diff 5221
@@ -27,7 +28,6 @@ MD5 bedcd868a9462009158714238594173c files/nscd 964
MD5 2013443f5192d4b999953ba4248d288c files/nscd.conf 1158
MD5 d8830438ea871dbfd1acf7a3d0299159 files/test-__thread.c 53
MD5 4404ee4b6e3017819d8f36082e0265e5 files/test-sysctl_h.c 54
-MD5 75b85b24e4ded1b0e8a0a762d5805818 files/digest-glibc-2.3.4.20041102 383
MD5 f75ebd335c4b882013cc12229d39c9f7 files/2.2.5/glibc-2.2.5-alpha-gcc3-fix.diff 475
MD5 843eaa26ae2c49e894aa365b6f463546 files/2.2.5/glibc-2.2.5-alpha-pcdyn-fix.diff 471
MD5 5182f441608833569cb9e78536baf8af files/2.2.5/glibc-2.2.5-arm-errlist-fix.diff 2210
@@ -98,48 +98,48 @@ MD5 0e27dbd2a3b85a0e14625294296fad9a files/2.3.3/glibc-2.3.2-propolice-guard-fun
MD5 1b5df7c58ad160593192704cece47347 files/2.3.3/glibc-2.3.3-dl_execstack-PaX-support.patch 1791
MD5 62f7e62583aaa70645d9c847b6a84299 files/2.3.3/glibc-2.3.3-frandom-detect.patch 1770
MD5 ec83f3d86f23243a1fb334b8872d454f files/2.3.3/glibc-2.3.3-localedef-fix-trampoline.patch 2329
+MD5 ca1d4648f72e5fea2858fdb6ea3d39a0 files/2.3.3/glibc-2.3.3-mips-addabi.diff 1720
+MD5 f9343413b90877edfcaeedf89b3dec77 files/2.3.3/glibc-2.3.3-mips-nolib3264.diff 1166
+MD5 81d95470c5766e56e27ad8b6967d2a16 files/2.3.3/glibc-2.3.3-mips-semtimedop.diff 602
+MD5 847afe57e19abff1d5c49f6bb7084a3d files/2.3.3/glibc-2.3.3-mips-syscall.h.diff 1199
+MD5 84fa9a725c22975d735a2f91543a5cca files/2.3.3/glibc-2.3.3-mips-sysify.diff 2138
MD5 0bfc56be86acec8ec52fe29249e267a4 files/2.3.3/glibc-2.3.3-owl-malloc-unlink-sanity-check.diff 1425
+MD5 ff0a2716aebc6fb8a2e3b3f2c9be8bba files/2.3.3/glibc-2.3.3-tempfile.patch 1787
MD5 175bde9b0017d4deb63cf55f38173e11 files/2.3.3/glibc-2.3.3_pre20040117-got-fix.diff 752
MD5 a3eb98943bc9db66df33bfc08dea4c2e files/2.3.3/glibc-2.3.3_pre20040117-pt_pax.diff 1470
MD5 7b6054c2e8ec654341690586bc2028c5 files/2.3.3/glibc-2.3.3_pre20040117-signal-ssp.diff 1431
MD5 86626ba8df9cac083bb3e1cfe23ec07e files/2.3.3/glibc-2.3.3_pre20040420-mips-dl-machine-calls.diff 1497
MD5 ab91cb5bad07e1e79f990d4933741d42 files/2.3.3/glibc-2.3.3_pre20040420-mips-incl-sgidefs.diff 8287
MD5 ae9425cd4199cccd69c6d22633583dc1 files/2.3.3/ssp.c 4041
-MD5 ff0a2716aebc6fb8a2e3b3f2c9be8bba files/2.3.3/glibc-2.3.3-tempfile.patch 1787
-MD5 ca1d4648f72e5fea2858fdb6ea3d39a0 files/2.3.3/glibc-2.3.3-mips-addabi.diff 1720
-MD5 f9343413b90877edfcaeedf89b3dec77 files/2.3.3/glibc-2.3.3-mips-nolib3264.diff 1166
-MD5 81d95470c5766e56e27ad8b6967d2a16 files/2.3.3/glibc-2.3.3-mips-semtimedop.diff 602
-MD5 847afe57e19abff1d5c49f6bb7084a3d files/2.3.3/glibc-2.3.3-mips-syscall.h.diff 1199
-MD5 84fa9a725c22975d735a2f91543a5cca files/2.3.3/glibc-2.3.3-mips-sysify.diff 2138
-MD5 03e0e9a2235886c0abbe98bdafd0d5ce files/2.3.4/glibc-2.3.4-hardened-sysdep-shared.patch 382
-MD5 659a9d64935d67a5938d0cb4e5fe4899 files/2.3.4/glibc-2.3.4-hppa-hardened-disable__init_arrays.patch 2310
-MD5 207e313566b3fc24e0a5ca2ffd2da1d9 files/2.3.4/glibc-2.3.4-nptl-altivec.patch 6140
-MD5 340825c77e38e88e0ceaa12f154cbfa3 files/2.3.4/glibc-2.3.4.20040808-i386-got-fix.diff 4203
-MD5 16f18501efd56811e724231470dc5d00 files/2.3.4/glibc-2.3.4-ld.so-brk-fix.patch 2562
-MD5 e109c03013bd08a2b96e2c2ca9017a4b files/2.3.4/glibc-gentoo-libdir.patch 1347
+MD5 9db90105eb74d75834d25a599cba97ea files/2.3.4/glibc-2.3.3-mdns-resolver2.diff 12272
MD5 89a6d0d924c8b05c4e06bdffb7c69b41 files/2.3.4/glibc-2.3.4-arm-ioperm.patch 4037
-MD5 7960564130a698073bdd3597a781e39b files/2.3.4/glibc-2.3.4-nptl-pthread.h-g++-fix.patch 3304
MD5 9ee1438ba6ac30363130330c996dbb84 files/2.3.4/glibc-2.3.4-dl_execstack-PaX-support.patch 1443
-MD5 bbe355d94c5a36e11f543d12b70b5702 files/2.3.4/glibc-sec-hotfix-20040916.patch 3080
-MD5 9db90105eb74d75834d25a599cba97ea files/2.3.4/glibc-2.3.3-mdns-resolver2.diff 12272
-MD5 7fca8a203196513f13e519903dedbfd5 files/2.3.4/glibc-2.3.4-getcontext.patch 9854
-MD5 d490f38bd9ca9c48a9799f1e48629f6e files/2.3.4/glibc-2.3.4-mips-generate-syscall_h.patch 8230
-MD5 fe21fd44628b90f50e5024462cf4c348 files/2.3.4/glibc-2.3.4-res_init.patch 3417
+MD5 d902a9d990ee2970dd55dd805f352fa7 files/2.3.4/glibc-2.3.4-features-header-fix.patch 449
MD5 ad71dc5c3f84f026c6e28865b2e90fbb files/2.3.4/glibc-2.3.4-fedora-branch-no-force-nontls.patch 2337
MD5 973e31ce24c9622234c4293b367de6b3 files/2.3.4/glibc-2.3.4-fedora-branch-no-libnoversion.patch 2288
-MD5 b72e5aca6d834026a6f5fb87623e6fd3 files/2.3.4/host.conf 1302
-MD5 d902a9d990ee2970dd55dd805f352fa7 files/2.3.4/glibc-2.3.4-features-header-fix.patch 449
MD5 1974267b1382fb38be7495b12c847f70 files/2.3.4/glibc-2.3.4-fedora-branch-nomalloccheck.patch 372
+MD5 7fca8a203196513f13e519903dedbfd5 files/2.3.4/glibc-2.3.4-getcontext.patch 9854
+MD5 03e0e9a2235886c0abbe98bdafd0d5ce files/2.3.4/glibc-2.3.4-hardened-sysdep-shared.patch 382
+MD5 659a9d64935d67a5938d0cb4e5fe4899 files/2.3.4/glibc-2.3.4-hppa-hardened-disable__init_arrays.patch 2310
+MD5 16f18501efd56811e724231470dc5d00 files/2.3.4/glibc-2.3.4-ld.so-brk-fix.patch 2562
MD5 076484ade8a834efb73190b687196392 files/2.3.4/glibc-2.3.4-mdns-resolver-20041102.diff 12809
MD5 41cec3deb89ffdbd670024a2b615b819 files/2.3.4/glibc-2.3.4-mips-add-missing-sgidefs_h.patch 1196
+MD5 d490f38bd9ca9c48a9799f1e48629f6e files/2.3.4/glibc-2.3.4-mips-generate-syscall_h.patch 8230
MD5 03b2b9cfe46d287c2a28df70e7a9e9a1 files/2.3.4/glibc-2.3.4-mips-prot_grows-undefined.patch 1410
MD5 8d43dc97fe220048ade220f23e84f006 files/2.3.4/glibc-2.3.4-mips-rtld_deepbind-undefined.patch 1425
MD5 1185022e9a50560d1bf9116a0461e011 files/2.3.4/glibc-2.3.4-mips-sysdep-cancel.diff 2402
MD5 039f62650037a4a15cef3066b26d27c9 files/2.3.4/glibc-2.3.4-mips-update-__throw.patch 1975
+MD5 207e313566b3fc24e0a5ca2ffd2da1d9 files/2.3.4/glibc-2.3.4-nptl-altivec.patch 6140
+MD5 7960564130a698073bdd3597a781e39b files/2.3.4/glibc-2.3.4-nptl-pthread.h-g++-fix.patch 3304
+MD5 fe21fd44628b90f50e5024462cf4c348 files/2.3.4/glibc-2.3.4-res_init.patch 3417
+MD5 340825c77e38e88e0ceaa12f154cbfa3 files/2.3.4/glibc-2.3.4.20040808-i386-got-fix.diff 4203
+MD5 e109c03013bd08a2b96e2c2ca9017a4b files/2.3.4/glibc-gentoo-libdir.patch 1347
+MD5 bbe355d94c5a36e11f543d12b70b5702 files/2.3.4/glibc-sec-hotfix-20040916.patch 3080
+MD5 b72e5aca6d834026a6f5fb87623e6fd3 files/2.3.4/host.conf 1302
-----BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.9.10 (GNU/Linux)
+Version: GnuPG v1.4.0 (GNU/Linux)
-iD8DBQFB20itroRuSHgZdywRAoUAAJsEfYCxh8+3cdmZOAZwXWVMfnxEdQCfUtCK
-JKskttyZOiTNfkw+I0NU670=
-=GhjB
+iD8DBQFB4z0dArHZZzCEUG0RAqRSAJkBPY1vVAveexyRCBGQzydn55BKVACfdceX
+B7ujeG7AGPoRHUSvOZN6ppY=
+=fKny
-----END PGP SIGNATURE-----
diff --git a/sys-libs/glibc/glibc-2.3.4.20040808-r1.ebuild b/sys-libs/glibc/glibc-2.3.4.20040808-r1.ebuild
index 25f7b7e92f8e..52cb30691598 100644
--- a/sys-libs/glibc/glibc-2.3.4.20040808-r1.ebuild
+++ b/sys-libs/glibc/glibc-2.3.4.20040808-r1.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.3.4.20040808-r1.ebuild,v 1.24 2005/01/05 01:53:39 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.3.4.20040808-r1.ebuild,v 1.25 2005/01/11 02:42:26 eradicator Exp $
inherit eutils flag-o-matic gcc versionator
@@ -54,7 +54,7 @@ LICENSE="LGPL-2"
# after ~2.3.3.20040420 break blackdown-jdk on sparc.
KEYWORDS="x86 amd64 hppa ppc64 ~ppc -mips ~sparc"
IUSE="nls pic build nptl erandom hardened multilib debug userlocales"
-RESTRICT="nostrip" # we'll handle stripping ourself #46186
+RESTRICT="nostrip multilib-pkg" # we'll handle stripping ourself #46186
# We need new cleanup attribute support from gcc for NPTL among things ...
# We also need linux26-headers if using NPTL. Including kernel headers is
@@ -136,6 +136,9 @@ setup_flags() {
fi
if [ "${PROFILE_ARCH}" = "sparc64-multilib" ]; then
+ # We change our CHOST, so set this right here
+ export CC="$(tc-getCC)"
+
# glibc isn't too smart about guessing our flags. It
# will default to -xarch=v9, but assembly in sparc64 glibc
# requires v9a or greater...
@@ -144,29 +147,42 @@ setup_flags() {
if [ "${ABI}" = "sparc32" ]; then
CTARGET="sparcv9b-unknown-linux-gnu"
CHOST="${CTARGET}"
- CFLAGS_ABI="$(get_abi_var CFLAGS)"
else
CTARGET="sparc64b-unknown-linux-gnu"
CHOST="${CTARGET}"
- CFLAGS_ABI="$(get_abi_var CFLAGS) -Wa,-xarch=v9b"
+ export CFLAGS_sparc64="$(get_abi_CFLAGS) -Wa,-xarch=v9b"
fi
else
if [ "${ABI}" = "sparc32" ]; then
CTARGET="sparcv9-unknown-linux-gnu"
CHOST="${CTARGET}"
- CFLAGS_ABI="$(get_abi_var CFLAGS)"
else
CTARGET="sparc64-unknown-linux-gnu"
CHOST="${CTARGET}"
- CFLAGS_ABI="$(get_abi_var CFLAGS) -Wa,-xarch=v9a"
+ export CFLAGS_sparc64="$(get_abi_CFLAGS) -Wa,-xarch=v9a"
fi
fi
filter-flags -mvis -m32 -m64 -Wa,-xarch -Wa,-A
- export CC="${ORIG_CC} ${CFLAGS_ABI}"
fi
fi
+ # AMD64 multilib
+ if use amd64; then
+ # We change our CHOST, so set this right here
+ export CC="$(tc-getCC)"
+
+ if [ "${ABI}" = "amd64" ]; then
+ CTARGET="x86_64-pc-linux-gnu"
+ CHOST="${CTARGET}"
+ else
+ CTARGET="i686-pc-linux-gnu"
+ CHOST="${CTARGET}"
+ fi
+
+ filter-flags -m32 -m64
+ fi
+
if [ "`gcc-major-version`" -ge "3" -a "`gcc-minor-version`" -ge "4" ]; then
# broken in 3.4.x
replace-flags -march=pentium-m -mtune=pentium3
@@ -590,15 +606,16 @@ src_unpack() {
chmod u+x ${S}/scripts/*.sh
}
+
src_compile() {
- if [ "${PROFILE_ARCH}" = "sparc64-multilib" -a -z "${ABI}" ]; then
- export ORIG_CC="$(tc-getCC)"
+ if [ -n "${MULTILIB_ABIS}" -a -z "${OABI}" ] && ! hasq multilib-pkg ${FEATURES}; then
+ OABI="${ABI}"
for ABI in ${MULTILIB_ABIS}; do
export ABI
einfo "Compiling ${ABI} glibc"
src_compile && mv ${WORKDIR}/build ${WORKDIR}/build.${ABI}
done
- unset ABI
+ ABI="${OABI}"
return 0
fi
@@ -656,14 +673,26 @@ src_compile() {
}
src_install() {
- if [ "${PROFILE_ARCH}" = "sparc64-multilib" -a -z "${ABI}" ]; then
+ if [ -n "${MULTILIB_ABIS}" -a -z "${OABI}" ] && ! hasq multilib-pkg ${FEATURES}; then
+ OABI="${ABI}"
for ABI in ${MULTILIB_ABIS}; do
export ABI
mv ${WORKDIR}/build.${ABI} ${WORKDIR}/build
src_install && mv ${WORKDIR}/build ${WORKDIR}/build.${ABI}
+
+ # Handle stupid lib32 BS
+ if use amd64 && [ "${ABI}" = "x86" -a "$(get_abi_LIBDIR x86)" != "lib" ]; then
+ mv ${D}/lib ${D}/$(get_abi_LIBDIR x86)
+ mv ${D}/usr/lib ${D}/usr/$(get_abi_LIBDIR x86)
+ mkdir ${D}/lib
+ dosym ../$(get_abi_LIBDIR x86)/ld-linux.so.1 /lib/ld-linux.so.1
+ dosym ../$(get_abi_LIBDIR x86)/ld-linux.so.2 /lib/ld-linux.so.2
+ dosed "s:/lib/:/$(get_abi_LIBDIR x86)/:g" /usr/$(get_abi_LIBDIR x86)/libc.so /usr/$(get_abi_LIBDIR x86)/libpthread.so
+ fi
+
done
- unset ABI
return 0
+ ABI="${OABI}"
fi
setup_flags
@@ -823,12 +852,7 @@ pkg_preinst() {
# decide to be multilib compatible and FHS compliant. note that this
# chunk of FHS compliance only applies to 64bit archs where 32bit
# compatibility is a major concern (not IA64, for example).
- use amd64 && [ "$(get_libdir)" == "lib64" ] && fix_lib64_symlinks
-
- # note that PPC64 doesn't comply with documents that aren't
- # a standard yet and there is little support in the
- # community for them. But post 2004.3 we'll figure it out
- use ppc64 && [ "$(get_libdir)" == "lib64" ]
+ use amd64 && [ "$(get_libdir)" == "lib64" -a -z "${MULTILIB_ABIS}" ] && fix_lib64_symlinks
}
pkg_postinst() {
diff --git a/sys-libs/glibc/glibc-2.3.4.20041102.ebuild b/sys-libs/glibc/glibc-2.3.4.20041102.ebuild
index f2f649dc8642..d12b2edd4cb9 100644
--- a/sys-libs/glibc/glibc-2.3.4.20041102.ebuild
+++ b/sys-libs/glibc/glibc-2.3.4.20041102.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.3.4.20041102.ebuild,v 1.18 2005/01/05 01:53:39 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.3.4.20041102.ebuild,v 1.19 2005/01/11 02:42:26 eradicator Exp $
inherit eutils flag-o-matic gcc versionator
@@ -54,7 +54,7 @@ LICENSE="LGPL-2"
# samba-1.0.9 tarball.
KEYWORDS="~amd64 ppc64 -hppa ~ia64 ~ppc ~x86 ~mips -sparc"
IUSE="nls pic build nptl nptlonly erandom hardened multilib debug userlocales nomalloccheck"
-RESTRICT="nostrip" # we'll handle stripping ourself #46186
+RESTRICT="nostrip multilib-pkg" # we'll handle stripping ourself #46186
# We need new cleanup attribute support from gcc for NPTL among things ...
# We also need linux26-headers if using NPTL. Including kernel headers is
@@ -136,7 +136,8 @@ setup_flags() {
fi
if [ "${PROFILE_ARCH}" = "sparc64-multilib" ]; then
- CFLAGS_ABI="$(get_abi_var CFLAGS)"
+ # We change our CHOST, so set this right here
+ export CC="$(tc-getCC)"
# glibc isn't too smart about guessing our flags. It
# will default to -xarch=v9, but assembly in sparc64 glibc
@@ -145,25 +146,43 @@ setup_flags() {
# Change CHOST to include us3 assembly
if [ "${ABI}" = "sparc32" ]; then
CTARGET="sparcv9b-unknown-linux-gnu"
+ CHOST="${CTARGET}"
else
CTARGET="sparc64b-unknown-linux-gnu"
- CFLAGS_ABI="${CFLAGS_ABI} -Wa,-xarch=v9b"
+ CHOST="${CTARGET}"
+ CFLAGS_sparc64="$(get_abi_CFLAGS) -Wa,-xarch=v9b"
fi
else
if [ "${ABI}" = "sparc32" ]; then
CTARGET="sparcv9-unknown-linux-gnu"
+ CHOST="${CTARGET}"
else
CTARGET="sparc64-unknown-linux-gnu"
- CFLAGS_ABI="${CFLAGS_ABI} -Wa,-xarch=v9a"
+ CHOST="${CTARGET}"
+ CFLAGS_sparc64="$(get_abi_CFLAGS) -Wa,-xarch=v9a"
fi
fi
- CHOST="${CTARGET}"
filter-flags -mvis -m32 -m64 -Wa,-xarch -Wa,-A
- export CC="${ORIG_CC} ${CFLAGS_ABI}"
fi
fi
+ # AMD64 multilib
+ if use amd64; then
+ # We change our CHOST, so set this right here
+ export CC="$(tc-getCC)"
+
+ if [ "${ABI}" = "amd64" ]; then
+ CTARGET="x86_64-pc-linux-gnu"
+ CHOST="${CTARGET}"
+ else
+ CTARGET="i686-pc-linux-gnu"
+ CHOST="${CTARGET}"
+ fi
+
+ filter-flags -m32 -m64
+ fi
+
if [ "`gcc-major-version`" -ge "3" -a "`gcc-minor-version`" -ge "4" ]; then
# broken in 3.4.x
replace-flags -march=pentium-m -mtune=pentium3
@@ -589,17 +608,6 @@ src_unpack() {
use arm && do_arch_arm_patches
use hppa && do_arch_hppa_patches
use ia64 && do_arch_ia64_patches
- if [ "${PROFILE_ARCH}" = "sparc64-multilib" -a -z "${ABI}" ]; then
- export ORIG_CC="$(tc-getCC)"
- for ABI in ${MULTILIB_ABIS}; do
- export ABI
- einfo "Compiling ${ABI} glibc"
- src_compile && mv ${WORKDIR}/build ${WORKDIR}/build.${ABI}
- done
- unset ABI
- return 0
- fi
-
use mips && do_arch_mips_patches
use ppc && do_arch_ppc_patches
use ppc64 && do_arch_ppc64_patches
@@ -684,6 +692,17 @@ glibc_do_configure() {
src_compile() {
+ if [ -n "${MULTILIB_ABIS}" -a -z "${OABI}" ] && ! hasq multilib-pkg ${FEATURES}; then
+ OABI="${ABI}"
+ for ABI in ${MULTILIB_ABIS}; do
+ export ABI
+ einfo "Compiling ${ABI} glibc"
+ src_compile && mv ${WORKDIR}/build ${WORKDIR}/build.${ABI}
+ done
+ ABI="${OABI}"
+ return 0
+ fi
+
# do the linuxthreads build unless we're using nptlonly
if use !nptlonly ; then
glibc_do_configure linuxthreads
@@ -700,13 +719,25 @@ src_compile() {
}
src_install() {
- if [ "${PROFILE_ARCH}" = "sparc64-multilib" -a -z "${ABI}" ]; then
+ if [ -n "${MULTILIB_ABIS}" -a -z "${OABI}" ] && ! hasq multilib-pkg ${FEATURES}; then
+ OABI="${ABI}"
for ABI in ${MULTILIB_ABIS}; do
export ABI
mv ${WORKDIR}/build.${ABI} ${WORKDIR}/build
src_install && mv ${WORKDIR}/build ${WORKDIR}/build.${ABI}
+
+ # Handle stupid lib32 BS
+ if use amd64 && [ "${ABI}" = "x86" -a "$(get_abi_LIBDIR x86)" != "lib" ]; then
+ mv ${D}/lib ${D}/$(get_abi_LIBDIR x86)
+ mv ${D}/usr/lib ${D}/usr/$(get_abi_LIBDIR x86)
+ mkdir ${D}/lib
+ dosym ../$(get_abi_LIBDIR x86)/ld-linux.so.1 /lib/ld-linux.so.1
+ dosym ../$(get_abi_LIBDIR x86)/ld-linux.so.2 /lib/ld-linux.so.2
+ dosed "s:/lib/:/$(get_abi_LIBDIR x86)/:g" /usr/$(get_abi_LIBDIR x86)/libc.so /usr/$(get_abi_LIBDIR x86)/libpthread.so
+ fi
+
done
- unset ABI
+ ABI="${OABI}"
return 0
fi
@@ -945,7 +976,7 @@ pkg_preinst() {
# decide to be multilib compatible and FHS compliant. note that this
# chunk of FHS compliance only applies to 64bit archs where 32bit
# compatibility is a major concern (not IA64, for example).
- use amd64 && [ "$(get_libdir)" == "lib64" ] && fix_lib64_symlinks
+ use amd64 && [ "$(get_libdir)" == "lib64" -a -z "${MULTILIB_ABIS}" ] && fix_lib64_symlinks
# it appears that /lib/tls is sometimes not removed. See bug
# 69258 for more info.