diff options
author | fanquake <fanquake@gmail.com> | 2020-06-29 11:24:25 +0800 |
---|---|---|
committer | fanquake <fanquake@gmail.com> | 2020-06-29 11:31:17 +0800 |
commit | 9952242c03fe587b5dff46a9f770e319146103bf (patch) | |
tree | 6177b4850642e0ed13144fe421cd2b3dc07e6497 /src/crypto/common.h | |
parent | d3a5dbfd1f18b89dd990ee83ece7c1dd9ba94b1a (diff) | |
download | bitcoin-9952242c03fe587b5dff46a9f770e319146103bf.tar.xz |
build: improve builtin_clz* detection
The way we currently test with AC_CHECK_DECLS do not work with Clang:
```bash
configure:21492: clang++-10 -std=c++11 -c -g -O2 -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS conftest.cpp >&5
conftest.cpp:100:10: error: builtin functions must be directly called
(void) __builtin_clz;
^
1 error generated.
```
This also removes the __builtin_clz() check, as we don't actually use
it anywhere, and it's trvial to re-add detection if we do start using
it at some point.
Diffstat (limited to 'src/crypto/common.h')
-rw-r--r-- | src/crypto/common.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/crypto/common.h b/src/crypto/common.h index e7bb020a19..5b4932c992 100644 --- a/src/crypto/common.h +++ b/src/crypto/common.h @@ -82,12 +82,12 @@ void static inline WriteBE64(unsigned char* ptr, uint64_t x) /** Return the smallest number n such that (x >> n) == 0 (or 64 if the highest bit in x is set. */ uint64_t static inline CountBits(uint64_t x) { -#if HAVE_DECL___BUILTIN_CLZL +#if HAVE_BUILTIN_CLZL if (sizeof(unsigned long) >= sizeof(uint64_t)) { return x ? 8 * sizeof(unsigned long) - __builtin_clzl(x) : 0; } #endif -#if HAVE_DECL___BUILTIN_CLZLL +#if HAVE_BUILTIN_CLZLL if (sizeof(unsigned long long) >= sizeof(uint64_t)) { return x ? 8 * sizeof(unsigned long long) - __builtin_clzll(x) : 0; } |