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: Tue, 29 Mar 2022 11:31:30
Message-Id: 1648553480.9ca9f406cf625ed40286adc4b900d3ca46eb41df.grobian@gentoo
1 commit: 9ca9f406cf625ed40286adc4b900d3ca46eb41df
2 Author: Fabian Groffen <grobian <AT> gentoo <DOT> org>
3 AuthorDate: Tue Mar 29 11:31:20 2022 +0000
4 Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org>
5 CommitDate: Tue Mar 29 11:31:20 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9ca9f406
7
8 sys-devel/binutils-apple: drop sys-libs/tapi dependency
9
10 Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>
11
12 sys-devel/binutils-apple/Manifest | 4 -
13 .../binutils-apple/binutils-apple-11.3.1-r1.ebuild | 378 ---------------------
14 .../binutils-apple/binutils-apple-8.2.1-r1.ebuild | 18 +-
15 .../binutils-apple-8.2.1-r101.ebuild | 8 +-
16 sys-devel/binutils-apple/metadata.xml | 1 -
17 5 files changed, 17 insertions(+), 392 deletions(-)
18
19 diff --git a/sys-devel/binutils-apple/Manifest b/sys-devel/binutils-apple/Manifest
20 index a6468db7cc6c..718995f313cf 100644
21 --- a/sys-devel/binutils-apple/Manifest
22 +++ b/sys-devel/binutils-apple/Manifest
23 @@ -1,4 +1,3 @@
24 -DIST binutils-apple-patches-11.3-r1.tar.bz2 9041 BLAKE2B c881117e19e119173dd8c126859f8ebab5ff4024697c9650b8ba145c021aa6e251086d3678d80fec2672e78637a5beca795b71ae871692e832ba4e69a7a8e04c SHA512 eda63cd89f67674556dc75de719cd318f534544db50165d4faac454f67c557c9944e7e024c4443e640f987ed8c8826ccd578427743a86d7220c2ba90ed2206d4
25 DIST binutils-apple-patches-3.2.6-r0.tar.bz2 3500 BLAKE2B f10dcf71400ea5d4bf7efb8ad906240765cfb56743274b3e1684eeb4273a35171aa4202d475920cff2c5c39e89f9bd1d7e5b0d38ba6c2b4705b0a592ba47e063 SHA512 4ccb8ebd49ac8eac4dbd0c1f24ee1836f216efd2e9e15b13072cbc76d8f83fbf4f1f6b3b60736bf5d5482af3e49ec1eaedfce8dd0ce1e949f915faf9c92ee0ea
26 DIST binutils-apple-patches-4.3-r1.tar.bz2 37363 BLAKE2B a5ad04d4bf746a864f03a25d052197ed9a6ecada1f34460f4e38bea8cd87dfe2cb6c7f99f2096acac2231cd1e0c13c53757854b07f729a7a0c5a162a908fbe83 SHA512 f5d64ad182891c3af971e6aabd3c0c1b717b6a1cb471632339cba61b41a998d15880d18de09aafa1c3d059e528c888d6e8b914025c79bc21897d90a6d0e2ebf5
27 DIST binutils-apple-patches-5.1-r2.tar.bz2 51642 BLAKE2B 1b44020a05e0a91cfe569273f1e3dc65afaeac4bcdb80a626bdcc1f30cf8fbba6cc7bb522ece93126d4035b2d309defefd17fe0cee5bcaadcc58c4fa0feb4827 SHA512 37ba0dcae6c10b54a07c6208f6893ab80b0de1bd1c2f677902f707c8290629f7671a481e256b57a18bf304b95e41e4d59519bc1c88f15de488c0ef7e142f5cd8
28 @@ -6,12 +5,9 @@ DIST binutils-apple-patches-7.3-r2.tar.bz2 44551 BLAKE2B 036cd2a2e4a66b046467f29
29 DIST binutils-apple-patches-8.2-r1.tar.bz2 10830 BLAKE2B 345db8619873e9e91b79c3fdc0685fc46f82366df0b6153c1a59fbe5c122622e799754397e980e8752ef01ef25bbac81bb8f0339e92168790211b1d9c03bef2d SHA512 e7ca8cbac75671846c044abcd5415cfcf5832ff71acd5a2799b643369b02f2f7148990398c51913a3758e589f9fbff875e333aadf568e2a8a2defeafaa2aca95
30 DIST cctools-795.tar.gz 1993795 BLAKE2B dc0915f8647eecba5352e34dfc5752b679df39ead9a4734c49955a824d2cc127308eed46a614665dfe08a9d3036eb37f587e1b765a7df727facc42a33befacb0 SHA512 5a34a73dc71d3574a357f6b0f26a48a99dd0995d62695b309cdfe85c4960934b410455b1ba6bdbc9a4e32106bb45b35555604975d2a80ad1be21f5d4eac69254
31 DIST cctools-895.tar.gz 1716126 BLAKE2B 9706a6b243518693888e5e21dfe8d83b217380b47db621a7f1b35105eb72fb8997353ff85133224b0856f6b6ec710f54a4fe79076d9e228f89c98b6f517de309 SHA512 4ef9db870385cc2c4263bcbe42ff0de80386771f5acbc7082a1818ecd6b8d7bb1bfa02a7fcfecd3e7281481aeaaac4c331359aca3564bfe7a4c7dea1e0d06126
32 -DIST cctools-949.0.1.tar.gz 1968671 BLAKE2B b38fbae5d2ec011a94c2e4ec299c1ecd173f2c2516664cf925b06aaa078e234b59068158ea29dfcbf763ca98c73bc1806a507fbbe49a8d4d0a2fd4e602f401ce SHA512 13c493a48852c980d2829d28616c18640ad5ebfe6acd55143c4c948665e0b65377a459560667074fdac5e69bb6360fea13d988303c49fd3dd4a58e9b5c54ebcb
33 DIST darwin-xtools-8.2.1-r101.tar.gz 3105898 BLAKE2B 3516cd252d4880b1e80c76365efef6f96830578bb5512befe33f86decdeb026fbad17fd3b27e9c3cf20d100897002e86ec08822041baa0291bb53e0b0ecf4d10 SHA512 f84cbde0853c14f03af40a124133d71d3e1710da021a593336eb4351c60edbca5753af0780f269ed4716cd194973f5437d428c5ff9615d9ce025dba3b7daef77
34 DIST dyld-132.13.tar.gz 342690 BLAKE2B 011418ba5b91a28bb7c5f8188af2fac5478bad53581396b7c1c4623a854a8f0d5ecb92d023246157830ed2db83bbf28e23225a255188e2d07eeb6c933814bda6 SHA512 2c9d50fc32868b696d88730eb6ea6afa9bb9f56883cc2ea4f1d41f370f311b7487a29ce0eff6761e1eeb086a18e2513953989d8d5d3ef1043bb662e86baadd3f
35 DIST dyld-421.2.tar.gz 625173 BLAKE2B 8f8325314861ae2ea10fbe78c74c7199b547973ac61a8e9cb76fb874a0e53395ea31c04e489f85ac7cfdb5715ae5051679453de75eb195e313113e7bbbc70340 SHA512 75f2fb840da980d44649aa3e045f50c4e37d4403fbdb1e2e5f1a85bf6d8859e1130053c3806f7ef992fdfc6573f7f18146263c690144bdd3df31452c6bdd8bd8
36 -DIST dyld-551.4.tar.gz 832297 BLAKE2B e65c5b2ed90af6ec94f1295efc984404af99f0e5dc666bfc854379f13fd2e98b8048fae84b7bc8864fe27112abf12f741a33cc404b18ae7c88b7abd6a1d9e3c6 SHA512 896281c4b2330c92ed538af58f1b60906ed0a9ffa3099a5e8ef9a15b7ed974259bf546fd2ab7562739f2c8cf1fdfb44ea0ea7567092c77f2ea2cab377da064b0
37 DIST ld64-274.2.tar.gz 671652 BLAKE2B f45bb65bbe65c7baff54dec633a49b8ea472a59a7978aa050b329132963b26e4a2b3ef3dd034b04247531a11a07de5135b3726a429165cbfcae50e06c09531f4 SHA512 7b4e17f199909450b697bf719564c6841d46f5116c48dd47ff483ae7ddfe2965db1b7c024ed8ebeeaf90cd983ed353b95f7f23c93c8971536977dc892e6d6a9d
38 -DIST ld64-530.tar.gz 744871 BLAKE2B 8117160ffe55c02b463559a52fcbd109629d6e2b4707f36391ec2151785cc1ab5be911129397af7bea05f06b2c718bc345a1e3b6b0838dae943f4083612af38f SHA512 0197ec05f9fbaf9e1902bb6e0819d0562573a433e0445809f1020e76126d3af57222a8e9e187fce793a5b581f825b48bfb5ec5cca9ae3eb77758cbc7f20e9e20
39 DIST ld64-97.17.tar.gz 421947 BLAKE2B 56820ef28490f2e0181d6e36b87506c6f00ae5759afe304a063fb6bd1904ace566ef4aa69ff0d235d65968af547a1a5735cb23bcefa990f418740188d399b637 SHA512 841774a1a7c0e2f661ac7e66703f7578d8f11274897ffa15f8c49daf290a23465763f264a4dae99f15754891f44c425c0d327652112007b499bc8f755a7fc9d6
40 DIST libunwind-30.tar.gz 82811 BLAKE2B 26993d6afa6930931c01b579326964a66832ed7a6ffa26eff10016c8d6d175d3b671753cf8700dcdbae7f0a9c01b16e9cbd3c9fe86697608f1f08a8eceb64782 SHA512 57106eafa1516791b4e0db2de6c6336bc0c1cbd8bf098a6d3a809fafa457802c95a7aeae9137f4ca5922a3018dfd8f597907ea4187b0afbbf267500eae00041f
41
42 diff --git a/sys-devel/binutils-apple/binutils-apple-11.3.1-r1.ebuild b/sys-devel/binutils-apple/binutils-apple-11.3.1-r1.ebuild
43 deleted file mode 100644
44 index 42f2f2808cb7..000000000000
45 --- a/sys-devel/binutils-apple/binutils-apple-11.3.1-r1.ebuild
46 +++ /dev/null
47 @@ -1,378 +0,0 @@
48 -# Copyright 1999-2021 Gentoo Authors
49 -# Distributed under the terms of the GNU General Public License v2
50 -
51 -EAPI="6"
52 -
53 -inherit eutils flag-o-matic toolchain-funcs llvm prefix
54 -
55 -# versions:
56 -# XCode-11.3.1 ld64-530 cctools-949.0.1
57 -# XCode-11.2.1 ld64-520 cctools-949.0.1
58 -# XCode-11.0 ld64-512.4 cctools-949.0.1
59 -# XCode-8.2.1 ld64-274.2 cctools-895 <== binutils-apple-8.2.1-r1 (2019)
60 -
61 -# macOS-10.15.6 dyld-750.6 Causes build failures with Xcode-11 tools
62 -# macOS-10.14.4-10.14.6 dyld-655.1.1 Causes build failures with Xcode-11 tools
63 -# macOS-10.13.6 dyld-551.4
64 -# macOS-10.12.1-10.12.3 dyld-421.2 <== binutils-apple-8.2.1-r1,8.1
65 -
66 -LD64=ld64-530
67 -CCTOOLS_VERSION=949.0.1
68 -CCTOOLS=cctools-${CCTOOLS_VERSION}
69 -DYLD=dyld-551.4
70 -
71 -DESCRIPTION="Darwin assembler as(1) and static linker ld(1), Xcode Tools ${PV}"
72 -HOMEPAGE="http://www.opensource.apple.com/"
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 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-4.3-r1.tar.bz2
77 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-5.1-r2.tar.bz2
78 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-7.3-r2.tar.bz2
79 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-8.2-r1.tar.bz2
80 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-11.3-r1.tar.bz2"
81 -
82 -LICENSE="APSL-2"
83 -KEYWORDS="~x64-macos"
84 -IUSE="lto classic test" # tapi is now required
85 -RESTRICT="!test? ( test )"
86 -
87 -# ld64 can now only be compiled using llvm and libc++ since it massively uses
88 -# C++11 language features. *But additionally* the as driver now defaults to
89 -# calling clang as the assembler on many platforms. This can be disabled using
90 -# -Wa,-Q but since it's default we make llvm a static runtime dependency.
91 -RDEPEND="sys-devel/binutils-config
92 - lto? ( app-arch/xar )
93 - sys-libs/tapi
94 - sys-devel/llvm:*
95 - sys-libs/libcxx"
96 -DEPEND="${RDEPEND}
97 - test? ( >=dev-lang/perl-5.8.8 )"
98 -
99 -SLOT="11"
100 -
101 -S=${WORKDIR}
102 -
103 -is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; }
104 -
105 -llvm_pkg_setup() {
106 - # eclass version will die if no LLVM can be found which will break prefix
107 - # bootstrap
108 - :
109 -}
110 -
111 -src_prepare() {
112 - cd "${S}"/${LD64}/src
113 - cp "${S}"/ld64-136-compile_stubs.h ld/compile_stubs.h
114 - cp "${S}"/ld64-530-Makefile Makefile
115 -
116 - epatch "${S}"/ld64-530-nolto.patch
117 - epatch "${S}"/ld64-236.3-crashreporter.patch
118 -
119 - # workound llvm-3.9.{0,1} issue
120 - # https://bugs.gentoo.org/show_bug.cgi?id=603580
121 - # https://groups.google.com/forum/#!topic/llvm-dev/JY6nuKE__sU
122 - # http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20160829/169553.html
123 - sed -i -e '/COMPILE_TIME_ASSERT/d' ld/parsers/libunwind/*.hpp || die
124 -
125 - # provide missing headers dyld
126 - mkdir -p include/mach-o || die
127 - # never present because it's private
128 - cp ../../${DYLD}/include/mach-o/dyld_priv.h include/mach-o || die
129 - # TARGET_OS_BRIDGE is undefined in TargetConditionals.h of newer MacOSX.sdk.
130 - # We don't target BridgeOS. Disable it to avoid errors when clang adds:
131 - # -Werror,-Wundef-prefix=TARGET_OS_
132 - sed -i -e 's/#if TARGET_OS_BRIDGE/#if 0/' include/mach-o/dyld_priv.h
133 -
134 - local VER_STR="\"@(#)PROGRAM:ld PROJECT:${LD64} (Gentoo ${PN}-${PVR})\\n\""
135 - echo "char ldVersionString[] = ${VER_STR};" > version.cpp
136 -
137 - cd "${S}"/${CCTOOLS}
138 - epatch "${S}"/${PN}-4.5-as.patch
139 - epatch "${S}"/${PN}-5.1-as-dir.patch
140 - epatch "${S}"/${PN}-5.1-ranlib.patch
141 - epatch "${S}"/${PN}-3.1.1-libtool-ranlib.patch
142 - epatch "${S}"/${PN}-3.1.1-no-headers.patch
143 - epatch "${S}"/${PN}-4.0-no-oss-dir.patch
144 - epatch "${S}"/cctools-839-intel-retf.patch
145 - epatch "${S}"/${PN}-5.1-extraneous-includes.patch
146 - epatch "${S}"/${PN}-5.1-strnlen.patch
147 - epatch "${S}"/${PN}-7.3-make-j.patch
148 - epatch "${S}"/${PN}-11.3.1-no-developertools-dir.patch
149 - epatch "${S}"/${PN}-11.3.1-llvm-prefix.patch
150 - epatch "${S}"/${PN}-11.3.1-llvm-shim.patch
151 - epatch "${S}"/${PN}-11.3.1-nolto-fix.patch # bugfix
152 - epatch "${S}"/${PN}-11.3.1-segaddrtable-fix.patch # bugfix
153 - eprefixify libstuff/execute.c
154 - cp ../${LD64}/src/other/prune_trie.h include/mach-o/ || die
155 -
156 - # do not build profileable libstuff to save compile time
157 - sed -i -e "/^all:/s, profile , ," libstuff/Makefile
158 -
159 - # bugfix. args.c not built but args_expand_at is used in misc/libtool.c
160 - sed -i -e "/^CFILES = /s, errors.c , errors.c args.c ," libstuff/Makefile
161 -
162 - # cctools version is provided to make via RC_ProjectSourceVersion which
163 - # generates and compiles it as apple_version[] into libstuff. From
164 - # there it's picked up by the individual tools. Since
165 - # RC_ProjectSourceVersion is also used as library version, we can't
166 - # just append our local version info. So we hack the libstuff Makefile
167 - # to include our Gentoo version.
168 - sed -i -e "/cctools-.*(RC_ProjectSourceVersion).*OFILE_DIR/s,Version),Version) (Gentoo ${PN}-${PVR})," \
169 - libstuff/Makefile
170 -
171 - eapply_user
172 -
173 - # clean up test suite
174 - cd "${S}"/${LD64}/unit-tests/test-cases
175 - local c
176 -
177 - # we don't have llvm
178 - ((++c)); rm -rf llvm-integration;
179 -
180 - # we don't have dtrace
181 - ((++c)); rm -rf dtrace-static-probes-coalescing;
182 - ((++c)); rm -rf dtrace-static-probes;
183 -
184 - # a file is missing
185 - ((++c)); rm -rf eh-coalescing-r
186 -
187 - # we don't do universal binaries
188 - ((++c)); rm -rf blank-stubs;
189 -
190 - # looks like a problem with apple's result-filter.pl
191 - ((++c)); rm -rf implicit-common3;
192 - ((++c)); rm -rf order_file-ans;
193 -
194 - # TODO no idea what goes wrong here
195 - ((++c)); rm -rf dwarf-debug-notes;
196 -
197 - einfo "Deleted $c tests that were bound to fail"
198 -
199 - cd "${S}"
200 - ebegin "cleaning Makefiles from unwanted CFLAGS"
201 - find . -name "Makefile" -print0 | xargs -0 sed \
202 - -i \
203 - -e 's/ -g / /g' \
204 - -e 's/"-g /"/g' \
205 - -e 's/^G =.*$/G =/' \
206 - -e 's/^OFLAG =.*$/OFLAG =/' \
207 - -e 's/install -c -s/install/g'
208 - eend $?
209 -}
210 -
211 -src_configure() {
212 - ENABLE_LTO=0
213 - if use lto ; then
214 - ENABLE_LTO=1
215 -
216 - LLVM_INCDIR=$(get_llvm_prefix)/include
217 - LLVM_LIBDIR=$(get_llvm_prefix)/lib
218 -
219 - [ -n "${LLVM_INCDIR}" -a -n "${LLVM_LIBDIR}" ] || \
220 - die "LLVM not found - LTO support can not be enabled"
221 -
222 - # LTO and LLVM support currently both depend only on libLTO being
223 - # present. So we can enable both.
224 - CCTOOLS_LTO_CFLAGS="-DLTO_SUPPORT -I${LLVM_INCDIR}"
225 - CCTOOLS_LLVM_CFLAGS="-DLLVM_SUPPORT -I${LLVM_INCDIR}"
226 - fi
227 -
228 - export CTARGET=${CTARGET:-${CHOST}}
229 - if [[ ${CTARGET} == ${CHOST} ]] ; then
230 - if [[ ${CATEGORY} == cross-* ]] ; then
231 - export CTARGET=${CATEGORY#cross-}
232 - fi
233 - fi
234 -
235 - LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV}
236 - DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV}
237 - if is_cross ; then
238 - BINPATH=/usr/${CHOST}/${CTARGET}/binutils-bin/${PV}
239 - else
240 - BINPATH=/usr/${CTARGET}/binutils-bin/${PV}
241 - fi
242 -
243 - export CCTOOLS_CPPFLAGS="${CPPFLAGS}"
244 - # CPPFLAGS only affects ld64, cctools don't use 'em (which currently is
245 - # what we want). Removed in compile_cctools.
246 - append-cppflags -DNDEBUG
247 -
248 - # Create configure.h for ld64 with SUPPORT_ARCH_<arch> defines in it.
249 - DERIVED_FILE_DIR=${LD64}/src \
250 - ${LD64}/src/create_configure
251 -}
252 -
253 -compile_ld64() {
254 - einfo "building ${LD64}"
255 - cd "${S}"/${LD64}/src
256 - emake \
257 - LTO=${ENABLE_LTO} \
258 - LTO_INCDIR=${LLVM_INCDIR} \
259 - LTO_LIBDIR=${LLVM_LIBDIR} \
260 - TAPI=1 \
261 - TAPI_LIBDIR="${EPREFIX}"/usr/lib
262 -
263 - use test && emake build_test
264 -}
265 -
266 -compile_cctools() {
267 - einfo "building ${CCTOOLS}"
268 - filter-flags -DNDEBUG
269 -
270 - cd "${S}"/${CCTOOLS}
271 - # Suppress running dsymutil because it will warn about missing debug
272 - # info which is expected when compiling without -g as we normally do.
273 - # This might need some more thought if anyone ever wanted to build us
274 - # for debugging with Apple's tools.
275 - emake \
276 - LIB_PRUNETRIE="-L../../${LD64}/src -lprunetrie" \
277 - EFITOOLS= \
278 - LTO="${CCTOOLS_LTO_CFLAGS} ${CCTOOLS_LLVM_CFLAGS}" \
279 - COMMON_SUBDIRS='libstuff ar misc otool' \
280 - SUBDIRS_32= \
281 - LEGACY= \
282 - RC_ProjectSourceVersion=${CCTOOLS_VERSION} \
283 - RC_CFLAGS="${CFLAGS}" \
284 - OFLAG="${CCTOOLS_OFLAG}" \
285 - DSYMUTIL=": disabled: dsymutil"
286 -
287 - cd "${S}"/${CCTOOLS}/as
288 - emake \
289 - BUILD_OBSOLETE_ARCH= \
290 - RC_ProjectSourceVersion=${CCTOOLS_VERSION} \
291 - RC_CFLAGS="-DASLIBEXECDIR=\"\\\"${EPREFIX}${LIBPATH}/\\\"\" ${CFLAGS}" \
292 - OFLAG="${CCTOOLS_OFLAG}" \
293 - DSYMUTIL=": disabled: dsymutil"
294 -}
295 -
296 -src_compile() {
297 - compile_ld64
298 - compile_cctools
299 -}
300 -
301 -install_ld64() {
302 - exeinto ${BINPATH}
303 - doexe "${S}"/${LD64}/src/{ld64,dyldinfo,unwinddump,ObjectDump,objcimageinfo,machocheck}
304 - dosym ld64 ${BINPATH}/ld
305 - insinto ${DATAPATH}/man/man1
306 - doins "${S}"/${LD64}/doc/man/man1/{ld,ld64,dyldinfo,unwinddump}.1
307 -}
308 -
309 -install_cctools() {
310 - cd "${S}"/${CCTOOLS}
311 - emake install_all_but_headers \
312 - EFITOOLS= \
313 - COMMON_SUBDIRS='ar misc otool' \
314 - SUBDIRS_32= \
315 - DSTROOT=\"${D}\" \
316 - BINDIR=\"${EPREFIX}\"${BINPATH} \
317 - LOCBINDIR=\"${EPREFIX}\"${BINPATH} \
318 - USRBINDIR=\"${EPREFIX}\"${BINPATH} \
319 - LOCLIBDIR=\"${EPREFIX}\"${LIBPATH} \
320 - MANDIR=\"${EPREFIX}\"${DATAPATH}/man/
321 - cd "${S}"/${CCTOOLS}/as
322 - emake install \
323 - BUILD_OBSOLETE_ARCH= \
324 - DSTROOT=\"${D}\" \
325 - USRBINDIR=\"${EPREFIX}\"${BINPATH} \
326 - LIBDIR=\"${EPREFIX}\"${LIBPATH} \
327 - LOCLIBDIR=\"${EPREFIX}\"${LIBPATH}
328 -
329 - # upstream is starting to replace classic binutils with llvm-integrated
330 - # ones. In Xcode, nm and size are now symlinks to llvm-{nm,size} while the
331 - # classic version is preserved as {nm,size}-classic. When asked to do so
332 - # by use classic we statically link to the classic version.
333 - # binutils-bin/<version>/<tool>
334 - # -> binutils-bin/<version>/<tool>-classic
335 - #
336 - # Otherwise we try to find and use the llvm version of the tool. Since our
337 - # binutils do not live in the same directory as the llvm installation and
338 - # llvm tends to move around, we use a shim that tries to find the llvm
339 - # version of the tool in prefix. It will fall back to the classic tool if
340 - # it fails.
341 - # binutils-bin/<version>/<tool>
342 - # -> binutils-bin/<version>/llvm-<tool>
343 - # -> $EPREFIX/usr/lib/llvm/<major/bin/llvm-<tool>
344 - # -> $EPREFIX/usr/bin/llvm-<tool>
345 - # -> binutils-bin/<version>/<tool>-classic
346 - budir=${D}/${EPREFIX}/${BINPATH}
347 - for tool in nm size ; do
348 - use classic && \
349 - ln -sfn ${tool}-classic "${budir}/${tool}" || \
350 - ln -sfn llvm-shim "${budir}/${tool}"
351 - done
352 -
353 - # Also, otool is now based on llvm-objdump. But a small wrapper installed
354 - # as llvm-otool remains, providing command line compatibility.
355 - use classic && \
356 - ln -sfn otool-classic "${budir}/otool" || \
357 - ln -sfn llvm-otool "${budir}/otool"
358 -
359 - # And finally, although our cctools don't actually contain dsymutil and
360 - # objdump, we provide access to the llvm versions of them via the shim to
361 - # be in line with Xcode.
362 - for tool in objdump dsymutil ; do
363 - ln -sfn llvm-shim "${budir}/${tool}"
364 - done
365 -
366 - cd "${ED}"${BINPATH}
367 - insinto ${DATAPATH}/man/man1
368 - local skips manpage
369 - # ar brings an up-to-date manpage with it
370 - skips=( ar )
371 - for bin in *; do
372 - for skip in ${skips[@]}; do
373 - if [[ ${bin} == ${skip} ]]; then
374 - continue 2;
375 - fi
376 - done
377 - manpage=${S}/${CCTOOLS}/man/${bin}.1
378 - if [[ -f "${manpage}" ]]; then
379 - doins "${manpage}"
380 - fi
381 - done
382 - insinto ${DATAPATH}/man/man5
383 - doins "${S}"/${CCTOOLS}/man/*.5
384 -}
385 -
386 -src_test() {
387 - if ! [ "${EPREFIX}"/usr/bin/clang ] ; then
388 - einfo "Test suite only works properly with clang - please install"
389 - return
390 - fi
391 -
392 - einfo "Running unit tests"
393 - cd "${S}"/${LD64}/unit-tests/test-cases
394 - # provide the new ld as a symlink to clang so that -ccc-install-dir
395 - # will pick it up
396 - ln -sfn ../../src/ld64 ld
397 - # use our arch command because the System's will report i386 even for an
398 - # x86_64 prefix
399 - perl ../bin/make-recursive.pl \
400 - BUILT_PRODUCTS_DIR="${S}"/${LD64}/src \
401 - ARCH="$(arch)" \
402 - LD="${S}"/${LD64}/src/ld64 \
403 - CC="${CC} -ccc-install-dir $PWD" \
404 - CXX="${CXX} -ccc-install-dir $PWD" \
405 - OTOOL="${S}"/${CCTOOLS}/otool/otool.NEW \
406 - | perl ../bin/result-filter.pl
407 -}
408 -
409 -src_install() {
410 - install_ld64
411 - install_cctools
412 -
413 - cd "${S}"
414 - insinto /etc/env.d/binutils
415 - cat <<-EOF > env.d
416 - TARGET="${CHOST}"
417 - VER="${PV}"
418 - FAKE_TARGETS="${CHOST}"
419 - EOF
420 - newins env.d ${CHOST}-${PV}
421 -}
422 -
423 -pkg_postinst() {
424 - binutils-config ${CHOST}-${PV}
425 -}
426
427 diff --git a/sys-devel/binutils-apple/binutils-apple-8.2.1-r1.ebuild b/sys-devel/binutils-apple/binutils-apple-8.2.1-r1.ebuild
428 index 3d5c7e8105dc..06e3523c934f 100644
429 --- a/sys-devel/binutils-apple/binutils-apple-8.2.1-r1.ebuild
430 +++ b/sys-devel/binutils-apple/binutils-apple-8.2.1-r1.ebuild
431 @@ -1,10 +1,21 @@
432 -# Copyright 1999-2021 Gentoo Authors
433 +# Copyright 1999-2022 Gentoo Authors
434 # Distributed under the terms of the GNU General Public License v2
435
436 EAPI="6"
437
438 inherit eutils flag-o-matic toolchain-funcs llvm prefix
439
440 +# versions:
441 +# XCode-11.3.1 ld64-530 cctools-949.0.1
442 +# XCode-11.2.1 ld64-520 cctools-949.0.1
443 +# XCode-11.0 ld64-512.4 cctools-949.0.1
444 +# XCode-8.2.1 ld64-274.2 cctools-895 <== binutils-apple-8.2.1-r1 (2019)
445 +
446 +# macOS-10.15.6 dyld-750.6 Causes build failures with Xcode-11 tools
447 +# macOS-10.14.4-10.14.6 dyld-655.1.1 Causes build failures with Xcode-11 tools
448 +# macOS-10.13.6 dyld-551.4
449 +# macOS-10.12.1-10.12.3 dyld-421.2 <== binutils-apple-8.2.1-r1,8.1
450 +
451 LD64=ld64-274.2
452 CCTOOLS_VERSION=895
453 CCTOOLS=cctools-${CCTOOLS_VERSION}
454 @@ -22,7 +33,7 @@ SRC_URI="http://www.opensource.apple.com/tarballs/ld64/${LD64}.tar.gz
455
456 LICENSE="APSL-2"
457 KEYWORDS="~x64-macos"
458 -IUSE="lto tapi classic test"
459 +IUSE="lto classic test"
460 RESTRICT="!test? ( test )"
461
462 # ld64 can now only be compiled using llvm and libc++ since it massively uses
463 @@ -31,7 +42,6 @@ RESTRICT="!test? ( test )"
464 # -Wa,-Q but since it's default we make llvm a static runtime dependency.
465 RDEPEND="sys-devel/binutils-config
466 lto? ( app-arch/xar )
467 - tapi? ( sys-libs/tapi )
468 sys-devel/llvm:*
469 sys-libs/libcxx"
470 DEPEND="${RDEPEND}
471 @@ -200,7 +210,7 @@ compile_ld64() {
472 LTO=${ENABLE_LTO} \
473 LTO_INCDIR=${LLVM_INCDIR} \
474 LTO_LIBDIR=${LLVM_LIBDIR} \
475 - TAPI=$(use tapi && echo 1 || echo 0) \
476 + TAPI=0 \
477 TAPI_LIBDIR="${EPREFIX}"/usr/lib
478
479 use test && emake build_test
480
481 diff --git a/sys-devel/binutils-apple/binutils-apple-8.2.1-r101.ebuild b/sys-devel/binutils-apple/binutils-apple-8.2.1-r101.ebuild
482 index 091e4e5990b4..da5d72becad1 100644
483 --- a/sys-devel/binutils-apple/binutils-apple-8.2.1-r101.ebuild
484 +++ b/sys-devel/binutils-apple/binutils-apple-8.2.1-r101.ebuild
485 @@ -1,4 +1,4 @@
486 -# Copyright 2020-2021 Gentoo Authors
487 +# Copyright 2020-2022 Gentoo Authors
488 # Distributed under the terms of the GNU General Public License v2
489
490 EAPI=7
491 @@ -14,14 +14,12 @@ SRC_URI="https://github.com/grobian/darwin-xtools/archive/gentoo-${PVR}.tar.gz -
492 LICENSE="APSL-2"
493 SLOT="8"
494 KEYWORDS="~ppc-macos ~x64-macos"
495 -IUSE="tapi"
496
497 # xtools uses c++11 features, not available in gcc-apple, hence gcc/clang dep
498 DEPEND="sys-devel/binutils-config
499 || ( sys-devel/gcc:* sys-devel/clang:* )
500 app-arch/xar
501 - tapi? ( sys-libs/tapi )
502 - !tapi? ( dev-libs/libyaml )"
503 + dev-libs/libyaml"
504 RDEPEND="${DEPEND}"
505 BDEPEND=""
506
507 @@ -65,7 +63,7 @@ src_configure() {
508 -DXTOOLS_LTO_SUPPORT=NO
509 -DXTOOLS_HAS_LIBPRUNETRIE=YES
510 -DXTOOLS_TAPI_SUPPORT=ON
511 - -DXTOOLS_USE_TAPILITE=$(use tapi && echo OFF || echo ON)
512 + -DXTOOLS_USE_TAPILITE=ON
513 -DXTOOLS_HOST_IS_64B=$(is-host-64bit)
514 -DXTOOLS_BUGURL="https://bugs.gentoo.org/"
515 )
516
517 diff --git a/sys-devel/binutils-apple/metadata.xml b/sys-devel/binutils-apple/metadata.xml
518 index e43e477505d4..481c99bd5bd5 100644
519 --- a/sys-devel/binutils-apple/metadata.xml
520 +++ b/sys-devel/binutils-apple/metadata.xml
521 @@ -9,6 +9,5 @@
522 <flag name="lto">Add support for Link-Time Optimization with LLVM</flag>
523 <flag name="classic">Use nm, otool, etc. from this ebuild
524 instead of llvm-based tools</flag>
525 - <flag name="tapi">Build against <pkg>sys-libs/tapi</pkg></flag>
526 </use>
527 </pkgmetadata>