Gentoo Archives: gentoo-alt

From: Michael Weiser <michael@×××××××××××××××.net>
To: gentoo-alt@l.g.o
Subject: Re: [gentoo-alt] [PREFIX] bootstrap status
Date: Tue, 09 Jan 2018 17:00:49
Message-Id: 20180109165711.GD17686@weiser.dinsnail.net
In Reply to: [gentoo-alt] [PREFIX] bootstrap status by Fabian Groffen
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