diff options
author | 2005-01-11 02:42:26 +0000 | |
---|---|---|
committer | 2005-01-11 02:42:26 +0000 | |
commit | cee4f7a990c23fa891ed92162cfc7b8239f1fbbe (patch) | |
tree | 1e997cf89834e3ea75c1e81157404fcd6abf2b69 | |
parent | The 200411* glibc ebuild will need some more work before it plays nicely with... (diff) | |
download | historical-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/ChangeLog | 7 | ||||
-rw-r--r-- | sys-libs/glibc/Manifest | 58 | ||||
-rw-r--r-- | sys-libs/glibc/glibc-2.3.4.20040808-r1.ebuild | 60 | ||||
-rw-r--r-- | sys-libs/glibc/glibc-2.3.4.20041102.ebuild | 73 |
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. |