diff options
author | Alexis Ballier <aballier@gentoo.org> | 2013-07-24 01:00:52 +0000 |
---|---|---|
committer | Alexis Ballier <aballier@gentoo.org> | 2013-07-24 01:00:52 +0000 |
commit | a1303832440f498c70422cb14c2aa623ede6e1b9 (patch) | |
tree | 634263419c8d465e3d64d3cfc830d8bf3d7db32c /sys-libs/libcxx | |
parent | fixing ovs usedep and bug 475540 (diff) | |
download | historical-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/ChangeLog | 6 | ||||
-rw-r--r-- | sys-libs/libcxx/Manifest | 10 | ||||
-rw-r--r-- | sys-libs/libcxx/libcxx-9999.ebuild | 43 |
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() { |