You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
677fb8e test: Add ubsan surpression for crc32c (Wladimir J. van der Laan)
8e68bb1 build: Disable msvc warning 4722 for leveldb build (Aaron Clauson)
be23949 build: MSVC changes for leveldb update (Aaron Clauson)
9ebdf04 build: CRC32C build system integration (Wladimir J. van der Laan)
402252a build: Add LCOV exception for crc32c (Wladimir J. van der Laan)
3a037d0 test: Add crc32c exception to various linters and generation scripts (Wladimir J. van der Laan)
84ff1b2 test: Add crc32c to subtree check linter (Wladimir J. van der Laan)
7cf13a5 doc: Add crc32c subtree to developer notes (Wladimir J. van der Laan)
24d02a9 build: Update build system for new leveldb (Wladimir J. van der Laan)
2e18193 Squashed 'src/crc32c/' content from commit 224988680f7673cd7c769963d4035cb315aa3388 (Wladimir J. van der Laan)
6648082 Squashed 'src/leveldb/' changes from f545dfabff4c2e9836efed094dba99a34fbc6b88..f8ae182c1e5176d12e816fb2217ae33a5472fdd7 (Wladimir J. van der Laan)
Pull request description:
This updates leveldb to currently newest upstream commit bitcoin-core/leveldb-subtree@0c40829:
- CRC32C hardware acceleration is now an external library [crc32c](https://github.com/google/crc32c). This adds acceleration on ARM, and should be faster on x86 because of using prefetch. It also makes it easy to support similar instruction sets on other platforms in the future.
- Thread handling uses C++11, instead of platform specific code.
- Native windows environment was added. No need to maintain our own hacky one, anymore.
- Upstream now builds using CMake. This doesn't mean we need to use that (phew), but internal configuration changed to a a series of checks, instead of OS profiles. This means the blanket error "Cannot build leveldb for $host. Please file a bug report' is removed.
All changes: google/leveldb@a53934a...0c40829
Pretty much all our changes have been subsumed by upstream, so we figured it was cleaner to start over with a new branch from upstream with the still-relevant patches applied: https://github.com/bitcoin-core/leveldb/tree/bitcoin-fork-new
There's quite some testing to be done (see below). See bitcoin-core/leveldb-subtree#25 and bitcoin-core/leveldb-subtree#26 for more history and context.
TODO:
- [x] Subtree `crc32c`
- [x] Make linters happy about crc32 subtree
- [x] Integrate `crc32c` library into build system
- [x] MSVC build system
ACKs for top commit:
sipa:
ACK 677fb8e
Tree-SHA512: 37ee92a750e053e924bc4626b12bb3fd81faa9f8c5ebaa343931fee810c45ba05aa6051fdea82535fa351bf2be7297801b98af9469865fc5ead771650a5d6240
0 commit comments