1 |
Hello Fabian, |
2 |
|
3 |
On Tue, Jan 09, 2018 at 04:58:56PM +0100, Fabian Groffen wrote: |
4 |
|
5 |
> During the small break at the end of last year and beginning of this |
6 |
> year, I've managed to get bootstrapping on Prefix running again. In |
7 |
> particular, thanks Michael Weiser for his continued support for macOS. |
8 |
|
9 |
Thanks for *your* time! At one point it positively felt like playing |
10 |
bugzilla ping-pong getting things done. |
11 |
|
12 |
> I've myself successfully bootstrapped: |
13 |
> - x64-macos on macOS High Sierra (Sierra to be tested) |
14 |
|
15 |
I had a bootstrap succeed without problems on Yosemite as well. |
16 |
|
17 |
> bootstrap path wasn't maintained for a while, and I'm currently trying |
18 |
> to figure out how to continue from a llvm-4.3.2/libcxx-3.5.1 environment |
19 |
> to get at least a proper functioning c++ environment. This is fun(tm). |
20 |
|
21 |
I tried this on both 10.5 and 10.6 Intel and ran into various problems. |
22 |
Due to lack of an actual use-case I broke it off when these popped up: |
23 |
|
24 |
10.5: llvm-3.4.2-r100 sanitizers failed to compile with: |
25 |
|
26 |
/Users/michael/Gentoo/tmp/var/tmp/portage/sys-devel/llvm-3.4.2-r100/work/llvm-3.4.2.src/projects/compiler-rt/lib/sanitizer_common/sanitizer_p |
27 |
latform_limits_posix.cc:839:1: error: |
28 |
'assertion_failed__839' declared as an array with a negative size |
29 |
CHECK_SIZE_AND_OFFSET(dirent, d_ino); |
30 |
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
31 |
|
32 |
It think last time around we just disabled the sanitizers. |
33 |
|
34 |
10.6: clang/llvm/libcxx's insistance on compiling themselves 32/64bit |
35 |
universal showcased again that our crt1.o's aren't: |
36 |
|
37 |
: && /Users/michael/Gentoo/tmp/bin/x86_64-apple-darwin10-clang++ |
38 |
-O2 -pipe -std=c++11 -stdlib=libc++ |
39 |
-I/Users/michael/Gentoo/usr/include/c++1/v1 |
40 |
-I/Users/michael/Gentoo/tmp/usr/include/c++1/v1 -arch i386 -arch x86_64 |
41 |
^^^ BTW: hack via CXXFLAGS to get libc++'s headers found |
42 |
|
43 |
-std=c++11 -Wl,-search_paths_first -Wl,-headerpad_max_install_names |
44 |
-stdlib=libc++ -L/Users/michael/Gentoo/usr/lib |
45 |
-L/Users/michael/Gentoo/tmp/usr/lib |
46 |
CMakeFiles/cmTC_a21b4.dir/testCXXCompiler.cxx.o -o cmTC_a21b4 && : |
47 |
ld: warning: ignoring file |
48 |
/Users/michael/Gentoo/usr/lib/crt1.10.6.o, file was built for |
49 |
unsupported file format ( 0xCF 0xFA 0xED 0xFE 0x07 0x00 0x00 0x01 0x03 |
50 |
0x00 0x00 0x00 0x01 0x00 0x00 0x00 ) which is not the architecture being |
51 |
linked (i386): /Users/michael/Gentoo/usr/lib/crt1.10.6.o |
52 |
Undefined symbols for architecture i386: |
53 |
"start", referenced from: |
54 |
implicit entry/start for main executable |
55 |
ld: symbol(s) not found for architecture i386 |
56 |
clang: error: linker command failed with exit code 1 (use -v to see |
57 |
invocation) |
58 |
ninja: build stopped: subcommand failed. |
59 |
|
60 |
So we'd either need fat crt1.o's or compile the toolchain slim (which |
61 |
would also speed up the build I expect). |
62 |
|
63 |
IIRC crt1.o isn't used anymore from 10.7 onwards so this problem should |
64 |
be moot for later systems. |
65 |
-- |
66 |
Michael |