Commit 2e6a225
committed
Merge #7184: build: target aarch64 over armv7, update to macOS 15.0 SDK (Xcode 16.0), add verification step to
1f64bad fix(build): include resource directory in search path for include resolution (Kittywhiskers Van Gogh)
d201e43 fix(build): unset `C{,PLUS}_INCLUDE_PATH` to avoid cross-toolchain conflict (Kittywhiskers Van Gogh)
98e244a build: add verification step after downloading macOS SDK (Kittywhiskers Van Gogh)
7e9df77 build: update to macOS 15.0 SDK from Xcode 16.0 (Kittywhiskers Van Gogh)
bfb638f build: make list of cross compilers more explicit, switch to ARMv8 (Kittywhiskers Van Gogh)
Pull request description:
## Additional Information
* Dependency for #7109
* To ensure our list of targets validated are matched with targets used for releases (see [`guix-start`](https://github.com/dashpay/dash/blob/1ea35a436d538c36380b6f3d3514091bf90bfaa8/contrib/containers/guix/scripts/guix-start#L29-L31)), we switch out `arm-linux-gnueabihf` with `aarch64-linux-gnu`, this is now reflected by changes to our GitHub CI configuration, build scripts, Guix CI action.
* Additionally, since [dash#7047](#7047), we can't assume our host is x86_64 and must update packages to explicitly mention the desired arch instead of relying on that assumption.
* As mentioned in [dash#6927](#6927), we need to update the macOS SDK to ensure we have standards-conformant definitions to deal with [dtolnay/cxx#1574](dtolnay/cxx#1574).
* This does result in us using a higher SDK version than used upstream, requiring us to update the source URLs to our own fallback servers as upstream is not expected to host this version of the consolidated SDK. **This has no effect on the target version of macOS, which will continue to be macOS 14.**
* SDKs shipped after Xcode 15.3 (15E204a) seem to have problems with Clang not able to determine the include paths correctly (see below for error). To resolve this issue, we now explicitly fetch the resource directory and add it to the includes list.
<details>
<summary>Build log:</summary>
```
In file included from conftest.cc:3:
In file included from /src/dash/depends/SDKs/Xcode-16.0-16A242d-extracted-SDK-with-libcxx-headers/usr/include/c++/v1/iostream:43:
[...]
In file included from /src/dash/depends/SDKs/Xcode-16.0-16A242d-extracted-SDK-with-libcxx-headers/usr/include/machine/_types.h:34:
/src/dash/depends/SDKs/Xcode-16.0-16A242d-extracted-SDK-with-libcxx-headers/usr/include/arm/_types.h:75:9: error: unknown type name 'ptrdiff_t'
75 | typedef ptrdiff_t __darwin_ptrdiff_t; /* ptr1 - ptr2 */
| ^
/src/dash/depends/SDKs/Xcode-16.0-16A242d-extracted-SDK-with-libcxx-headers/usr/include/arm/_types.h:85:9: error: unknown type name 'size_t'
85 | typedef size_t __darwin_size_t; /* sizeof() */
| ^
In file included from conftest.cc:3:
[...]
In file included from /src/dash/depends/SDKs/Xcode-16.0-16A242d-extracted-SDK-with-libcxx-headers/usr/include/c++/v1/__compare/three_way_comparable.h:12:
/src/dash/depends/SDKs/Xcode-16.0-16A242d-extracted-SDK-with-libcxx-headers/usr/include/c++/v1/__compare/common_comparison_category.h:40:11: error: reference to unresolved using declaration
40 | template <size_t _Size>
| ^
/src/dash/depends/SDKs/Xcode-16.0-16A242d-extracted-SDK-with-libcxx-headers/usr/include/c++/v1/cstddef:61:1: note: using declaration annotated with 'using_if_exists' here
61 | using ::size_t _LIBCPP_USING_IF_EXISTS;
| ^
[...]
In file included from conftest.cc:3:
[...]
In file included from /src/dash/depends/SDKs/Xcode-16.0-16A242d-extracted-SDK-with-libcxx-headers/usr/include/malloc/_malloc.h:44:
/src/dash/depends/SDKs/Xcode-16.0-16A242d-extracted-SDK-with-libcxx-headers/usr/include/malloc/_malloc_type.h:54:110: error: unknown type name 'size_t'; did you mean 'sig_t'?
54 | _MALLOC_TYPE_AVAILABILITY void * __sized_by_or_null(size) malloc_type_realloc(void * __unsafe_indexable ptr, size_t size, malloc_type_id_t type_id) __result_use_check __alloc_size(2);
| ^
/src/dash/depends/SDKs/Xcode-16.0-16A242d-extracted-SDK-with-libcxx-headers/usr/include/sys/signal.h:331:16: note: 'sig_t' declared here
331 | typedef void (*sig_t)(int); /* type of signal function */
| ^
```
</summary>
* Due to conflicting definitions between the native and cross toolchains, `C{,PLUS}_INCLUDE_PATH` needs to be unset to allow the cross toolchain's definitions to prevail (see build error below).
<details>
<summary>Build log:</summary>
```
In file included from conftest.cc:3:
In file included from /src/dash/depends/SDKs/Xcode-16.0-16A242d-extracted-SDK-with-libcxx-headers/usr/include/c++/v1/iostream:43:
[...]
In file included from /gnu/store/8xqflpdzl6vzj3sas35q0g1ayiz0895k-gcc-toolchain-13.3.0/include/bits/types/mbstate_t.h:4:
/gnu/store/8xqflpdzl6vzj3sas35q0g1ayiz0895k-gcc-toolchain-13.3.0/include/bits/types/__mbstate_t.h:21:3: error: typedef redefinition with different types ('struct __mbstate_t' vs 'union __mbstate_t')
21 | } __mbstate_t;
| ^
/src/dash/depends/SDKs/Xcode-16.0-16A242d-extracted-SDK-with-libcxx-headers/usr/include/i386/_types.h:94:3: note: previous definition is here
94 | } __mbstate_t;
| ^
1 error generated.
configure:10623: $? = 1
failed program was:
/* This test rejects g++ 2.7.2 which doesn't have <iostream>, only a
pre-standard iostream.h. */
#include <iostream>
```
</summary>
## Breaking Changes
None expected.
## Checklist
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas **(note: N/A)**
- [x] I have added or updated relevant unit/integration/functional/e2e tests
- [x] I have made corresponding changes to the documentation
- [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_
ACKs for top commit:
UdjinM6:
Compiles on macos, same hashes in Guix for ca6c6f5. Rebase to 1f64bad is clean.
light ACK 1f64bad
Tree-SHA512: fae43927cc72346a0eb87758c4292a329d48c4e86324fd4831a97ccea582c066d2d9aeafb0e209f2661122430d5ad0e6f3cf6d679926dbdc88945a05fc958dbdsetup-sdk
File tree
13 files changed
+62
-53
lines changed- .github/workflows
- ci
- dash
- test
- contrib
- containers
- ci
- deploy
- guix/scripts
- guix
- macdeploy
- depends/hosts
13 files changed
+62
-53
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
66 | | - | |
67 | | - | |
| 66 | + | |
| 67 | + | |
68 | 68 | | |
69 | 69 | | |
70 | 70 | | |
71 | 71 | | |
72 | | - | |
| 72 | + | |
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
| |||
131 | 131 | | |
132 | 132 | | |
133 | 133 | | |
134 | | - | |
135 | | - | |
| 134 | + | |
| 135 | + | |
136 | 136 | | |
137 | | - | |
| 137 | + | |
138 | 138 | | |
139 | | - | |
| 139 | + | |
140 | 140 | | |
141 | | - | |
142 | | - | |
143 | | - | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
144 | 144 | | |
145 | 145 | | |
146 | 146 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
75 | 75 | | |
76 | 76 | | |
77 | 77 | | |
78 | | - | |
| 78 | + | |
79 | 79 | | |
80 | 80 | | |
81 | 81 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
20 | | - | |
| 19 | + | |
| 20 | + | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
74 | | - | |
| 74 | + | |
75 | 75 | | |
76 | 76 | | |
77 | 77 | | |
| |||
Lines changed: 7 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
10 | 10 | | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
| 19 | + | |
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
27 | | - | |
28 | | - | |
| 26 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
12 | | - | |
13 | | - | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
| 22 | + | |
23 | 23 | | |
| 24 | + | |
24 | 25 | | |
25 | 26 | | |
26 | 27 | | |
| |||
Lines changed: 4 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
| 26 | + | |
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
33 | | - | |
| 33 | + | |
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
41 | | - | |
| 41 | + | |
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
| 10 | + | |
11 | 11 | | |
12 | 12 | | |
13 | | - | |
14 | | - | |
| 13 | + | |
| 14 | + | |
15 | 15 | | |
| 16 | + | |
16 | 17 | | |
17 | 18 | | |
18 | 19 | | |
| |||
21 | 22 | | |
22 | 23 | | |
23 | 24 | | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
24 | 30 | | |
25 | 31 | | |
26 | 32 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
249 | 249 | | |
250 | 250 | | |
251 | 251 | | |
252 | | - | |
| 252 | + | |
253 | 253 | | |
254 | 254 | | |
255 | 255 | | |
| |||
0 commit comments