Gentoo Archives: gentoo-alt

From: Michael Weiser <michael@×××××××××××××××.net>
To: gentoo-alt <gentoo-alt@l.g.o>
Subject: [gentoo-alt] clang 6.0.0 / lld Darwin
Date: Tue, 10 Apr 2018 21:15:46
Message-Id: 20180410210536.GB13347@weiser.dinsnail.net
1 Hi,
2
3 I recently upgraded my Prefix on x86_64-apple-darwin17 (macOS 10.13.4)
4 to clang 6.0.0 with only minor fallout (cmake doesn't build). I again
5 just duplicated libcxx and libcxxabi ebuilds. Slotting worked as
6 intended so that clang 5.0.1 remained available in case of problems.
7
8 LLVM however is depending on libcxx of the same major version:
9
10 kernel_Darwin? (
11 <sys-libs/libcxx-$(ver_cut 1-3).9999
12
13 This causes emerge trying to downgrade libcxx as long as llvm-5 remains
14 installed:
15
16 [nomerge ] sys-devel/llvm-5.0.1
17 [ebuild UD ] sys-libs/libcxx-5.0.1 [6.0.0]
18
19 sys-libs/libcxx:0
20
21 (sys-libs/libcxx-6.0.0:0/0::local, installed) pulled in by >=sys-libs/libcxx-6.0.0[...]
22 required by (sys-devel/clang-runtime-6.0.0-r1:6.0.0/6.0.0::gentoo_prefix, installed)
23
24 (sys-libs/libcxx-5.0.1:0/0::gentoo_prefix, ebuild scheduled for merge) pulled in by
25 <sys-libs/libcxx-5.0.1.9999 required by (sys-devel/llvm-5.0.1:5/5::gentoo_prefix, installed)
26
27 Is it a real thing that llvm needs a matching libcxx? The rest of the
28 prefix currently just assumes that @rpath/libc++.1.dylib remains
29 compatible on upgrade which has worked so far.
30
31 I've compared to the main Gentoo repo and synced the ebuilds for
32 libcxxabi and libcxx (requiring adjustment and installation of llvm-libunwind).
33 It's not slotted there either and should face the same problem. So I
34 guess this is still work in progress.
35
36 Because Apple still hasn't released any sources of Xcode 9, I took the
37 opportunity to look into lld and whether it could be used as a
38 replacement for ld64 yet. Unfortunately that doesn't work. Clang calls
39 it with ld64 options it does not emulate (which it's supposed to do) and
40 LLVM developers themselves say that development is stalled as recently
41 as April 2017[1]. So no luck there.
42
43 While binutils bfd seems to have some support for Mach-O now, binutils
44 ld still refuses to configure on Darwin.
45
46 [1] https://groups.google.com/forum/?_escaped_fragment_=msg/llvm-dev/rc7TWTY03Sc/z4SdD2G7AgAJ
47 --
48 Michael
49 I'm against it!