donotmerge: build: Enable thread-local with glibc compat #18681

pull laanwj wants to merge 1 commits into bitcoin:master from laanwj:2020_04_thread_local_compat changing 1 files +2 −2
  1. laanwj commented at 11:34 AM on April 17, 2020: member

    I don't know when thread-local support was added. or whether disabling it is still necessary after the minimum glibc bump to 2.17 (see #18652).

    This is a test for doing gitian builds with thread-local support enabled.

  2. build: Enable thread-local with glibc compat c38bf659cf
  3. laanwj added the label Build system on Apr 17, 2020
  4. laanwj added the label Needs gitian build on Apr 17, 2020
  5. DrahtBot commented at 1:27 PM on April 17, 2020: member

    <!--e57a25ab6845829454e8d69fc972939a-->

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    <!--174a7506f384e20aa4161008e828411d-->

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    • #9245 (Drop IO priority to idle while reading blocks for peer requests and startup verification by luke-jr)

    If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

  6. DrahtBot commented at 12:50 AM on April 18, 2020: member

    <!--a722867cd34abeea1fadc8d60700f111-->

    Gitian builds

    File commit c2e53ff064dfec1eb5d9c3e481cbf03ca997c6ad<br>(master) commit a83cdcb73a088da011c4d15139af03852d932ac2<br>(master and this pull)
    bitcoin-0.20.99-aarch64-linux-gnu-debug.tar.gz 7e8881788dd40fbb...
    bitcoin-0.20.99-aarch64-linux-gnu.tar.gz 51df4c51c4a726af...
    bitcoin-0.20.99-arm-linux-gnueabihf-debug.tar.gz f8a56a57d7c567ca...
    bitcoin-0.20.99-arm-linux-gnueabihf.tar.gz 8c1d038a0c07f40c...
    bitcoin-0.20.99-osx-unsigned.dmg 7ada30b64aaa9c6f... 5038037186745bbe...
    bitcoin-0.20.99-osx64.tar.gz 3373d52afd20b76d... 09cbdba84c9d3430...
    bitcoin-0.20.99-riscv64-linux-gnu-debug.tar.gz ae41b2e01991e619...
    bitcoin-0.20.99-riscv64-linux-gnu.tar.gz 70dfa5a74b1fc779...
    bitcoin-0.20.99-win64-debug.zip b4de2916ea75f9ee... ba6d06b31e5912c6...
    bitcoin-0.20.99-win64-setup-unsigned.exe af075f5240977ffe... fc98a0a71e017642...
    bitcoin-0.20.99-win64.zip 35feb2529263920a... f56db9af4dfdf88b...
    bitcoin-0.20.99-x86_64-linux-gnu-debug.tar.gz d6f98a8696627c0f...
    bitcoin-0.20.99-x86_64-linux-gnu.tar.gz 5428a5e26da59e5e...
    bitcoin-0.20.99.tar.gz 24e8f3df67529c5a... f67c4288a5b393da...
    bitcoin-core-linux-0.21-res.yml 3cd8116f82e2a9a4...
    bitcoin-core-osx-0.21-res.yml 768a445721472ed9... 7acc6ec9ab0b3184...
    bitcoin-core-win-0.21-res.yml 96bc6fbdf4461da9... 9840fd66541d2fea...
    linux-build.log 2e522d991af68fca... 8896f8a4a13802de...
    osx-build.log fbf6d92c2d446f8f... 0a7a47e3b87de4e0...
    win-build.log f5a0a7d1b498c402... 6969e44ba260a38b...
    bitcoin-core-osx-0.21-res.yml.diff c57c5c1b46579d7e...
    bitcoin-core-win-0.21-res.yml.diff ffa9a6bae50534b2...
    linux-build.log.diff fc1da407005ecafe...
    osx-build.log.diff 83f590abc8178f9f...
    win-build.log.diff 515e72b59f84b4ce...
  7. DrahtBot removed the label Needs gitian build on Apr 18, 2020
  8. fanquake commented at 1:00 AM on April 18, 2020: member

    Looking at the Linux build log, this has failed with:

    Checking glibc back compat...
    bitcoind: symbol __cxa_thread_atexit_impl from unsupported version GLIBC_2.18
    bitcoind: failed IMPORTED_SYMBOLS
    bitcoin-cli: symbol __cxa_thread_atexit_impl from unsupported version GLIBC_2.18
    bitcoin-cli: failed IMPORTED_SYMBOLS
    bitcoin-tx: symbol __cxa_thread_atexit_impl from unsupported version GLIBC_2.18
    bitcoin-tx: failed IMPORTED_SYMBOLS
    bitcoin-wallet: symbol __cxa_thread_atexit_impl from unsupported version GLIBC_2.18
    bitcoin-wallet: failed IMPORTED_SYMBOLS
    test/test_bitcoin: symbol __cxa_thread_atexit_impl from unsupported version GLIBC_2.18
    test/test_bitcoin: failed IMPORTED_SYMBOLS
    bench/bench_bitcoin: symbol __cxa_thread_atexit_impl from unsupported version GLIBC_2.18
    bench/bench_bitcoin: failed IMPORTED_SYMBOLS
    qt/bitcoin-qt: symbol __cxa_thread_atexit_impl from unsupported version GLIBC_2.18
    

    __cxa_thread_atexit_impl is used for thread_local variable destruction:

    To implement this support, glibc defines __cxa_thread_atexit_impl exclusively for use by libstdc++ (which has the __cxa_thread_atexit to wrap around it), that registers destructors for thread_local variables in a list. Upon thread or process exit, the destructors are called in reverse order in which they were added.

    As suggested, this only became available in glibc 2.18. From the 2.18 release notes:

    • Add support for calling C++11 thread_local object destructors on thread and program exit. This needs compiler support for offloading C++11 destructor calls to glibc.
  9. laanwj commented at 1:05 PM on April 18, 2020: member

    Oh that's too bad. Well, good to know, thanks for diving into the output.

  10. laanwj closed this on Apr 18, 2020

  11. fanquake referenced this in commit 7d1a3bda21 on Apr 22, 2020
  12. sidhujag referenced this in commit e466d0eb3a on Apr 23, 2020
  13. DrahtBot locked this on Feb 15, 2022

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-13 15:14 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me