diff options
author | fanquake <fanquake@gmail.com> | 2020-07-31 08:24:14 +0800 |
---|---|---|
committer | fanquake <fanquake@gmail.com> | 2020-07-31 08:52:03 +0800 |
commit | a4a279b4f368661ea7d2507dd963469f432f916c (patch) | |
tree | ffab1ceba4dd5a68b81fcbfd27b64d232e165c38 | |
parent | edec7f7c254294cd5c46ae5cf304353d458bb852 (diff) | |
parent | e60ef21b8a0f62ebc2e0bdbb5943fa80cc4d98b2 (diff) | |
download | bitcoin-a4a279b4f368661ea7d2507dd963469f432f916c.tar.xz |
Merge #19617: doc: Clang 8 or later is required with FORCE_USE_SYSTEM_CLANG
e60ef21b8a0f62ebc2e0bdbb5943fa80cc4d98b2 doc: Clang 8 or later is required with FORCE_USE_SYSTEM_CLANG (fanquake)
Pull request description:
The usage of pragmas within the macOS SDK requires LLVM Clang 8. This is
the same version as our prebuilt Clang, however the minimum is worth noting
here as they may diverge and/or expert users might expect they could use an
earlier version.
If you compile depends using `FORCE_USE_SYSTEM_CLANG=1` and Clang 7 you'll see output like:
```bash
In file included from kernel/qcore_mac_objc.mm:44:
In file included from /bitcoin/depends/SDKs/Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers/System/Library/Frameworks/AppKit.framework/Headers/NSText.h:9:
In file included from /bitcoin/depends/SDKs/Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers/System/Library/Frameworks/AppKit.framework/Headers/NSView.h:19:
In file included from /bitcoin/depends/SDKs/Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers/System/Library/Frameworks/AppKit.framework/Headers/NSResponder.h:10:
/bitcoin/depends/SDKs/Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers/System/Library/Frameworks/AppKit.framework/Headers/NSEvent.h:19:1: error:
expected 'push' or 'pop' after '#pragma clang attribute'
/bitcoin/depends/SDKs/Xcode-11.3.1-11C505-extracted-SDK-with-libcxx-headers/usr/include/os/availability.h:104:273: note: expanded from macro
'API_UNAVAILABLE_BEGIN'
...__API_UNAVAILABLE_BEGIN5, __API_UNAVAILABLE_BEGIN4, __API_UNAVAILABLE_BEGIN3, __API_UNAVAILABLE_BEGIN2, __API_UNAVAILABLE_BEGIN1, 0)(__VA_A...
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
```
I've got a [godbolt here](https://godbolt.org/z/j6r987) that contains a demo of the issue (based off the macOS SDK). It will compile with Clang 8 but not with Clang 7.
ACKs for top commit:
laanwj:
ACK e60ef21b8a0f62ebc2e0bdbb5943fa80cc4d98b2
Tree-SHA512: affc082a4b28d9cd102a844e10f63f55f0f20a9f840e5d8037a41470ad1ea83edc3075ce262b1d618c59c9b75445e52ddd9ba9f84c5ac3da9ce20681473c47b1
-rw-r--r-- | depends/README.md | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/depends/README.md b/depends/README.md index 11733024b1..2356e8be59 100644 --- a/depends/README.md +++ b/depends/README.md @@ -110,9 +110,9 @@ The following can be set when running make: `make FOO=bar` <dt>BUILD_ID_SALT</dt> <dd>Optional salt to use when generating build package ids</dd> <dt>FORCE_USE_SYSTEM_CLANG</dt> -<dd>(EXPERTS ONLY) When cross-compiling for macOS, use clang found in the -system's <code>$PATH</code> rather than the default prebuilt release of clang -from llvm.org</dd> +<dd>(EXPERTS ONLY) When cross-compiling for macOS, use Clang found in the +system's <code>$PATH</code> rather than the default prebuilt release of Clang +from llvm.org. Clang 8 or later is required.</dd> </dl> If some packages are not built, for example `make NO_WALLET=1`, the appropriate |