From 4e75572b4346ff8184e46d4fbef1ea587b73b17f Mon Sep 17 00:00:00 2001 From: Fabian Groffen Date: Sat, 3 Sep 2011 20:33:22 +0000 Subject: [PATCH] Bump to version from Developer Tools 4.1, drop 4.0 version as it never compiled. Slot 4.x series as they are significantly different from 3.x series. Package-Manager: portage-2.2.01.19120-prefix/cvs/Darwin i386 --- sys-devel/binutils-apple/ChangeLog | 11 +- sys-devel/binutils-apple/Manifest | 22 +- ...e-4.0.ebuild => binutils-apple-4.1.ebuild} | 67 ++++-- .../binutils-apple/files/ld64-123.2-Makefile | 24 +- .../files/ld64-123.2.1-lto.patch | 218 ++++++++++++++++++ .../files/libunwind-30-Makefile | 23 ++ 6 files changed, 329 insertions(+), 36 deletions(-) rename sys-devel/binutils-apple/{binutils-apple-4.0.ebuild => binutils-apple-4.1.ebuild} (84%) create mode 100644 sys-devel/binutils-apple/files/ld64-123.2.1-lto.patch create mode 100644 sys-devel/binutils-apple/files/libunwind-30-Makefile diff --git a/sys-devel/binutils-apple/ChangeLog b/sys-devel/binutils-apple/ChangeLog index adecc7c6a042..4e11a9b8bbc6 100644 --- a/sys-devel/binutils-apple/ChangeLog +++ b/sys-devel/binutils-apple/ChangeLog @@ -1,6 +1,15 @@ # ChangeLog for sys-devel/binutils-apple # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-devel/binutils-apple/ChangeLog,v 1.17 2011/05/11 20:06:45 grobian Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-devel/binutils-apple/ChangeLog,v 1.18 2011/09/03 20:33:22 grobian Exp $ + +*binutils-apple-4.1 (03 Sep 2011) + + 03 Sep 2011; Fabian Groffen -binutils-apple-4.0.ebuild, + +binutils-apple-4.1.ebuild, +files/libunwind-30-Makefile, + +files/ld64-123.2.1-lto.patch, files/ld64-123.2-Makefile: + Bump to version from Developer Tools 4.1, drop 4.0 version as it never + compiled. Slot 4.x series as they are significantly different from 3.x + series. *binutils-apple-4.0 (11 May 2011) *binutils-apple-3.2.6 (11 May 2011) diff --git a/sys-devel/binutils-apple/Manifest b/sys-devel/binutils-apple/Manifest index 360cf1ba32a4..68559b274ee9 100644 --- a/sys-devel/binutils-apple/Manifest +++ b/sys-devel/binutils-apple/Manifest @@ -20,11 +20,13 @@ AUX binutils-apple-3.2.3-ranlib.patch 2866 RMD160 3e9c64eea5676b872cbf60268ecb47 AUX binutils-apple-4.0-as-dir.patch 1458 RMD160 b409d3cc62cdeb5a66af2c0939423066c288c07d SHA1 abcfbee6b4470786aa4e3aa30b951c3277a52c4b SHA256 b33439299340b311ef606e11427a7ded25b75e1d35791bb50d7815f4f87b6abc AUX binutils-apple-4.0-as.patch 2738 RMD160 f7601fc41f373f8e7ef122d059dd04ca42d400af SHA1 fb5f02cf3ead339c0e1723f89e996615f3c15d2f SHA256 b068f2a8bff9fb8f7dd92eb64c9587c9517ef51e682211f81b57e69b7e25fdef AUX binutils-apple-4.0-no-oss-dir.patch 604 RMD160 844f112ff9dfcd4618a8b1e8a65318397ea16c2c SHA1 beadc9fead70c8befe66eef7d024913d00b79e3f SHA256 fda851a89d86ecc4c90850b4d744daae478e2e55f83522d51a50c2a28f09223f -AUX ld64-123.2-Makefile 764 RMD160 df4c3377960ab1657ee818c705b01b313b73c11d SHA1 a293520a550b60d26d3cb463dfc3050708b2d042 SHA256 273ec8f9e13ffed18c72ff248230ffa43cbaab97bf0c930fd08da0865d38d808 +AUX ld64-123.2-Makefile 1410 RMD160 2984ea9528d35cf77090237d95568873b299405b SHA1 821d1c513850ffe7db562a4de4927e80f8a6ebb1 SHA256 49a46695577fbf969bd84c674efb63b6de5362aff50689b642d57cda42ddbd9c AUX ld64-123.2-darwin8-no-mlong-branch-warning.patch 790 RMD160 00f8bdb53843777e615d9d7947378d914c7cf077 SHA1 26d3f38a847b4a1d21397d5599ece60d25d30f83 SHA256 d3d5750998000a5fe296efff3298c0096ebbd9118c637a67b070f93acadea4ef AUX ld64-123.2-debug-backtrace.patch 338 RMD160 1b9b8739da7dc70544f413e30c7fc88103af4ecc SHA1 ebfa3b86fe2a9931f5a814c00f697bf6936f76b5 SHA256 26b16aa555bb15dcb6d799785aed0d240e50cbe0a77968a2a4fe92623bd105ab +AUX ld64-123.2.1-lto.patch 6387 RMD160 e4ae378f7328875898f03d8b5db59e6f15c2a9ce SHA1 70189a53ddc53c96cdc2f9090f67ad1cb1e9c20e SHA256 5a8c0d0673a48db3cbb08c8234763bdb2149294cebc7707bf394461a73d9ae65 AUX ld64-95.2.12-Makefile 728 RMD160 56104bcb07a3845b11cf9034f1051c0ceebf681d SHA1 7549a604ea69ad1ad93b92511a70634033cdbab8 SHA256 3e1181c3dc7aaa8cb5d02cc00fc0f760d052bb2714883833a5aaa2fa3105f88d AUX ld64-95.2.12-darwin8-no-mlong-branch-warning.patch 620 RMD160 cf17f65dda73393a921896b8844493b237dc3307 SHA1 b834e98d61a9ecd70aa99b89b5575a8e32b5b2f7 SHA256 ca0455c78e77f84e7d15e6edf19085b0729a12baf29a89455af84e947f201b1d +AUX libunwind-30-Makefile 580 RMD160 2f4d35afd951e6f4543c16ac23eb9a669abfb906 SHA1 11e1d46fb95f87819b0877ceff0ee743fbc8eb82 SHA256 eb080881fc223a326fd08ac65da05c4d939a553a95ca978794caeeafa7780a0e DIST binutils-apple-3.2-unwind-patches-2.tar.xz 23888 RMD160 2d677f7a3f74aaec20f1e999283dd023d1873b54 SHA1 e1b74657fa3f3a0cf479bf7e03d8aceb2295a985 SHA256 2859c3545c467f516bac0704ff97a8d18766d91faa28dfad1dcc07bfbd03919d DIST binutils-apple-3.2-unwind-patches-3.tar.xz 23908 RMD160 087a2fdb12b6e4bc23379ebee6f5c6ddc1aabc04 SHA1 9fb923c01056e3ce48b8a85799555335993871b3 SHA256 b3082b464cf8fdc4b1f8fd2a73b5b7580c524cdde09869b82b770e62168b6939 DIST binutils-apple-3.2-unwind-patches-5.tar.xz 26924 RMD160 462614cf36d5fd67630126e28592d106367cca72 SHA1 30d4155ee643a3dbd0d4bb5f79a6de307d4f1a29 SHA256 65a3b979df5c2033ac34e830d8a77b92b436b6d5707483c619c90a1c2ea46428 @@ -35,14 +37,16 @@ DIST cctools-750.tar.gz 1947953 RMD160 4b4074a93d071fc56f5b9ebd972c6a175bb9904e DIST cctools-773.tar.gz 1962238 RMD160 3ea1b348c878efebc1d1ba9d50a89840c272aafd SHA1 762318baef6f4efca75a066d8265e0cddee267e1 SHA256 293729884921bc9c05fcbe8ef9c2b1166a7ff92cfd5bdb30349b483e78464f98 DIST cctools-782.tar.gz 1981521 RMD160 5b50b75ff7825a97fa4f095d135a6372ce787c10 SHA1 1ed1e38564fc00dc2825382ca5c856403b5eeba3 SHA256 fdf0f60adfab24dd87af9e91c364743e006a241d297ee3cbba7b628fda6d7a9c DIST cctools-795.tar.gz 1993795 RMD160 0932fa5a96b81e50528211abfec01a9b66790485 SHA1 e4b67b6dac2173a519a57c92ef7be5bf3013417f SHA256 7fab7044b648e92a9fefd493a1bb6daa4246f24c5838d8b5c913a446e6bbd2ef -DIST cctools-800.tar.gz 2000103 RMD160 19c3213c21cd9f5d69be906ebcb53b89e358951b SHA1 0d89f3570849dbb531aaadcc04db18b726662178 SHA256 6984988897036950ec2080022492d0f6d39d3f3ffabcabeda04045ac3a01a5c8 -DIST ld64-123.2.tar.gz 452410 RMD160 551dcd0db5d403eb88033b53345be21c71445a6b SHA1 dc5876b35fe9b76518b58472562ccbec45f6f1c0 SHA256 455a19761c3f7a60d57191a010e314d933a53af8fdc7f5470e10471467e6b352 +DIST cctools-806.tar.gz 2004935 RMD160 91c0a3f192f1eed60b64ef5a0a06918d0ce0b0c9 SHA1 e4f9a7ee0eef930e81d50b6b7300b8ddc1c7b341 SHA256 6116c06920112c634f6df2fa8b2f171ee3b90ff2176137da5856336695a6a676 +DIST dyld-195.5.tar.gz 411615 RMD160 7f36612730f7fde53359314b899efe493378a086 SHA1 97b68163281a3ec82ab2e2a777bea08511c95976 SHA256 2cf0484c87cf79b606b351a7055a247dae84093ae92c747a74e0cde2c8c8f83c +DIST ld64-123.2.1.tar.gz 452872 RMD160 8ebca37c8e6b5fa02c43afe419bef12ca8330898 SHA1 0664f9dc2f7e3532444ccaeee118728b2be7fbbf SHA256 8d9d92288375f81ca2c91b74ed1d4206a5bbcbd463ccec1e85decdcdc2f0ca1a DIST ld64-85.2.1.tar.gz 598524 RMD160 42c80bd4ad6e9f96a757245e6a2b95084c009ff1 SHA1 31a7debf4c407c32b8bd1a51a4b4a7ae68dc8b85 SHA256 4bcbcbdfd62efdc46c51700b8f5dae2cbd1638e9e50f649d5c7f242d32fca804 DIST ld64-85.2.2.tar.gz 298144 RMD160 f7f897666a072e07f1888beca5b22fdd75fa1b61 SHA1 33c655bd7cbfecd70807dbde428615fb0947f31b SHA256 01ab6f6f1ce91203722c5cd56666ffa81da0eafe8beee1490a383811d56d86aa DIST ld64-95.2.12.tar.gz 401104 RMD160 35de89aa1d31d100bd952829df4316e640c03cb4 SHA1 eea384a5ed3b5a994cc24e076c74ad20e6f8b68a SHA256 5a5ea02bd81d74f4f773403bebe34950acf4830fb7fee0d466305276f869097c DIST ld64-97.14.tar.gz 421074 RMD160 5116cc587a7761d06e1da93019362705510c3d7b SHA1 a21da97f574a121ef29b8a1bfc7a7c74692a0152 SHA256 bfc46df452fc60d9befcefabac8db444d963407af4e3a060a01e394d5ee8d2b4 DIST ld64-97.17.tar.gz 421947 RMD160 d52df7d7f741c8bedd29cbac73dbb9db992b4795 SHA1 7c1d816c2fec02e558f4a528d16d8161f0e379b5 SHA256 02bd46af0809eaa415d096d7d41c3e8e7d80f7d8d181840866fb87f036b4e089 DIST ld64-97.2.tar.gz 415630 RMD160 e5557db2809627a9a0771c949b42e15c23eb65ba SHA1 3db816678f96db0dc1936af0ceb5c58b049648d6 SHA256 3a94376586656192e16a09c7b82e2a70f0a441fc8cb2ccf8a835a050e82866da +DIST libunwind-30.tar.gz 82811 RMD160 3e288379a63a78b566df7d185b0677f214b37e56 SHA1 e779fbe8a58e6cfb76798c8e9b2373a9ddc9b2eb SHA256 6ac97d18cc2b05e6de1269bf5af03b81948bd2200dae827527f3dc618b82bd41 DIST libunwind-llvm-115426.tar.bz2 74622 RMD160 fa69073d23e71c1a5977b3cf4b5b086190079716 SHA1 4a0b371da27361f62380250d2c4a176d939554c4 SHA256 e77a42c04eda5e3db61fc8b5bc98a55c6a015a9b02a74aab0f35d551fc38272f EBUILD binutils-apple-3.1.1.ebuild 5157 RMD160 692fc010932d7ddbf51b3fd63f1f79742cdfcff3 SHA1 5c82eb1ce460f94cc4328327ad5c141463a3953a SHA256 c8f9904789faea57409863af02683e6eae36377925fcf4e7a9dd44dab9c7e6ac EBUILD binutils-apple-3.1.2.ebuild 5288 RMD160 bbe9a2371e5e1e66b0c9fa2f4ca600bb2474d234 SHA1 5d21c2ac4c555ec8d997efe9d5ae0233b2fa17cb SHA256 0818f10ee517368085e4bacfd53f25ab81115f05b480fb716c6b70b7ebc59bdd @@ -52,13 +56,13 @@ EBUILD binutils-apple-3.2.3-r1.ebuild 6521 RMD160 6bd22707129894fc03f8949c79c1b0 EBUILD binutils-apple-3.2.3-r2.ebuild 6669 RMD160 8a32c0be4ec8a6e8c89f5c2155fb172ebc4565e4 SHA1 9c495edc134edf36478897a7950510e7b57f92fe SHA256 17b6d484e33a20939d00a6bf496fe6aefa2920d21c4fbb6bbf359e853f754f7f EBUILD binutils-apple-3.2.6.ebuild 6670 RMD160 1a7df67ed733c1a22aca1414e7a2b3f1c1597d9c SHA1 6e5b37a6c5c63c87999f5dd67526cfd8936f44e8 SHA256 241af9c47b9165234672ee61466d4ba21af689cec6ab5e7f606d1f60355b30b8 EBUILD binutils-apple-3.2.ebuild 5913 RMD160 47df8d8d2e207eb95e10359f35c2c5fd152f8938 SHA1 26b56881f56b63bc3f9b25aeae6c814f969f5dfd SHA256 41fb357219cdbb20f16200d05016c1866046f9a351994b738d6e0b7176f3488e -EBUILD binutils-apple-4.0.ebuild 6860 RMD160 69843ca1739f9f7fabf4c386d8f2de4d0c4affcd SHA1 82fcf77c4ec1653081a3cb3dbf36092ef50ef02b SHA256 a22a8295db83b23cc664f069c610eb494de97a293eff04d682debc29fa66e31a -MISC ChangeLog 7407 RMD160 4316ba62304bae57227d99c806aff12865b8e034 SHA1 952cd7350339a50027a1d8be1469fdd4ee07e87c SHA256 1fa8ceb174b06467f599e520fff5eaa9c3a946ea5b039c94b28fdf18d9fe8c14 +EBUILD binutils-apple-4.1.ebuild 7521 RMD160 b54f755c53a4c3adabdd9eefdfcd7a099fb8284d SHA1 6065bf2676213eb3d46e712959940495b207478b SHA256 ea69e675324ee19ece9c0ccd052afb828a253bbf6ffb9627a1f62d72b28f999d +MISC ChangeLog 7798 RMD160 220791791de9bf5bee32a23026b2d568ecbbc952 SHA1 57c3079370d1f5b4d0ac8d352fb476bc9e4086a1 SHA256 5e05a994e72dc1683fdc13088d4c003df1e749646a25590a72e800eb1e690036 MISC metadata.xml 250 RMD160 1d572689c02f6408ad8dfcfc955f8dfb7ec3a201 SHA1 dbd7759df5303c9dd998023753a3361206bad1e2 SHA256 f783a2767bd8eb2edebc0b1b1391fdcb461dcdb7a7c99dc1b82504c466688e79 -----BEGIN PGP SIGNATURE----- -Version: GnuPG v2.0.17 (Darwin) +Version: GnuPG v2.0.18 (Darwin) -iEYEARECAAYFAk3K7FAACgkQX3X2B8XHTonq3QCgiZLuDsQnsPYlxNIWtQ8No3tS -5gQAnRNWg1yZFwcGg2+5a/Hk+QiYXGDo -=5KSH +iEYEARECAAYFAk5ijxcACgkQX3X2B8XHTol36QCggWaM/9xyBqodx/60Fn/22zmB +dWEAoJTfpme8egGmeo/ypFI0ZxhYUA1D +=I1KA -----END PGP SIGNATURE----- diff --git a/sys-devel/binutils-apple/binutils-apple-4.0.ebuild b/sys-devel/binutils-apple/binutils-apple-4.1.ebuild similarity index 84% rename from sys-devel/binutils-apple/binutils-apple-4.0.ebuild rename to sys-devel/binutils-apple/binutils-apple-4.1.ebuild index 51cbcb3ac987..69271ce7d513 100644 --- a/sys-devel/binutils-apple/binutils-apple-4.0.ebuild +++ b/sys-devel/binutils-apple/binutils-apple-4.1.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2011 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-devel/binutils-apple/binutils-apple-4.0.ebuild,v 1.1 2011/05/11 20:06:45 grobian Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-devel/binutils-apple/binutils-apple-4.1.ebuild,v 1.1 2011/09/03 20:33:22 grobian Exp $ EAPI="3" @@ -8,8 +8,10 @@ inherit eutils flag-o-matic toolchain-funcs RESTRICT="test" # the test suite will test what's installed. -LD64=ld64-123.2 -CCTOOLS=cctools-800 +LD64=ld64-123.2.1 +CCTOOLS=cctools-806 +LIBUNWIND=libunwind-30 +DYLD=dyld-195.5 # http://lists.apple.com/archives/Darwin-dev/2009/Sep/msg00025.html UNWIND=binutils-apple-3.2-unwind-patches-5 @@ -17,14 +19,15 @@ DESCRIPTION="Darwin assembler as(1) and static linker ld(1), Xcode Tools ${PV}" HOMEPAGE="http://www.opensource.apple.com/darwinsource/" SRC_URI="http://www.opensource.apple.com/tarballs/ld64/${LD64}.tar.gz http://www.opensource.apple.com/tarballs/cctools/${CCTOOLS}.tar.gz + http://www.opensource.apple.com/tarballs/libunwind/${LIBUNWIND}.tar.gz + http://www.opensource.apple.com/tarballs/dyld/${DYLD}.tar.gz http://www.gentoo.org/~grobian/distfiles/${UNWIND}.tar.xz http://www.gentoo.org/~grobian/distfiles/libunwind-llvm-115426.tar.bz2" LICENSE="APSL-2" -#uncompilable #KEYWORDS="~ppc-macos ~x64-macos ~x86-macos" +KEYWORDS="" IUSE="lto test" -SLOT="0" RDEPEND="sys-devel/binutils-config lto? ( sys-devel/llvm ) @@ -41,9 +44,9 @@ fi is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; } if is_cross ; then - SLOT="${CTARGET}" + SLOT="${CTARGET}-4" else - SLOT="0" + SLOT="4" fi LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV} @@ -58,17 +61,12 @@ fi S=${WORKDIR} src_prepare() { - cd "${S}"/${CCTOOLS} - epatch "${FILESDIR}"/${PN}-4.0-as.patch - epatch "${FILESDIR}"/${PN}-4.0-as-dir.patch - epatch "${FILESDIR}"/${PN}-3.2.3-ranlib.patch - epatch "${FILESDIR}"/${PN}-3.1.1-libtool-ranlib.patch - epatch "${FILESDIR}"/${PN}-3.1.1-nmedit.patch - epatch "${FILESDIR}"/${PN}-3.1.1-no-headers.patch - epatch "${FILESDIR}"/${PN}-4.0-no-oss-dir.patch + cd "${S}"/${LIBUNWIND}/src + cp "${FILESDIR}"/${LIBUNWIND}-Makefile Makefile cd "${S}"/${LD64}/src - cp "${FILESDIR}"/${LD64}-Makefile Makefile + cp "${FILESDIR}"/${LD64%.1}-Makefile Makefile + epatch "${FILESDIR}"/${LD64}-lto.patch ln -s ../../${CCTOOLS}/include cp other/prune_trie.h include/mach-o/ || die @@ -76,22 +74,32 @@ src_prepare() { mkdir -p include/llvm-c || die cp "${WORKDIR}"/ld64-unwind/ld64-97.14-llvm-lto.h include/llvm-c/lto.h || die # make libunwind sources known - pushd "${WORKDIR}"/libunwind/include > /dev/null - ln -s ../src libunwind || die - popd > /dev/null + #pushd "${WORKDIR}"/libunwind/include > /dev/null + ln -s ../../${LIBUNWIND}/src libunwind || die + cp ../../${LIBUNWIND}/include/*.h include/ || die + #popd > /dev/null echo '' > configure.h echo '' > linker_opts local VER_STR="\"@(#)PROGRAM:ld PROJECT:${LD64} (Gentoo ${PN}-${PVR})\\n\"" echo "char ldVersionString[] = ${VER_STR};" > version.cpp - epatch "${FILESDIR}"/${LD64}-debug-backtrace.patch + epatch "${FILESDIR}"/${LD64%.1}-debug-backtrace.patch [[ ${CHOST} == powerpc*-darwin* ]] && \ - epatch "${FILESDIR}"/${LD64}-darwin8-no-mlong-branch-warning.patch + epatch "${FILESDIR}"/${LD64%.1}-darwin8-no-mlong-branch-warning.patch if use !lto ; then sed -i -e '/#define LTO_SUPPORT 1/d' other/ObjectDump.cpp || die fi + cd "${S}"/${CCTOOLS} + epatch "${FILESDIR}"/${PN}-4.0-as.patch + epatch "${FILESDIR}"/${PN}-4.0-as-dir.patch + epatch "${FILESDIR}"/${PN}-3.2.3-ranlib.patch + epatch "${FILESDIR}"/${PN}-3.1.1-libtool-ranlib.patch + epatch "${FILESDIR}"/${PN}-3.1.1-nmedit.patch + epatch "${FILESDIR}"/${PN}-3.1.1-no-headers.patch + epatch "${FILESDIR}"/${PN}-4.0-no-oss-dir.patch + # clean up test suite cd "${S}"/${LD64} # epatch "${FILESDIR}"/${PN}-3.1.1-testsuite.patch @@ -140,21 +148,31 @@ src_configure() { append-flags -DLTO_SUPPORT append-ldflags -L"${EPREFIX}"/usr/$(get_libdir)/llvm append-libs LTO + LTO=1 else append-flags -ULTO_SUPPORT + LTO=0 fi append-flags -DNDEBUG append-flags -I${WORKDIR}/libunwind/include } +compile_libunwind() { + einfo "building ${LIBUNWIND}" + cd "${S}"/${LIBUNWIND}/src + emake DYLDINCS=-I../../${DYLD}/include || die +} + compile_ld64() { + einfo "building ${LD64}" cd "${S}"/${LD64}/src # remove antiquated copy that's available on any OSX system and # breaks ld64 compilation mv include/mach-o/dyld.h{,.disable} emake \ + LTO=${LTO} \ CFLAGS="${CFLAGS}" \ - CXXFLAGS="${CXXFLAGS}" \ + CXXFLAGS="${CXXFLAGS} -I../../${DYLD}/include" \ LDFLAGS="${LDFLAGS} ${LIBS}" \ || die "emake failed for ld64" use test && emake build_test @@ -163,6 +181,7 @@ compile_ld64() { } compile_cctools() { + einfo "building ${CCTOOLS}" cd "${S}"/${CCTOOLS} emake \ LIB_PRUNETRIE="-L../../${LD64}/src -lprunetrie" \ @@ -179,6 +198,7 @@ compile_cctools() { } src_compile() { + compile_libunwind compile_ld64 compile_cctools } @@ -209,7 +229,8 @@ install_cctools() { BUILD_OBSOLETE_ARCH= \ DSTROOT=\"${D}\" \ USRBINDIR=\"${EPREFIX}\"${BINPATH} \ - LIBDIR=\"${EPREFIX}\"${LIBPATH} + LIBDIR=\"${EPREFIX}\"${LIBPATH} \ + LOCLIBDIR=\"${EPREFIX}\"${LIBPATH} cd "${ED}"${BINPATH} insinto ${DATAPATH}/man/man1 diff --git a/sys-devel/binutils-apple/files/ld64-123.2-Makefile b/sys-devel/binutils-apple/files/ld64-123.2-Makefile index 9c3e43fcad7b..bd60c60cff0f 100644 --- a/sys-devel/binutils-apple/files/ld64-123.2-Makefile +++ b/sys-devel/binutils-apple/files/ld64-123.2-Makefile @@ -1,12 +1,30 @@ -CPPFLAGS += -Iinclude -Iabstraction -Ild -Iother -I. +CPPFLAGS += "-DCPU_SUBTYPE_X86_ALL=((cpu_subtype_t)3)" -Iinclude -Iabstraction -Ild -Ild/parsers -Iother -I. # dropped machocheck due to compilation failures -all: rebase unwinddump dyldinfo ObjectDump ld64 +all: rebase unwinddump dyldinfo ld64 ObjectDump libprunetrie.a: other/PruneTrie.o other/prune_trie.h $(AR) -s -r -c libprunetrie.a other/PruneTrie.o -ld64: libprunetrie.a ld/ld.o ld/Options.o ld/debugline.o version.o +LD64LIBS=ld/parsers/archive_file.o ld/parsers/macho_relocatable_file.o \ + ld/parsers/opaque_section_file.o \ + ld/parsers/macho_dylib_file.o \ + ld/passes/branch_island.o ld/passes/dylibs.o ld/passes/order_file.o \ + ld/passes/branch_shim.o ld/passes/got.o ld/passes/tlvp.o \ + ld/passes/compact_unwind.o ld/passes/huge.o \ + ld/passes/dtrace_dof.o ld/passes/objc.o \ + ld/passes/stubs/stubs.o \ + ld/InputFiles.o ld/OutputFile.o ld/SymbolTable.o \ + ld/Options.o ld/Resolver.o ld/debugline.o ld/ld.o + +ifeq ($(LTO),1) +LD64LIBS += ld/parsers/lto_file.o +CPPFLAGS += "-DLTO" +else +CPPFLAGS += "-ULTO" +endif + +ld64: libprunetrie.a $(LD64LIBS) version.o $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $^ rebase: other/rebase.o diff --git a/sys-devel/binutils-apple/files/ld64-123.2.1-lto.patch b/sys-devel/binutils-apple/files/ld64-123.2.1-lto.patch new file mode 100644 index 000000000000..17bac81ca291 --- /dev/null +++ b/sys-devel/binutils-apple/files/ld64-123.2.1-lto.patch @@ -0,0 +1,218 @@ +diff -ur ld.orig/InputFiles.cpp ld/InputFiles.cpp +--- ld.orig/InputFiles.cpp 2010-10-05 01:57:50.000000000 +0200 ++++ ld/InputFiles.cpp 2011-09-03 20:33:40.000000000 +0200 +@@ -58,7 +58,9 @@ + #include "macho_relocatable_file.h" + #include "macho_dylib_file.h" + #include "archive_file.h" ++#ifdef LTO + #include "lto_file.h" ++#endif + #include "opaque_section_file.h" + + +@@ -175,9 +177,11 @@ + if ( result != NULL ) + return result; + ++#ifdef LTO + result = lto::archName(p, len); + if ( result != NULL ) + return result; ++#endif + + if ( strncmp((const char*)p, "!\n", 8) == 0 ) + return "archive"; +@@ -264,10 +268,12 @@ + if ( objResult != NULL ) + return this->addObject(objResult, info, len); + ++#if LTO + // see if it is an llvm object file + objResult = lto::parse(p, len, info.path, info.modTime, _nextInputOrdinal, _options.architecture(), _options.subArchitecture(), _options.logAllFiles()); + if ( objResult != NULL ) + return this->addObject(objResult, info, len); ++#endif + + // see if it is a dynamic library + ld::dylib::File* dylibResult = mach_o::dylib::parse(p, len, info.path, info.modTime, _options, _nextInputOrdinal, info.options.fBundleLoader); +@@ -286,6 +292,7 @@ + if ( archiveResult != NULL ) + return this->addArchive(archiveResult, info, len); + ++#ifdef LTO + // does not seem to be any valid linker input file, check LTO misconfiguration problems + if ( lto::archName((uint8_t*)p, len) != NULL ) { + if ( lto::libLTOisLoaded() ) { +@@ -310,6 +317,7 @@ + throwf("could not process llvm bitcode object file, because %s could not be loaded", libLTO); + } + } ++#endif + + // error handling + if ( ((fat_header*)p)->magic == OSSwapBigToHostInt32(FAT_MAGIC) ) { +diff -ur ld.orig/Options.cpp ld/Options.cpp +--- ld.orig/Options.cpp 2011-03-08 03:06:35.000000000 +0100 ++++ ld/Options.cpp 2011-09-03 21:06:28.000000000 +0200 +@@ -36,10 +36,12 @@ + #include "Architectures.hpp" + #include "MachOFileAbstraction.hpp" + ++#ifdef LTO + // upward dependency on lto::version() + namespace lto { + extern const char* version(); + } ++#endif + + // magic to place command line in crash reports + const int crashreporterBufferSize = 2000; +@@ -2786,9 +2788,11 @@ + fprintf(stderr, "%s", ldVersionString); + // if only -v specified, exit cleanly + if ( argc == 2 ) { ++#ifdef LTO + const char* ltoVers = lto::version(); + if ( ltoVers != NULL ) + fprintf(stderr, "%s\n", ltoVers); ++#endif + exit(0); + } + } +diff -ur ld.orig/Resolver.cpp ld/Resolver.cpp +--- ld.orig/Resolver.cpp 2010-12-10 23:39:41.000000000 +0100 ++++ ld/Resolver.cpp 2011-09-03 20:38:24.000000000 +0200 +@@ -58,7 +58,9 @@ + #include "InputFiles.h" + #include "SymbolTable.h" + #include "Resolver.h" ++#ifdef LTO + #include "parsers/lto_file.h" ++#endif + + + namespace ld { +@@ -1275,6 +1277,7 @@ + + void Resolver::linkTimeOptimize() + { ++#ifdef LTO + // only do work here if some llvm obj files where loaded + if ( ! _haveLLVMObjs ) + return; +@@ -1375,6 +1378,9 @@ + // check new code does not override some dylib + this->checkDylibSymbolCollisions(); + } ++#else ++ return; ++#endif + } + + +diff -ur ld.orig/ld.cpp ld/ld.cpp +--- ld.orig/ld.cpp 2011-09-03 20:24:07.000000000 +0200 ++++ ld/ld.cpp 2011-09-03 20:40:06.000000000 +0200 +@@ -85,7 +85,9 @@ + #include "parsers/archive_file.h" + #include "parsers/macho_relocatable_file.h" + #include "parsers/macho_dylib_file.h" ++#ifdef LTO + #include "parsers/lto_file.h" ++#endif + #include "parsers/opaque_section_file.h" + + +diff -ur ld.orig/parsers/archive_file.cpp ld/parsers/archive_file.cpp +--- ld.orig/parsers/archive_file.cpp 2010-09-29 02:26:13.000000000 +0200 ++++ ld/parsers/archive_file.cpp 2011-09-03 21:01:55.000000000 +0200 +@@ -38,7 +38,9 @@ + #include "Architectures.hpp" + + #include "macho_relocatable_file.h" ++#ifdef LTO + #include "lto_file.h" ++#endif + #include "archive_file.h" + + +@@ -87,8 +89,10 @@ + private: + static bool validMachOFile(const uint8_t* fileContent, uint64_t fileLength, + const mach_o::relocatable::ParserOptions& opts); ++#ifdef LTO + static bool validLTOFile(const uint8_t* fileContent, uint64_t fileLength, + const mach_o::relocatable::ParserOptions& opts); ++#endif + static cpu_type_t architecture(); + + +@@ -232,12 +236,13 @@ + return mach_o::relocatable::isObjectFile(fileContent, fileLength, opts); + } + ++#ifdef LTO + template + bool File::validLTOFile(const uint8_t* fileContent, uint64_t fileLength, const mach_o::relocatable::ParserOptions& opts) + { + return lto::isObjectFile(fileContent, fileLength, opts.architecture, opts.subType); + } +- ++#endif + + + template +@@ -256,7 +261,11 @@ + if ( (p==start) && ((strcmp(memberName, SYMDEF_SORTED) == 0) || (strcmp(memberName, SYMDEF) == 0)) ) + continue; + // archive is valid if first .o file is valid +- return (validMachOFile(p->content(), p->contentSize(), opts) || validLTOFile(p->content(), p->contentSize(), opts)); ++ return (validMachOFile(p->content(), p->contentSize(), opts) ++#ifdef LTO ++ || validLTOFile(p->content(), p->contentSize(), opts) ++#endif ++ ); + } + // empty archive + return true; +@@ -342,12 +351,14 @@ + this->ordinal() + memberIndex, _objOpts); + if ( result != NULL ) + return result; ++#ifdef LTO + // see if member is llvm bitcode file + result = lto::parse(member->content(), member->contentSize(), + mPath, member->modificationTime(), this->ordinal() + memberIndex, + _objOpts.architecture, _objOpts.subType, _logAllFiles); + if ( result != NULL ) + return result; ++#endif + + throwf("archive member '%s' with length %d is not mach-o or llvm bitcode", memberName, member->contentSize()); + } +--- other/ObjectDump.cpp.orig 2011-09-03 21:15:10.000000000 +0200 ++++ other/ObjectDump.cpp 2011-09-03 21:14:37.000000000 +0200 +@@ -33,7 +33,9 @@ + + #include "MachOFileAbstraction.hpp" + #include "parsers/macho_relocatable_file.h" ++#ifdef LTO + #include "parsers/lto_file.h" ++#endif + + static bool sDumpContent= true; + static bool sDumpStabs = false; +@@ -1121,10 +1123,12 @@ + if ( objResult != NULL ) + return objResult; + ++#ifdef LTO + // see if it is an llvm object file + objResult = lto::parse(p, fileLen, path, stat_buf.st_mtime, 0, sPreferredArch, sPreferredSubArch, false); + if ( objResult != NULL ) + return objResult; ++#endif + + throwf("not a mach-o object file: %s", path); + #else diff --git a/sys-devel/binutils-apple/files/libunwind-30-Makefile b/sys-devel/binutils-apple/files/libunwind-30-Makefile new file mode 100644 index 000000000000..cb502d94868d --- /dev/null +++ b/sys-devel/binutils-apple/files/libunwind-30-Makefile @@ -0,0 +1,23 @@ +CPPFLAGS += -I../include + +all: libunwind.a + +OBJS=Registers.o unw_getcontext.o libuwind.o UnwindLevel1-gcc-ext.o UnwindLevel1.o Unwind-sjlj.o + +libunwind.a: $(OBJS) + libtool -static -o $@ $^ + +libunwind.dylib: $(OBJS) + $(CXX) $(CXXFLAGS) -dynamiclib -single_module -compatibility_version 1 -o $@ $^ + +Registers.o: Registers.s + $(CXX) $(CPPFLAGS) $(CFLAGS) -c -o $@ $^ + +unw_getcontext.o: unw_getcontext.s + $(CXX) $(CPPFLAGS) $(CFLAGS) -c -o $@ $^ + +libuwind.o: libuwind.cxx + $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(DYLDINCS) -c -o $@ $^ + +%.o: %.c + $(CXX) $(CPPFLAGS) $(CFLAGS) -c -o $@ $^ -- 2.26.2