summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexis Ballier <aballier@gentoo.org>2013-07-24 01:00:52 +0000
committerAlexis Ballier <aballier@gentoo.org>2013-07-24 01:00:52 +0000
commita1303832440f498c70422cb14c2aa623ede6e1b9 (patch)
tree634263419c8d465e3d64d3cfc830d8bf3d7db32c /sys-libs/libcxx
parentfixing ovs usedep and bug 475540 (diff)
downloadhistorical-a1303832440f498c70422cb14c2aa623ede6e1b9.tar.gz
historical-a1303832440f498c70422cb14c2aa623ede6e1b9.tar.bz2
historical-a1303832440f498c70422cb14c2aa623ede6e1b9.zip
provide a shared ldscript for linking in libcxxrt too as its abi is more or less exposed by libcxx headers, bug #477712
Package-Manager: portage-2.2.0_alpha188/cvs/Linux x86_64 Manifest-Sign-Key: 0x160F534A
Diffstat (limited to 'sys-libs/libcxx')
-rw-r--r--sys-libs/libcxx/ChangeLog6
-rw-r--r--sys-libs/libcxx/Manifest10
-rw-r--r--sys-libs/libcxx/libcxx-9999.ebuild43
3 files changed, 38 insertions, 21 deletions
diff --git a/sys-libs/libcxx/ChangeLog b/sys-libs/libcxx/ChangeLog
index 43e3bce8114d..c87f3d9ac382 100644
--- a/sys-libs/libcxx/ChangeLog
+++ b/sys-libs/libcxx/ChangeLog
@@ -1,6 +1,10 @@
# ChangeLog for sys-libs/libcxx
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-libs/libcxx/ChangeLog,v 1.24 2013/07/03 21:52:45 aballier Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/libcxx/ChangeLog,v 1.25 2013/07/24 01:00:45 aballier Exp $
+
+ 24 Jul 2013; Alexis Ballier <aballier@gentoo.org> libcxx-9999.ebuild:
+ provide a shared ldscript for linking in libcxxrt too as its abi is more or
+ less exposed by libcxx headers, bug #477712
03 Jul 2013; Alexis Ballier <aballier@gentoo.org> libcxx-9999.ebuild:
Go multilib, based on the work of Yuta SATOH in bug #475294
diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest
index 80c094560a53..9f0cf89b932d 100644
--- a/sys-libs/libcxx/Manifest
+++ b/sys-libs/libcxx/Manifest
@@ -10,13 +10,13 @@ DIST libcxx-0.0_p20130531.tar.xz 804716 SHA256 41c3d40d37378f4d3f065f884df6b3e0c
EBUILD libcxx-0.0_p20130218.ebuild 1762 SHA256 73ec38dcc52bb2e35172dcb99ae667a976ade6a672b6c6e0e3e503460866b3ae SHA512 57abd59e833f5594b19505363e492efaef70872d0e8e31d8fca1667380f21fe67d266b6b7dab1a6b3aeb906039d93e51081da85b0c43e1f4e1c4f65b3d4d75f7 WHIRLPOOL 94de3f70ba4083e95b85a81d3518c5d0af5655547f389cc87ed917e424b22e671850191efaf3bafc997b8d24c569ec6b39b6d72886c9e75c570d86e451264de8
EBUILD libcxx-0.0_p20130531-r1.ebuild 4125 SHA256 bf5a4d84369351c86aaf51d9ba4f530eac8427106db936456fbb0517c9ae7372 SHA512 f6e7c455280a3bf30fc9378299b10dbcde89f7d85850c7644632be9052d3e3bfac167f47a2a1c67e647783152b3d68c3d30f8aface2a1eaa5e330f17d9a56a7f WHIRLPOOL bda77f7a7365f887257d3f6e09f537b469baddbdd77a03763d49da750f0ec43450d2bc4aff4f39b80188a26ac587710db604c346d78967ca591674714598d7e5
EBUILD libcxx-0.0_p20130531.ebuild 2872 SHA256 46ec7affff2212776a32ee9c4879016f8b07cf942f55f45e374c5594ae48d5e4 SHA512 63808230eff4b71bec89e003c89987da83429bdaf5975b257860ed0a48dc0a6b7c9de409e5783a0c87d2b67b9e112cc9d90e74cba46629fbb35960b5e98234db WHIRLPOOL b9497c69346d2e3f4220bdb545373f2a9012bc6e7da8c23a97e4ac8fb54d482c0e0d7d898c53e0e10fdb907d7a44552d1f5fd166c02c7111044ceced747edad2
-EBUILD libcxx-9999.ebuild 3901 SHA256 69b9d1710c9311aee618f73e3f4c2ce84f3111a4272e5ebd4c55ea785142dea0 SHA512 59f86b471a25882c76951fcadf4c338ec3e330b2bdaec87886e6407929cb27b5e2d47fef15aaed6875226470d5fed5b4981c7c5d7ad5a278b1e83d13d89fcebb WHIRLPOOL 68b43d4b7b01e931f211d5f053670f2c8f2b5af4c76a47d3ee1cfd689b75df5c91767c60433f2cecba4d44b407cbad959c185441b011d8357b719e63a83be908
-MISC ChangeLog 3981 SHA256 751d34b130aa65d168adf4967aa5b49eacb343f06b70ee00e843b0d6f37413c5 SHA512 0f52be2b095125950c354ce107ff1b6b88ed257f0f9292b28fb379086cd31c68dfae9e7ef40fa6e0a5f6bd9254800c9051b2283aa5720d4775b0c79dba36afd8 WHIRLPOOL 27e01ab216f705a2ab091b07568d10d9b8909fe1ba0bce6e9dadcdbf5aeac385ffb00530fc4fe12af7e291e11cd312ba5d074d389ca3cde906dc55b48ba8f3d4
+EBUILD libcxx-9999.ebuild 4213 SHA256 7e1dd566b9e5da7bdc939a09e019fd8fd290ffd1aa00bd2d9818c227a2607ae7 SHA512 3a1c058b25212e3957e1c533fd5835ebbf6f4816db5c2c13b43ab491a14666169abc38164aa3dc6fcb47726b6325b38c2c32c4162d9f799c73072845cbbd6db5 WHIRLPOOL d498bed6787689a86dc40d39e5a96e746cc7b0df777881fb07ab66557e3582b03b83e39961a4fe086241df36ac8323c4345858b74959ca6ce802275df1740bd4
+MISC ChangeLog 4178 SHA256 685c640a95428b7f63be33be5151150debb073904fdab1433bf720a1c9ef0527 SHA512 89710dbf90c882246aafdb1e9a24f416f5b35de1cfe17b1ff3e530d7ef5ac13ca1f5a23faa562a186073b113246dd5e38d1abf57f421e7822fcd7841b18e1bb3 WHIRLPOOL eeb2b58f29965cd5b1cd632de8dc2997b6e012e672762ed577d0446812dda311da0e4aca46139b796024e0556a2dc6916b98cea2a82252d9870295e120758ad6
MISC metadata.xml 558 SHA256 c9fe7077a8c7f767d7cdbe154d85dd344fb86ea246b16613242c70a40f3e1ef2 SHA512 3f324c4959a7c9f2613b29928957fd010b35c6e9c1601f0296e7e8b7c8d59a3c27c5c04fef87ac825f2f7bb07553bc617c4405e1e22847dc8db3e7a1ebb21f50 WHIRLPOOL 3ade5e3852afcd533c89ce0aeead55101f23d1b31825718bfccd60fac485961df617c93962be4c60333a21335dcd6bb5630c8002fe06f456c4e177c14d434455
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.20 (GNU/Linux)
-iEYEAREIAAYFAlHUnS4ACgkQvFcC4BYPU0pWFwCfd1opYJsStv2boOD0jRkj2HiN
-xkEAn0LREqI6PbDjYkEFrvnKL5hyWDZx
-=13nj
+iEYEAREIAAYFAlHvJz4ACgkQvFcC4BYPU0rwnQCguq67+UgZ2GJzedO3Ivea7wjh
+rC4AoI7ht7JifB4kVQrMtGvspCDwakA9
+=lH5X
-----END PGP SIGNATURE-----
diff --git a/sys-libs/libcxx/libcxx-9999.ebuild b/sys-libs/libcxx/libcxx-9999.ebuild
index abffa7b00431..5471dcb60e73 100644
--- a/sys-libs/libcxx/libcxx-9999.ebuild
+++ b/sys-libs/libcxx/libcxx-9999.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-libs/libcxx/libcxx-9999.ebuild,v 1.16 2013/07/03 21:52:45 aballier Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/libcxx/libcxx-9999.ebuild,v 1.17 2013/07/24 01:00:45 aballier Exp $
EAPI=5
@@ -76,35 +76,47 @@ multilib_src_test() {
./testit || die
}
+# Usage: deps
+gen_ldscript() {
+ local output_format
+ output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p')
+ [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )"
+
+ cat <<-END_LDSCRIPT
+/* GNU ld script
+ Include missing dependencies
+*/
+${output_format}
+GROUP ( $@ )
+END_LDSCRIPT
+}
+
gen_static_ldscript() {
if use libcxxrt ; then
# Move it first.
- mv "${D}/${EPREFIX}/usr/$(get_libdir)/libc++.a" "${D}/${EPREFIX}/usr/$(get_libdir)/libc++_static.a" || die
+ mv "${ED}/usr/$(get_libdir)/libc++.a" "${ED}/usr/$(get_libdir)/libc++_static.a" || die
# Generate libc++.a ldscript for inclusion of its dependencies so that
# clang++ -stdlib=libc++ -static works out of the box.
- # Taken from toolchain-funcs.eclass:
- local output_format
- output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p')
- [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )"
-
local deps="${EPREFIX}/usr/$(get_libdir)/libc++_static.a ${EPREFIX}/usr/$(get_libdir)/libcxxrt.a"
# On Linux/glibc it does not link without libpthread or libdl. It is
# fine on FreeBSD.
use elibc_glibc && deps="${deps} ${EPREFIX}/usr/$(get_libdir)/libpthread.a ${EPREFIX}/usr/$(get_libdir)/libdl.a"
- cat > "${D}/${EPREFIX}/usr/$(get_libdir)/libc++.a" <<-END_LDSCRIPT
-/* GNU ld script
- Include libc++.a dependencies for 'clang++ -stdlib=libc++ -static' to work
- out of the box.
- */
-${output_format}
-GROUP ( ${deps} )
-END_LDSCRIPT
+ gen_ldscript "${deps}" > "${ED}/usr/$(get_libdir)/libc++.a"
fi
# TODO: Generate a libc++.a ldscript when building against libsupc++
}
+gen_shared_ldscript() {
+ if use libcxxrt ; then
+ mv "${ED}/usr/$(get_libdir)/libc++.so" "${ED}/usr/$(get_libdir)/libc++_shared.so" || die
+ local deps="${EPREFIX}/usr/$(get_libdir)/libc++_shared.so ${EPREFIX}/usr/$(get_libdir)/libcxxrt.so"
+ gen_ldscript "${deps}" > "${ED}/usr/$(get_libdir)/libc++.so"
+ fi
+ # TODO: Generate the linked script for other confiurations too.
+}
+
multilib_src_install() {
cd "${BUILD_DIR}/lib"
if use static-libs ; then
@@ -112,6 +124,7 @@ multilib_src_install() {
gen_static_ldscript
fi
dolib.so libc++.so*
+ gen_shared_ldscript
}
multilib_src_install_all() {