Gentoo Archives: gentoo-commits

From: Fabian Groffen <grobian@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-devel/binutils-apple/
Date: Sun, 26 Feb 2017 19:06:25
Message-Id: 1488135976.ef835654905c7fea9a55359ad930385cff248e22.grobian@gentoo
1 commit: ef835654905c7fea9a55359ad930385cff248e22
2 Author: Fabian Groffen <grobian <AT> gentoo <DOT> org>
3 AuthorDate: Sun Feb 26 19:06:04 2017 +0000
4 Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org>
5 CommitDate: Sun Feb 26 19:06:16 2017 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ef835654
7
8 sys-devel/binutils-apple: version bumps for Xcode 8.1 and 8.2.1 by Michael Weiser, bug #609436
9
10 Package-Manager: Portage-2.3.3, Repoman-2.3.1
11
12 sys-devel/binutils-apple/Manifest | 5 +
13 sys-devel/binutils-apple/binutils-apple-8.1.ebuild | 334 +++++++++++++++++++++
14 .../binutils-apple/binutils-apple-8.2.1.ebuild | 334 +++++++++++++++++++++
15 sys-devel/binutils-apple/metadata.xml | 3 +
16 4 files changed, 676 insertions(+)
17
18 diff --git a/sys-devel/binutils-apple/Manifest b/sys-devel/binutils-apple/Manifest
19 index 9ec34163fc..c8daa0501d 100644
20 --- a/sys-devel/binutils-apple/Manifest
21 +++ b/sys-devel/binutils-apple/Manifest
22 @@ -7,6 +7,7 @@ DIST binutils-apple-patches-7.0-r2.tar.bz2 50934 SHA256 5be8cf3ed268bb413ffd05af
23 DIST binutils-apple-patches-7.2-r0.tar.bz2 2917 SHA256 8fa3c64c840aefb71c32fc0294ce6c2b0cf058a5e7f624d736dac6b8c1f44287 SHA512 ca2fc2da88144fbf01f34f1664e6177105a5d1bff956e83f6c7cd530b8e80dcd59b0c921ad95d3c4554e02909bcd846d3a2a4535bf47569b343c85e765619821 WHIRLPOOL 9ba63b8407f6015dd8cca48bea474c375cf90047a138fac8aef800622a780bfcc98910cc46781aea72a2b9803e7cd86c3ea35cfe9fa33bba8813499cc8b91c2c
24 DIST binutils-apple-patches-7.3-r0.tar.bz2 44576 SHA256 18a9484b53225004ccd37d34d0e208e3a716f73831f4a433be211f233d855fb1 SHA512 6b092c586ac4c3a3c65229a7490f93b0f0d38348e5a2db4f73d6062c737007ee0a5b6bdb5948b7aac1d74d32442fa501ba92161a9ffe13151288432c6a706c43 WHIRLPOOL ef159c24cd1e53538f73aac805e06d14775f82921b1e8a10919981dbec0017d0c70ada0e80ea6135cca5551ccfb38f229df666bcb2e692880d6a23d380d39801
25 DIST binutils-apple-patches-7.3-r1.tar.bz2 44737 SHA256 215da3068451640cf25dbe7beb0c8d704a6fbc6d3d988675ae17b9ebbd9d1ee2 SHA512 ce4b3a725e19cb632b0c101a32488ce09a8bb89aed08339d5518d834cb68c525b2e0c8b66564a945c077915e92cc6be3f7028c5baacb870b3ca9b9422b4fb0da WHIRLPOOL 1c8a2b251e385eff5de435f9c72c8244329f55de5a61549371214ddab1cfe687491571d68d0a2c7cee4da2529f24005d1d0a7429daa5c6a1ef3a68ea8af0da20
26 +DIST binutils-apple-patches-8.2-r0.tar.bz2 5771 SHA256 839dba0eb6314e15bfa43b50479359adfc695c8b65b6c7176abc0983c41c6dbb SHA512 92d04396630a31b752a24845c27fe8da2e37eb176117c9b31193e8f48af7ade707cda4060289b848965310afd05b2f121c740b0e5baa56b79c5481273a88c84e WHIRLPOOL 5706ab6aee04670b4fbbf5cca62109c3f69beba834729280dc636d8c5c4017f321d0402db080032219ccf025899a9bf1daf48a7ac6805faf01e10ed6faf73242
27 DIST cctools-822.tar.gz 2024412 SHA256 dfaa9bdbd023524d47429674f64d2d5ea393123dabf90868be0aa17f61f45289 SHA512 8b02cc837d5e0520f35da445f25ba86b5042d5caa27b49a599e829ed89428cf78dbd1831bcf6c18301f941fbfb31ac2114e248041d98008a466e1574f4fe1586 WHIRLPOOL 81191ab46e8a9e47e4267146f978438ff64314b0363296b973a02f361918a5cd69057753a1b40766b93d3d4a3ed10585a27f6da2953992a406be61d1dcc1d06c
28 DIST cctools-855.tar.gz 1699635 SHA256 751748ddf32c8ea84c175f32792721fa44424dad6acbf163f84f41e9617dbc58 SHA512 50f5d015ce807aa5ca274dd2deea810b8b375110e60b5e334ca4b2170526b738ea5f86a5436caebbdb748badc3b89601d0f450f5b867d8393c89e336a3db4b3f WHIRLPOOL fa493a29e32583f60c3553794bbb6d01a7b5ef797d8e8ba8161c9cbf237906ebbfaff560366da2d5b852bfcbdd55e874c00edf5b3169b16b357a54fcf3c07c4c
29 DIST cctools-862.tar.gz 1702345 SHA256 1bf29f620b91c901ad3116b47738ab5076c1aed75d13869cd3bc7f067b4aaadb SHA512 faa401c1dc55bfb9cd2a9a9cc7bc9d473ee63b019607967c8b0da325514d6a1f7b1f52404370bcc018e86d30d75a4b01183f49b793f577110663efe43871360a WHIRLPOOL 371307f3264361f5e2e48d83177aff1a8f435cf2bdc1f4998cc5780c5b3760048a29a7620d2390db8f0c9378cd2f3b2f130b6aca9d402e3d428c4f4d353db097
30 @@ -15,11 +16,13 @@ DIST cctools-877.5.tar.gz 1717664 SHA256 5e7525c86581d9dead8a8508a9e824101765d05
31 DIST cctools-877.7.tar.gz 1720523 SHA256 c3809b7604a27db0c0b418fcccd5cad49f002e2a750ec611f92f806521f7ed9e SHA512 5c381fe8b85d1254f660eb3c3510d9e0a49792ae5bb0e69a4dfb5a18e7f1706ee1411589f20583a9d7f12126ef616f66f1ad5c1c4ff405f66b52759c0a4272b5 WHIRLPOOL 2c8e85fd33f183bd074abf90237301eff252ca05aa48a59aea713d263b10e0710d261a5ac01185e9a17d1a391fa025fb91d60df0f3b426140defdbd5536e4bbb
32 DIST cctools-877.8.tar.gz 1720708 SHA256 88be2788adf461f1d8278324b0078f6003b2328b6f95a54b16ec6ed1ba651dc2 SHA512 3f75fbe4eacd89f2e6372a3167ed197e2b8bda9faa10fe6bce0cf9d3d3eca536f0af5fc4ce1e4bc6a24eb68db36f5d0b1d0bc3f9807e285e67cfaa2d336d81ef WHIRLPOOL eea67bacd8037b19ba3efcc2fecfcc74ec3e785ce92628fdeccbeca6e17dee4d1926719a02ca7f68fc2045f9b37571cb044cc29a3a8fe6a5bd704a3446f44945
33 DIST cctools-886.tar.gz 1731850 SHA256 f3a4fa7dad4a54d862b1d9f48e3dfb25fc532c9cf46a041cf8134694328a8878 SHA512 49f14e165da3a9fcf16614a810b8a2a68907348bd27a60b268b330e416a0bc070fb6445e1e6b80d849026bd6ce7de4459623ab86168e2d63bb492d1ba6680c5b WHIRLPOOL 91a09d3c773f0aede36de548310879a1ad4158f39e9d4d91b4e1a9460d31acdcab5c658113381742512861c6281661dea7fd8273d7146ac6838088d1435ebe2f
34 +DIST cctools-895.tar.gz 1716126 SHA256 ce66034fa35117f9ae76bbb7dd72d8068c405778fa42e877e8a13237a10c5cb7 SHA512 4ef9db870385cc2c4263bcbe42ff0de80386771f5acbc7082a1818ecd6b8d7bb1bfa02a7fcfecd3e7281481aeaaac4c331359aca3564bfe7a4c7dea1e0d06126 WHIRLPOOL 36f6814cfe25fd5e257720560db18ceaed7cc5504f9fcb20cd00f48e9295797067d1538fd172406b7c68d771df1059d46261b33fc4fb293afe8b28a7580e90c4
35 DIST dyld-195.6.tar.gz 412518 SHA256 69296e9b4192bdac778ea899fffc18b02be62b51b5e8474b4cf85ae5f2b08aa4 SHA512 58a9ea27efc02e66f9d99bfa250af1d90326385385431e5279386bbd9ab53366bf7e8236543296908b7214c33523c8f60098a6298a7393b3180e2a6bce18e7c5 WHIRLPOOL e37b11d3996559f8a1843577a5fa42f96e4d42419f205276600f0ed79fcd2490da1f8a77eecf29f111b3db62a65e8e9cd77a154e3b389d633a7ac1525273b9b5
36 DIST dyld-353.2.1.tar.gz 510036 SHA256 051089e284c5a4d671b21b73866abd01d54e5ea1912cadf3a9b916890fb31540 SHA512 a9488620499f682e245b55b7e0e4ec02fc0bcf03bd8a70d4a4ee0ba762067ade2f41c188990c101727476d41c19368b4cc89cccf2df40231da1c777742c7391f WHIRLPOOL 3164746ed8c866df993f08e405e7e329db427af8eeded681d5fb88031ef2c025363d5bfb647e9315738024adf9f48efacf49226f86f27def584ec7f538da292e
37 DIST dyld-360.14.tar.gz 518873 SHA256 c4e011241d75e3fac4dbdfc0049ccf26fb939fea6c0256b6f16036b2e4690c6e SHA512 cfe536ea1f0ad8fbc2846417289e3e36704bf69388e083e0ece0ffa6eeee501e7e9b2ba47eed7be0e5120b5cc72f33b2fc0d2d39ba7a16beaf98db94dfb4ae40 WHIRLPOOL 6ed42fa38f60a84deab0bc9b128f5de232df487613726978be29783ede7eee9b5899472a984d50f44a20c87c1772aeede9b81706000fa66713df34d6e956c88e
38 DIST dyld-360.17.tar.gz 518876 SHA256 e137f54d5f7af7512e2e2337248caa0580743db212471de71fd45d3e3e92c68d SHA512 aae2a0ea1f4130de51aa920ce1affa579993b3b58a7d398ec998c0d7ac4919907ba4e508b9bfc15080b1f4f4cf15e4615bc416b6ec32b52a4b5d8fbbad1dc9ab WHIRLPOOL 2c3cc5fe0063b0a6ad1cc77e5ae1204e8bcd23ba732ad775910fe6340a5d908b77d2623fb7fa4eccff20e0e2176405d8d6734b7d60dbba61ccfc58f37009aca7
39 DIST dyld-360.18.tar.gz 518957 SHA256 a5bec8c2e3bded111aec7e447b35c110038e822f95e11e55b9a4d331fbaeff08 SHA512 1299bd2dd5cd663917ec4a03ed0f875e0bf07d6680d3d095af12f4b11960c02a52e361bde27ff88843f80832fc6d36654e2556ee0a3ca2259fcded5b568ab2f9 WHIRLPOOL 5b42ea6de3f08b7e0fbad7ea9df512c74fd4bceecf859683297d0cb8998d642ea3a0597ef488dcbf42a75064a07a528baf63c957d36174fddff34d6e6c7502d8
40 +DIST dyld-421.2.tar.gz 625173 SHA256 e922c4e78af8f7af14dd158f1db986f8eb260403e7a0dc67fa35279d2cfdceb7 SHA512 75f2fb840da980d44649aa3e045f50c4e37d4403fbdb1e2e5f1a85bf6d8859e1130053c3806f7ef992fdfc6573f7f18146263c690144bdd3df31452c6bdd8bd8 WHIRLPOOL cf7093f68ecaf41db2bd8ed5d456183007e5b87b1296f182ffa007464c65248188127c60e2f937faa6fdaba771b9995673bedf22e9b81826c74cf1c50d39360e
41 DIST ld64-128.2.tar.gz 494361 SHA256 96a912464e2d4d3d7cdaab0744003b0fa93d139f203c82867f659ee94b4ae9f7 SHA512 f50a3c396e6f4fddc685bb3f59f9a260bd2f47060535d24259b2b411e4f759e48daa35819da682ad9bceaa1b9a1981eb34716387d988cdc4b7eec9ab2169726e WHIRLPOOL 78dec40124ae11c80483b362860b01c833fcaff67bae6b6cb3b72371daffdf3be809186f5daca4bb6ace77441cb43168939eb60eedf9f8c05ae3ec644c2a0502
42 DIST ld64-236.3.tar.gz 624400 SHA256 8ef36729b643201081ab45ebd8586ede8f9968bc17614b679a940faa82875ca6 SHA512 e103fc5efd4d4161c7dc55b1ad53aebd455cfcd72de7873ebfdf5ba896b7b0da9c9aeb12e1e1a76425768ac1dc85d864a4ce33b5b841ba115eeab96a2e2965aa WHIRLPOOL d122e325518860c810b9efde7016ebecb6b59c56bb40ae1f041a840be764a5d9b90c7db1922fd9037c18f4caae7ace0d395591ffb3db704c87b92837ef997a17
43 DIST ld64-241.9.tar.gz 639944 SHA256 3594e87c626c3b5abab6470cac6f27b367f1efcee60eb3d0f6b6d4ecf9b24230 SHA512 6958e7064f4fd8b47501225fc4cbc6292e5da63d7f4103ad79add177ef7382c8de3c732f14d19a9c11356b8070f578392383caccc3795e2ab8ef7b7ddbde88da WHIRLPOOL 5b07a336efde52b00b2601866907513517593a113583f05a9c45b98b4d6f394d87add887a7e44a95f462b6c2b5617ce497376b94a523e5cdf0f69d4d10ef3407
44 @@ -29,5 +32,7 @@ DIST ld64-253.6.tar.gz 671838 SHA256 7fbae5e88ac1420480de8a495dcd3b876d399278bfc
45 DIST ld64-253.9.tar.gz 673388 SHA256 8fa3a1b65f665824ac129c02e2fab8926a06e503ec277ea32cd8bc27c8de11c3 SHA512 a52b081295c19f28858f8ee47c05249bba3e15cc8bb6f7017d9f6dcf7509cdacef7a4b16b3940cd0b1f72b3b67efb503ab2e3801b31e50cda1d34c6bc8df8dcf WHIRLPOOL 07e850984d2ff24637a64d76860799136e63af56dc2740f8d1e1bd3311ae3f33eac902e7850f94555407002d0d16f44d4a276470f54e60a0633169b884b7dfc1
46 DIST ld64-264.3.101.tar.gz 681491 SHA256 2882f0c104334bdba8eb64cd3a9f9059ceca4d4e0c08473506a926d53c9ef218 SHA512 ffa37af95f1a6e76829d0ac8badfd0236d93dc2f9988c7f4b88fe271b7b02a4b5553402a1e9a49feed9da4d04a50e2a2cacdb1bd4c04ecbef09d68b85a2e8a6a WHIRLPOOL cdc466a24fdbc2bf3756d73f89f91d26fec21d8004a2e77804e2b678a9da08afe83bb5aa9fb4548496feb3d9180c3d2521a8d5329b875ed76d4e3a0ea231d5be
47 DIST ld64-264.3.102.tar.gz 681509 SHA256 307f73678a3e5c9ed4d1bcf77da7399d84efac32916c5df6cd477c3b5c36f953 SHA512 ec221de3624dcce3db694ec2d7b05f3c939cd1ba79c97437ba9f2d4e5d9c37369bb5df82cc37bc158bf5c4e2128cc2b96ca1a7477f98538850092bffa4601da0 WHIRLPOOL 509774429d498c4a070a54798715776eddf2b8ef70a99dd4250d60144efa2d4a6a324914112556435709beb614172dd45b860f3963b0da9a0825cb0756bcd719
48 +DIST ld64-274.1.tar.gz 670493 SHA256 6cbe886717de833789fa562ec4889ebf9136ae5f7573d17d39836d3f5755b7ab SHA512 ef5d6802f759e09aa2dfab7eb84e9cd2a57b28da3f150833cf1a922c395dd696e501b1bcb10385cbe995f4945fc6c99c2d2d8c50c42f369186bdc1ac3e30ad99 WHIRLPOOL 5b98613419f304cca05d7e626a33a93b08e991cbdf5a9b76891656e8b5757937e930bdc047ceb60a345a11ee195c641af5d2ec7b3d731530050be160c82d6a93
49 +DIST ld64-274.2.tar.gz 671652 SHA256 175d89c419e99d49a7a5f7e4196d3cef4c9e19cc17a425c332e86df6b516f7d7 SHA512 7b4e17f199909450b697bf719564c6841d46f5116c48dd47ff483ae7ddfe2965db1b7c024ed8ebeeaf90cd983ed353b95f7f23c93c8971536977dc892e6d6a9d WHIRLPOOL 30f935d1f49769a851871f6fc4d7210409122d910651835c3568c0fb22111bdc4c2419413a5808aa95dc6a840f856eefe7c5a3d8215470cf8f1b4b4432c40494
50 DIST libunwind-30.tar.gz 82811 SHA256 6ac97d18cc2b05e6de1269bf5af03b81948bd2200dae827527f3dc618b82bd41 SHA512 57106eafa1516791b4e0db2de6c6336bc0c1cbd8bf098a6d3a809fafa457802c95a7aeae9137f4ca5922a3018dfd8f597907ea4187b0afbbf267500eae00041f WHIRLPOOL c3caf5ba593cffa2f0a9cdb256f518524e9500eaf0a013c4973dc9881b16efa0c388e70407bbed1fd331f100af2da01ddeee12d33b3afc1213d69c32ab5e1d0b
51 DIST libunwind-35.3.tar.gz 90002 SHA256 2bcc95553a44fa3edca41993ccfac65ba267830cb37c85dca760b34094722e56 SHA512 b7d9a86ef24f1fe9ca14517471e03a910219a229af9f0d4cf94435115971360640451107ba20c93fb1aab788f8b6eb5ed580ee08fdaa990b9fa43e9ae360c6b4 WHIRLPOOL 838912e46031b3a6796bfe854f0244991ce5bc3b59b95855224c9e84639e57b69f541b7993658360721423533dca75037248ea90f5e274b332f27319fdd85a9a
52
53 diff --git a/sys-devel/binutils-apple/binutils-apple-8.1.ebuild b/sys-devel/binutils-apple/binutils-apple-8.1.ebuild
54 new file mode 100644
55 index 0000000000..28a8fad6e3
56 --- /dev/null
57 +++ b/sys-devel/binutils-apple/binutils-apple-8.1.ebuild
58 @@ -0,0 +1,334 @@
59 +# Copyright 1999-2017 Gentoo Foundation
60 +# Distributed under the terms of the GNU General Public License v2
61 +
62 +EAPI="6"
63 +
64 +inherit eutils flag-o-matic toolchain-funcs
65 +
66 +LD64=ld64-274.1
67 +CCTOOLS_VERSION=895
68 +CCTOOLS=cctools-${CCTOOLS_VERSION}
69 +DYLD=dyld-421.2
70 +
71 +DESCRIPTION="Darwin assembler as(1) and static linker ld(1), Xcode Tools ${PV}"
72 +HOMEPAGE="http://www.opensource.apple.com/darwinsource/"
73 +SRC_URI="http://www.opensource.apple.com/tarballs/ld64/${LD64}.tar.gz
74 + http://www.opensource.apple.com/tarballs/cctools/${CCTOOLS}.tar.gz
75 + http://www.opensource.apple.com/tarballs/dyld/${DYLD}.tar.gz
76 + http://dev.gentoo.org/~grobian/distfiles/${PN}-patches-4.3-r1.tar.bz2
77 + http://dev.gentoo.org/~grobian/distfiles/${PN}-patches-5.1-r2.tar.bz2
78 + http://dev.gentoo.org/~grobian/distfiles/${PN}-patches-7.0-r2.tar.bz2
79 + http://dev.gentoo.org/~grobian/distfiles/${PN}-patches-7.3-r1.tar.bz2
80 + http://dev.gentoo.org/~grobian/distfiles/${PN}-patches-8.2-r0.tar.bz2"
81 +
82 +LICENSE="APSL-2"
83 +KEYWORDS="~x64-macos ~x86-macos"
84 +IUSE="lto tapi classic test"
85 +
86 +# ld64 can now only be compiled using llvm and libc++ since it massively uses
87 +# C++11 language features. *But additionally* the as driver now defaults to
88 +# calling clang as the assembler on many platforms. This can be disabled using
89 +# -Wa,-Q but since it's default we make llvm a static runtime dependency.
90 +RDEPEND="sys-devel/binutils-config
91 + lto? ( app-arch/xar )
92 + tapi? ( sys-libs/tapi )
93 + sys-devel/llvm
94 + sys-libs/libcxx"
95 +DEPEND="${RDEPEND}
96 + test? ( >=dev-lang/perl-5.8.8 )"
97 +
98 +SLOT="8"
99 +
100 +S=${WORKDIR}
101 +
102 +is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
103 +
104 +src_prepare() {
105 + cd "${S}"/${LD64}/src
106 + cp "${S}"/ld64-136-compile_stubs.h ld/compile_stubs.h
107 + cp "${S}"/ld64-274.1-Makefile Makefile
108 +
109 + epatch "${S}"/ld64-274.1-nolto.patch
110 + epatch "${S}"/ld64-236.3-crashreporter.patch
111 + epatch "${S}"/ld64-264.3.102-bitcode-case.patch
112 + epatch "${S}"/ld64-274.1-unknown-fixup.patch
113 + epatch "${S}"/ld64-274.1-notapi.patch
114 +
115 + # workound llvm-3.9.{0,1} issue
116 + # https://bugs.gentoo.org/show_bug.cgi?id=603580
117 + # https://groups.google.com/forum/#!topic/llvm-dev/JY6nuKE__sU
118 + # http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20160829/169553.html
119 + sed -i -e '/COMPILE_TIME_ASSERT/d' ld/parsers/libunwind/*.hpp || die
120 +
121 + # provide missing headers from libunwind and dyld
122 + mkdir -p include/{mach,mach-o/arm} || die
123 + # never present because it's private
124 + cp ../../${DYLD}/include/mach-o/dyld_priv.h include/mach-o || die
125 + # use copies from cctools because they're otherwise hidden in some SDK
126 + cp ../../${CCTOOLS}/include/mach-o/arm/reloc.h include/mach-o/arm || die
127 + # provide all required CPU_TYPEs on all platforms
128 + cp ../../${CCTOOLS}/include/mach/machine.h include/mach/machine.h
129 + # add alias for newer identifiers, because ld64 uses both but cctools
130 + # header only defines the older
131 + epatch "${S}"/ld64-236.3-missing-cputypes.patch
132 +
133 + local VER_STR="\"@(#)PROGRAM:ld PROJECT:${LD64} (Gentoo ${PN}-${PVR})\\n\""
134 + echo "char ldVersionString[] = ${VER_STR};" > version.cpp
135 +
136 + epatch "${S}"/ld64-123.2-debug-backtrace.patch
137 +
138 + cd "${S}"/${CCTOOLS}
139 + epatch "${S}"/${PN}-4.5-as.patch
140 + epatch "${S}"/${PN}-5.1-as-dir.patch
141 + epatch "${S}"/${PN}-5.1-ranlib.patch
142 + epatch "${S}"/${PN}-3.1.1-libtool-ranlib.patch
143 + epatch "${S}"/${PN}-3.1.1-no-headers.patch
144 + epatch "${S}"/${PN}-4.0-no-oss-dir.patch
145 + epatch "${S}"/cctools-839-intel-retf.patch
146 + epatch "${S}"/${PN}-5.1-extraneous-includes.patch
147 + epatch "${S}"/${PN}-5.1-strnlen.patch
148 + epatch "${S}"/${PN}-7.3-make-j.patch
149 + epatch "${S}"/${PN}-7.0-lto-prefix-2.patch
150 + epatch "${S}"/${PN}-7.0-clang-as.patch
151 + epatch "${S}"/${PN}-8.1-nolto.patch
152 + epatch "${S}"/${PN}-7.3-nollvm.patch
153 + epatch "${S}"/${PN}-7.3-no-developertools-dir.patch
154 + epatch "${S}"/${PN}-8.1-llvm-tools.patch
155 + cp ../${LD64}/src/other/prune_trie.h include/mach-o/ || die
156 +
157 + # do not build profileable libstuff to save compile time
158 + sed -i -e "/^all:/s, profile , ," libstuff/Makefile
159 +
160 + # cctools version is provided to make via RC_ProjectSourceVersion which
161 + # generates and compiles it as apple_version[] into libstuff. From
162 + # there it's picked up by the individual tools. Since
163 + # RC_ProjectSourceVersion is also used as library version, we can't
164 + # just append our local version info. So we hack the libstuff Makefile
165 + # to include our Gentoo version.
166 + sed -i -e "/cctools-.*(RC_ProjectSourceVersion).*OFILE_DIR/s,Version),Version) (Gentoo ${PN}-${PVR})," \
167 + libstuff/Makefile
168 +
169 + eapply_user
170 +
171 + # clean up test suite
172 + cd "${S}"/${LD64}/unit-tests/test-cases
173 + local c
174 +
175 + # we don't have llvm
176 + ((++c)); rm -rf llvm-integration;
177 +
178 + # we don't have dtrace
179 + ((++c)); rm -rf dtrace-static-probes-coalescing;
180 + ((++c)); rm -rf dtrace-static-probes;
181 +
182 + # a file is missing
183 + ((++c)); rm -rf eh-coalescing-r
184 +
185 + # we don't do universal binaries
186 + ((++c)); rm -rf blank-stubs;
187 +
188 + # looks like a problem with apple's result-filter.pl
189 + ((++c)); rm -rf implicit-common3;
190 + ((++c)); rm -rf order_file-ans;
191 +
192 + # TODO no idea what goes wrong here
193 + ((++c)); rm -rf dwarf-debug-notes;
194 +
195 + einfo "Deleted $c tests that were bound to fail"
196 +
197 + cd "${S}"
198 + ebegin "cleaning Makefiles from unwanted CFLAGS"
199 + find . -name "Makefile" -print0 | xargs -0 sed \
200 + -i \
201 + -e 's/ -g / /g' \
202 + -e 's/^G =.*$/G =/' \
203 + -e 's/^OFLAG =.*$/OFLAG =/' \
204 + -e 's/install -c -s/install/g'
205 + eend $?
206 +}
207 +
208 +src_configure() {
209 + ENABLE_LTO=0
210 + use lto && ENABLE_LTO=1
211 +
212 + export CTARGET=${CTARGET:-${CHOST}}
213 + if [[ ${CTARGET} == ${CHOST} ]] ; then
214 + if [[ ${CATEGORY} == cross-* ]] ; then
215 + export CTARGET=${CATEGORY#cross-}
216 + fi
217 + fi
218 +
219 + LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV}
220 + INCPATH=${LIBPATH}/include
221 + DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV}
222 + if is_cross ; then
223 + BINPATH=/usr/${CHOST}/${CTARGET}/binutils-bin/${PV}
224 + else
225 + BINPATH=/usr/${CTARGET}/binutils-bin/${PV}
226 + fi
227 +
228 + # CPPFLAGS only affects ld64, cctools don't use 'em (which currently is
229 + # what we want)
230 + append-cppflags -DNDEBUG
231 +
232 + # Create configure.h for ld64 with SUPPORT_ARCH_<arch> defines in it.
233 + DERIVED_FILE_DIR=${LD64}/src \
234 + ${LD64}/src/create_configure
235 +}
236 +
237 +compile_ld64() {
238 + einfo "building ${LD64}"
239 + cd "${S}"/${LD64}/src
240 + emake \
241 + LTO=${ENABLE_LTO} \
242 + TAPI=$(use tapi && echo 1 || echo 0) \
243 + || die "emake failed for ld64"
244 + use test && emake build_test
245 +}
246 +
247 +compile_cctools() {
248 + einfo "building ${CCTOOLS}"
249 + cd "${S}"/${CCTOOLS}
250 + # Suppress running dsymutil because it will warn about missing debug
251 + # info which is expected when compiling without -g as we normally do.
252 + # This might need some more thought if anyone ever wanted to build us
253 + # for debugging with Apple's tools.
254 + emake \
255 + LIB_PRUNETRIE="-L../../${LD64}/src -lprunetrie" \
256 + EFITOOLS= \
257 + LTO="${ENABLE_LTO}" \
258 + LTO_LIBDIR=../../../lib \
259 + COMMON_SUBDIRS='libstuff ar misc otool' \
260 + SUBDIRS_32= \
261 + LEGACY= \
262 + RC_ProjectSourceVersion=${CCTOOLS_VERSION} \
263 + RC_CFLAGS="${CFLAGS}" \
264 + OFLAG="${CCTOOLS_OFLAG}" \
265 + DSYMUTIL=": disabled: dsymutil" \
266 + || die "emake failed for the cctools"
267 + cd "${S}"/${CCTOOLS}/as
268 + emake \
269 + BUILD_OBSOLETE_ARCH= \
270 + RC_ProjectSourceVersion=${CCTOOLS_VERSION} \
271 + RC_CFLAGS="-DASLIBEXECDIR=\"\\\"${EPREFIX}${LIBPATH}/\\\"\" -DCLANGDIR=\"\\\"${EPREFIX}/usr/bin/\\\"\" ${CFLAGS}" \
272 + OFLAG="${CCTOOLS_OFLAG}" \
273 + DSYMUTIL=": disabled: dsymutil" \
274 + || die "emake failed for as"
275 +}
276 +
277 +src_compile() {
278 + compile_ld64
279 + compile_cctools
280 +}
281 +
282 +install_ld64() {
283 + exeinto ${BINPATH}
284 + doexe "${S}"/${LD64}/src/{ld64,rebase,dyldinfo,unwinddump,ObjectDump}
285 + dosym ld64 ${BINPATH}/ld
286 + insinto ${DATAPATH}/man/man1
287 + doins "${S}"/${LD64}/doc/man/man1/{ld,ld64,rebase}.1
288 +}
289 +
290 +install_cctools() {
291 + cd "${S}"/${CCTOOLS}
292 + emake install_all_but_headers \
293 + EFITOOLS= \
294 + COMMON_SUBDIRS='ar misc otool' \
295 + SUBDIRS_32= \
296 + DSTROOT=\"${D}\" \
297 + BINDIR=\"${EPREFIX}\"${BINPATH} \
298 + LOCBINDIR=\"${EPREFIX}\"${BINPATH} \
299 + USRBINDIR=\"${EPREFIX}\"${BINPATH} \
300 + LOCLIBDIR=\"${EPREFIX}\"${LIBPATH} \
301 + MANDIR=\"${EPREFIX}\"${DATAPATH}/man/
302 + cd "${S}"/${CCTOOLS}/as
303 + emake install \
304 + BUILD_OBSOLETE_ARCH= \
305 + DSTROOT=\"${D}\" \
306 + USRBINDIR=\"${EPREFIX}\"${BINPATH} \
307 + LIBDIR=\"${EPREFIX}\"${LIBPATH} \
308 + LOCLIBDIR=\"${EPREFIX}\"${LIBPATH}
309 +
310 + # upstream is starting to replace classic binutils with llvm-integrated
311 + # ones. nm and size are now symlinks to llvm-{nm,size} while the classic
312 + # version is preserved as {nm,size}-classic.
313 + # Since our binutils do not live in the same directory as the llvm
314 + # installation, we have to rewrite the symlinks to the llvm tools.
315 + # This also means, that these tools still appear to be versioned via
316 + # binutils-config but actually always run the currently installed llvm
317 + # tool.
318 + budir=${D}/${EPREFIX}/${BINPATH}
319 + for tool in nm size ; do
320 + # ${EPREFIX}/usr/x86_64-apple-darwin15/binutils-bin/7.3/$tool
321 + # -> ${EPREFIX}/bin/llvm-$tool
322 + use classic && \
323 + ln -sfn ${tool}-classic "${budir}/${tool}" || \
324 + ln -sfn ../../../bin/llvm-${tool} "${budir}/${tool}"
325 + done
326 +
327 + # Also, otool is now based on llvm-objdump. But a small wrapper installed
328 + # as llvm-otool remains, providing command line compatibility.
329 + use classic && \
330 + ln -sfn otool-classic "${budir}/otool" || \
331 + ln -sfn llvm-otool "${budir}/otool"
332 +
333 + cd "${ED}"${BINPATH}
334 + insinto ${DATAPATH}/man/man1
335 + local skips manpage
336 + # ar brings an up-to-date manpage with it
337 + skips=( ar )
338 + for bin in *; do
339 + for skip in ${skips[@]}; do
340 + if [[ ${bin} == ${skip} ]]; then
341 + continue 2;
342 + fi
343 + done
344 + manpage=${S}/${CCTOOLS}/man/${bin}.1
345 + if [[ -f "${manpage}" ]]; then
346 + doins "${manpage}"
347 + fi
348 + done
349 + insinto ${DATAPATH}/man/man5
350 + doins "${S}"/${CCTOOLS}/man/*.5
351 +}
352 +
353 +src_test() {
354 + if ! [ "${EPREFIX}"/usr/bin/clang ] ; then
355 + einfo "Test suite only works properly with clang - please install"
356 + return
357 + fi
358 +
359 + einfo "Running unit tests"
360 + cd "${S}"/${LD64}/unit-tests/test-cases
361 + # provide the new ld as a symlink to clang so that -ccc-install-dir
362 + # will pick it up
363 + ln -sfn ../../src/ld64 ld
364 + # use our arch command because the System's will report i386 even for an
365 + # x86_64 prefix
366 + perl ../bin/make-recursive.pl \
367 + BUILT_PRODUCTS_DIR="${S}"/${LD64}/src \
368 + ARCH="$(arch)" \
369 + LD="${S}"/${LD64}/src/ld64 \
370 + CC="${CC} -ccc-install-dir $PWD" \
371 + CXX="${CXX} -ccc-install-dir $PWD" \
372 + OTOOL="${S}"/${CCTOOLS}/otool/otool.NEW \
373 + | perl ../bin/result-filter.pl
374 +}
375 +
376 +src_install() {
377 + install_ld64
378 + install_cctools
379 +
380 + cd "${S}"
381 + insinto /etc/env.d/binutils
382 + cat <<-EOF > env.d
383 + TARGET="${CHOST}"
384 + VER="${PV}"
385 + FAKE_TARGETS="${CHOST}"
386 + EOF
387 + newins env.d ${CHOST}-${PV}
388 +}
389 +
390 +pkg_postinst() {
391 + binutils-config ${CHOST}-${PV}
392 +}
393
394 diff --git a/sys-devel/binutils-apple/binutils-apple-8.2.1.ebuild b/sys-devel/binutils-apple/binutils-apple-8.2.1.ebuild
395 new file mode 100644
396 index 0000000000..fda2218b30
397 --- /dev/null
398 +++ b/sys-devel/binutils-apple/binutils-apple-8.2.1.ebuild
399 @@ -0,0 +1,334 @@
400 +# Copyright 1999-2017 Gentoo Foundation
401 +# Distributed under the terms of the GNU General Public License v2
402 +
403 +EAPI="6"
404 +
405 +inherit eutils flag-o-matic toolchain-funcs
406 +
407 +LD64=ld64-274.2
408 +CCTOOLS_VERSION=895
409 +CCTOOLS=cctools-${CCTOOLS_VERSION}
410 +DYLD=dyld-421.2
411 +
412 +DESCRIPTION="Darwin assembler as(1) and static linker ld(1), Xcode Tools ${PV}"
413 +HOMEPAGE="http://www.opensource.apple.com/darwinsource/"
414 +SRC_URI="http://www.opensource.apple.com/tarballs/ld64/${LD64}.tar.gz
415 + http://www.opensource.apple.com/tarballs/cctools/${CCTOOLS}.tar.gz
416 + http://www.opensource.apple.com/tarballs/dyld/${DYLD}.tar.gz
417 + http://dev.gentoo.org/~grobian/distfiles/${PN}-patches-4.3-r1.tar.bz2
418 + http://dev.gentoo.org/~grobian/distfiles/${PN}-patches-5.1-r2.tar.bz2
419 + http://dev.gentoo.org/~grobian/distfiles/${PN}-patches-7.0-r2.tar.bz2
420 + http://dev.gentoo.org/~grobian/distfiles/${PN}-patches-7.3-r1.tar.bz2
421 + http://dev.gentoo.org/~grobian/distfiles/${PN}-patches-8.2-r0.tar.bz2"
422 +
423 +LICENSE="APSL-2"
424 +KEYWORDS="~x64-macos ~x86-macos"
425 +IUSE="lto tapi classic test"
426 +
427 +# ld64 can now only be compiled using llvm and libc++ since it massively uses
428 +# C++11 language features. *But additionally* the as driver now defaults to
429 +# calling clang as the assembler on many platforms. This can be disabled using
430 +# -Wa,-Q but since it's default we make llvm a static runtime dependency.
431 +RDEPEND="sys-devel/binutils-config
432 + lto? ( app-arch/xar )
433 + tapi? ( sys-libs/tapi )
434 + sys-devel/llvm
435 + sys-libs/libcxx"
436 +DEPEND="${RDEPEND}
437 + test? ( >=dev-lang/perl-5.8.8 )"
438 +
439 +SLOT="8"
440 +
441 +S=${WORKDIR}
442 +
443 +is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
444 +
445 +src_prepare() {
446 + cd "${S}"/${LD64}/src
447 + cp "${S}"/ld64-136-compile_stubs.h ld/compile_stubs.h
448 + cp "${S}"/ld64-274.1-Makefile Makefile
449 +
450 + epatch "${S}"/ld64-274.1-nolto.patch
451 + epatch "${S}"/ld64-236.3-crashreporter.patch
452 + epatch "${S}"/ld64-264.3.102-bitcode-case.patch
453 + epatch "${S}"/ld64-274.1-unknown-fixup.patch
454 + epatch "${S}"/ld64-274.1-notapi.patch
455 +
456 + # workound llvm-3.9.{0,1} issue
457 + # https://bugs.gentoo.org/show_bug.cgi?id=603580
458 + # https://groups.google.com/forum/#!topic/llvm-dev/JY6nuKE__sU
459 + # http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20160829/169553.html
460 + sed -i -e '/COMPILE_TIME_ASSERT/d' ld/parsers/libunwind/*.hpp || die
461 +
462 + # provide missing headers from libunwind and dyld
463 + mkdir -p include/{mach,mach-o/arm} || die
464 + # never present because it's private
465 + cp ../../${DYLD}/include/mach-o/dyld_priv.h include/mach-o || die
466 + # use copies from cctools because they're otherwise hidden in some SDK
467 + cp ../../${CCTOOLS}/include/mach-o/arm/reloc.h include/mach-o/arm || die
468 + # provide all required CPU_TYPEs on all platforms
469 + cp ../../${CCTOOLS}/include/mach/machine.h include/mach/machine.h
470 + # add alias for newer identifiers, because ld64 uses both but cctools
471 + # header only defines the older
472 + epatch "${S}"/ld64-236.3-missing-cputypes.patch
473 +
474 + local VER_STR="\"@(#)PROGRAM:ld PROJECT:${LD64} (Gentoo ${PN}-${PVR})\\n\""
475 + echo "char ldVersionString[] = ${VER_STR};" > version.cpp
476 +
477 + epatch "${S}"/ld64-123.2-debug-backtrace.patch
478 +
479 + cd "${S}"/${CCTOOLS}
480 + epatch "${S}"/${PN}-4.5-as.patch
481 + epatch "${S}"/${PN}-5.1-as-dir.patch
482 + epatch "${S}"/${PN}-5.1-ranlib.patch
483 + epatch "${S}"/${PN}-3.1.1-libtool-ranlib.patch
484 + epatch "${S}"/${PN}-3.1.1-no-headers.patch
485 + epatch "${S}"/${PN}-4.0-no-oss-dir.patch
486 + epatch "${S}"/cctools-839-intel-retf.patch
487 + epatch "${S}"/${PN}-5.1-extraneous-includes.patch
488 + epatch "${S}"/${PN}-5.1-strnlen.patch
489 + epatch "${S}"/${PN}-7.3-make-j.patch
490 + epatch "${S}"/${PN}-7.0-lto-prefix-2.patch
491 + epatch "${S}"/${PN}-7.0-clang-as.patch
492 + epatch "${S}"/${PN}-8.1-nolto.patch
493 + epatch "${S}"/${PN}-7.3-nollvm.patch
494 + epatch "${S}"/${PN}-7.3-no-developertools-dir.patch
495 + epatch "${S}"/${PN}-8.1-llvm-tools.patch
496 + cp ../${LD64}/src/other/prune_trie.h include/mach-o/ || die
497 +
498 + # do not build profileable libstuff to save compile time
499 + sed -i -e "/^all:/s, profile , ," libstuff/Makefile
500 +
501 + # cctools version is provided to make via RC_ProjectSourceVersion which
502 + # generates and compiles it as apple_version[] into libstuff. From
503 + # there it's picked up by the individual tools. Since
504 + # RC_ProjectSourceVersion is also used as library version, we can't
505 + # just append our local version info. So we hack the libstuff Makefile
506 + # to include our Gentoo version.
507 + sed -i -e "/cctools-.*(RC_ProjectSourceVersion).*OFILE_DIR/s,Version),Version) (Gentoo ${PN}-${PVR})," \
508 + libstuff/Makefile
509 +
510 + eapply_user
511 +
512 + # clean up test suite
513 + cd "${S}"/${LD64}/unit-tests/test-cases
514 + local c
515 +
516 + # we don't have llvm
517 + ((++c)); rm -rf llvm-integration;
518 +
519 + # we don't have dtrace
520 + ((++c)); rm -rf dtrace-static-probes-coalescing;
521 + ((++c)); rm -rf dtrace-static-probes;
522 +
523 + # a file is missing
524 + ((++c)); rm -rf eh-coalescing-r
525 +
526 + # we don't do universal binaries
527 + ((++c)); rm -rf blank-stubs;
528 +
529 + # looks like a problem with apple's result-filter.pl
530 + ((++c)); rm -rf implicit-common3;
531 + ((++c)); rm -rf order_file-ans;
532 +
533 + # TODO no idea what goes wrong here
534 + ((++c)); rm -rf dwarf-debug-notes;
535 +
536 + einfo "Deleted $c tests that were bound to fail"
537 +
538 + cd "${S}"
539 + ebegin "cleaning Makefiles from unwanted CFLAGS"
540 + find . -name "Makefile" -print0 | xargs -0 sed \
541 + -i \
542 + -e 's/ -g / /g' \
543 + -e 's/^G =.*$/G =/' \
544 + -e 's/^OFLAG =.*$/OFLAG =/' \
545 + -e 's/install -c -s/install/g'
546 + eend $?
547 +}
548 +
549 +src_configure() {
550 + ENABLE_LTO=0
551 + use lto && ENABLE_LTO=1
552 +
553 + export CTARGET=${CTARGET:-${CHOST}}
554 + if [[ ${CTARGET} == ${CHOST} ]] ; then
555 + if [[ ${CATEGORY} == cross-* ]] ; then
556 + export CTARGET=${CATEGORY#cross-}
557 + fi
558 + fi
559 +
560 + LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV}
561 + INCPATH=${LIBPATH}/include
562 + DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV}
563 + if is_cross ; then
564 + BINPATH=/usr/${CHOST}/${CTARGET}/binutils-bin/${PV}
565 + else
566 + BINPATH=/usr/${CTARGET}/binutils-bin/${PV}
567 + fi
568 +
569 + # CPPFLAGS only affects ld64, cctools don't use 'em (which currently is
570 + # what we want)
571 + append-cppflags -DNDEBUG
572 +
573 + # Create configure.h for ld64 with SUPPORT_ARCH_<arch> defines in it.
574 + DERIVED_FILE_DIR=${LD64}/src \
575 + ${LD64}/src/create_configure
576 +}
577 +
578 +compile_ld64() {
579 + einfo "building ${LD64}"
580 + cd "${S}"/${LD64}/src
581 + emake \
582 + LTO=${ENABLE_LTO} \
583 + TAPI=$(use tapi && echo 1 || echo 0) \
584 + || die "emake failed for ld64"
585 + use test && emake build_test
586 +}
587 +
588 +compile_cctools() {
589 + einfo "building ${CCTOOLS}"
590 + cd "${S}"/${CCTOOLS}
591 + # Suppress running dsymutil because it will warn about missing debug
592 + # info which is expected when compiling without -g as we normally do.
593 + # This might need some more thought if anyone ever wanted to build us
594 + # for debugging with Apple's tools.
595 + emake \
596 + LIB_PRUNETRIE="-L../../${LD64}/src -lprunetrie" \
597 + EFITOOLS= \
598 + LTO="${ENABLE_LTO}" \
599 + LTO_LIBDIR=../../../lib \
600 + COMMON_SUBDIRS='libstuff ar misc otool' \
601 + SUBDIRS_32= \
602 + LEGACY= \
603 + RC_ProjectSourceVersion=${CCTOOLS_VERSION} \
604 + RC_CFLAGS="${CFLAGS}" \
605 + OFLAG="${CCTOOLS_OFLAG}" \
606 + DSYMUTIL=": disabled: dsymutil" \
607 + || die "emake failed for the cctools"
608 + cd "${S}"/${CCTOOLS}/as
609 + emake \
610 + BUILD_OBSOLETE_ARCH= \
611 + RC_ProjectSourceVersion=${CCTOOLS_VERSION} \
612 + RC_CFLAGS="-DASLIBEXECDIR=\"\\\"${EPREFIX}${LIBPATH}/\\\"\" -DCLANGDIR=\"\\\"${EPREFIX}/usr/bin/\\\"\" ${CFLAGS}" \
613 + OFLAG="${CCTOOLS_OFLAG}" \
614 + DSYMUTIL=": disabled: dsymutil" \
615 + || die "emake failed for as"
616 +}
617 +
618 +src_compile() {
619 + compile_ld64
620 + compile_cctools
621 +}
622 +
623 +install_ld64() {
624 + exeinto ${BINPATH}
625 + doexe "${S}"/${LD64}/src/{ld64,rebase,dyldinfo,unwinddump,ObjectDump}
626 + dosym ld64 ${BINPATH}/ld
627 + insinto ${DATAPATH}/man/man1
628 + doins "${S}"/${LD64}/doc/man/man1/{ld,ld64,rebase}.1
629 +}
630 +
631 +install_cctools() {
632 + cd "${S}"/${CCTOOLS}
633 + emake install_all_but_headers \
634 + EFITOOLS= \
635 + COMMON_SUBDIRS='ar misc otool' \
636 + SUBDIRS_32= \
637 + DSTROOT=\"${D}\" \
638 + BINDIR=\"${EPREFIX}\"${BINPATH} \
639 + LOCBINDIR=\"${EPREFIX}\"${BINPATH} \
640 + USRBINDIR=\"${EPREFIX}\"${BINPATH} \
641 + LOCLIBDIR=\"${EPREFIX}\"${LIBPATH} \
642 + MANDIR=\"${EPREFIX}\"${DATAPATH}/man/
643 + cd "${S}"/${CCTOOLS}/as
644 + emake install \
645 + BUILD_OBSOLETE_ARCH= \
646 + DSTROOT=\"${D}\" \
647 + USRBINDIR=\"${EPREFIX}\"${BINPATH} \
648 + LIBDIR=\"${EPREFIX}\"${LIBPATH} \
649 + LOCLIBDIR=\"${EPREFIX}\"${LIBPATH}
650 +
651 + # upstream is starting to replace classic binutils with llvm-integrated
652 + # ones. nm and size are now symlinks to llvm-{nm,size} while the classic
653 + # version is preserved as {nm,size}-classic.
654 + # Since our binutils do not live in the same directory as the llvm
655 + # installation, we have to rewrite the symlinks to the llvm tools.
656 + # This also means, that these tools still appear to be versioned via
657 + # binutils-config but actually always run the currently installed llvm
658 + # tool.
659 + budir=${D}/${EPREFIX}/${BINPATH}
660 + for tool in nm size ; do
661 + # ${EPREFIX}/usr/x86_64-apple-darwin15/binutils-bin/7.3/$tool
662 + # -> ${EPREFIX}/bin/llvm-$tool
663 + use classic && \
664 + ln -sfn ${tool}-classic "${budir}/${tool}" || \
665 + ln -sfn ../../../bin/llvm-${tool} "${budir}/${tool}"
666 + done
667 +
668 + # Also, otool is now based on llvm-objdump. But a small wrapper installed
669 + # as llvm-otool remains, providing command line compatibility.
670 + use classic && \
671 + ln -sfn otool-classic "${budir}/otool" || \
672 + ln -sfn llvm-otool "${budir}/otool"
673 +
674 + cd "${ED}"${BINPATH}
675 + insinto ${DATAPATH}/man/man1
676 + local skips manpage
677 + # ar brings an up-to-date manpage with it
678 + skips=( ar )
679 + for bin in *; do
680 + for skip in ${skips[@]}; do
681 + if [[ ${bin} == ${skip} ]]; then
682 + continue 2;
683 + fi
684 + done
685 + manpage=${S}/${CCTOOLS}/man/${bin}.1
686 + if [[ -f "${manpage}" ]]; then
687 + doins "${manpage}"
688 + fi
689 + done
690 + insinto ${DATAPATH}/man/man5
691 + doins "${S}"/${CCTOOLS}/man/*.5
692 +}
693 +
694 +src_test() {
695 + if ! [ "${EPREFIX}"/usr/bin/clang ] ; then
696 + einfo "Test suite only works properly with clang - please install"
697 + return
698 + fi
699 +
700 + einfo "Running unit tests"
701 + cd "${S}"/${LD64}/unit-tests/test-cases
702 + # provide the new ld as a symlink to clang so that -ccc-install-dir
703 + # will pick it up
704 + ln -sfn ../../src/ld64 ld
705 + # use our arch command because the System's will report i386 even for an
706 + # x86_64 prefix
707 + perl ../bin/make-recursive.pl \
708 + BUILT_PRODUCTS_DIR="${S}"/${LD64}/src \
709 + ARCH="$(arch)" \
710 + LD="${S}"/${LD64}/src/ld64 \
711 + CC="${CC} -ccc-install-dir $PWD" \
712 + CXX="${CXX} -ccc-install-dir $PWD" \
713 + OTOOL="${S}"/${CCTOOLS}/otool/otool.NEW \
714 + | perl ../bin/result-filter.pl
715 +}
716 +
717 +src_install() {
718 + install_ld64
719 + install_cctools
720 +
721 + cd "${S}"
722 + insinto /etc/env.d/binutils
723 + cat <<-EOF > env.d
724 + TARGET="${CHOST}"
725 + VER="${PV}"
726 + FAKE_TARGETS="${CHOST}"
727 + EOF
728 + newins env.d ${CHOST}-${PV}
729 +}
730 +
731 +pkg_postinst() {
732 + binutils-config ${CHOST}-${PV}
733 +}
734
735 diff --git a/sys-devel/binutils-apple/metadata.xml b/sys-devel/binutils-apple/metadata.xml
736 index 2b36ce133e..b6fa367652 100644
737 --- a/sys-devel/binutils-apple/metadata.xml
738 +++ b/sys-devel/binutils-apple/metadata.xml
739 @@ -11,5 +11,8 @@
740 <flag name="multitarget">Compile for non-standard target
741 architectures (ppc and ppc64) -- experimental, Gentoo
742 only</flag>
743 + <flag name="classic">Use nm, otool, etc. from this ebuild
744 + instead of llvm-based tools</flag>
745 + <flag name="tapi">Build against <pkg>sys-libs/tapi</pkg></flag>
746 </use>
747 </pkgmetadata>