ci: add OpenBSD Clang cross job #35397

pull fanquake wants to merge 2 commits into bitcoin:master from fanquake:openbsd_clang_cross changing 4 files +63 −21
  1. fanquake commented at 3:27 PM on May 27, 2026: member

    This adds a Linux cross job for OpenBSD; similar to #34491 (FreeBSD). Depends Qt builds, but CMake can't seem to find it, so I have dropped Qt for now. bitcoin-chainstate and test_kernel currently fail to link when I run this locally (aarch64):

    [ 69%] Linking CXX executable ../../../bin/test_kernel
    ld.lld: error: non-exported symbol '__cxa_atexit' in '/ci_container_base/depends/SDKs/openbsd-x86_64-unknown-openbsd-7.9/usr/lib/libc.a(atexit.o)' is referenced by DSO '../../../lib/libbitcoinkernel.so'
    ld.lld: error: non-exported symbol '__stack_smash_handler' in '/ci_container_base/depends/SDKs/openbsd-x86_64-unknown-openbsd-7.9/usr/lib/libc.a(stack_protector.o)' is referenced by DSO '../../../lib/libbitcoinkernel.so'
    ld.lld: error: non-exported symbol '__assert2' in '/ci_container_base/depends/SDKs/openbsd-x86_64-unknown-openbsd-7.9/usr/lib/libc.a(assert.o)' is referenced by DSO '../../../lib/libbitcoinkernel.so'
    ld.lld: error: non-exported symbol 'free' in '/ci_container_base/depends/SDKs/openbsd-x86_64-unknown-openbsd-7.9/usr/lib/libc.a(malloc.o)' is referenced by DSO '../../../lib/libbitcoinkernel.so'
    ld.lld: error: non-exported symbol 'memset' in '/ci_container_base/depends/SDKs/openbsd-x86_64-unknown-openbsd-7.9/usr/lib/libc.a(memset.o)' is referenced by DSO '../../../lib/libbitcoinkernel.so'
    ld.lld: error: non-exported symbol 'memcpy' in '/ci_container_base/depends/SDKs/openbsd-x86_64-unknown-openbsd-7.9/usr/lib/libc.a(memcpy.o)' is referenced by DSO '../../../lib/libbitcoinkernel.so'
    ld.lld: error: non-exported symbol 'memmove' in '/ci_container_base/depends/SDKs/openbsd-x86_64-unknown-openbsd-7.9/usr/lib/libc.a(memmove.o)' is referenced by DSO '../../../lib/libbitcoinkernel.so'
    ld.lld: error: non-exported symbol 'strlen' in '/ci_container_base/depends/SDKs/openbsd-x86_64-unknown-openbsd-7.9/usr/lib/libc.a(strlen.o)' is referenced by DSO '../../../lib/libbitcoinkernel.so'
    ld.lld: error: non-exported symbol 'malloc' in '/ci_container_base/depends/SDKs/openbsd-x86_64-unknown-openbsd-7.9/usr/lib/libc.a(malloc.o)' is referenced by DSO '../../../lib/libbitcoinkernel.so'
    ld.lld: error: non-exported symbol 'realloc' in '/ci_container_base/depends/SDKs/openbsd-x86_64-unknown-openbsd-7.9/usr/lib/libc.a(malloc.o)' is referenced by DSO '../../../lib/libbitcoinkernel.so'
    ld.lld: error: non-exported symbol 'memcmp' in '/ci_container_base/depends/SDKs/openbsd-x86_64-unknown-openbsd-7.9/usr/lib/libc.a(memcmp.o)' is referenced by DSO '../../../lib/libbitcoinkernel.so'
    ld.lld: error: non-exported symbol 'abort' in '/ci_container_base/depends/SDKs/openbsd-x86_64-unknown-openbsd-7.9/usr/lib/libc.a(abort.o)' is referenced by DSO '../../../lib/libbitcoinkernel.so'
    ld.lld: error: non-exported symbol 'vsnprintf' in '/ci_container_base/depends/SDKs/openbsd-x86_64-unknown-openbsd-7.9/usr/lib/libc.a(vsnprintf.o)' is referenced by DSO '../../../lib/libbitcoinkernel.so'
    ld.lld: error: non-exported symbol 'fseek' in '/ci_container_base/depends/SDKs/openbsd-x86_64-unknown-openbsd-7.9/usr/lib/libc.a(fseek.o)' is referenced by DSO '../../../lib/libbitcoinkernel.so'
    ld.lld: error: non-exported symbol 'fclose' in '/ci_container_base/depends/SDKs/openbsd-x86_64-unknown-openbsd-7.9/usr/lib/libc.a(fclose.o)' is referenced by DSO '../../../lib/libbitcoinkernel.so'
    ld.lld: error: non-exported symbol 'setbuf' in '/ci_container_base/depends/SDKs/openbsd-x86_64-unknown-openbsd-7.9/usr/lib/libc.a(setbuf.o)' is referenced by DSO '../../../lib/libbitcoinkernel.so'
    ld.lld: error: non-exported symbol 'fwrite' in '/ci_container_base/depends/SDKs/openbsd-x86_64-unknown-openbsd-7.9/usr/lib/libc.a(fwrite.o)' is referenced by DSO '../../../lib/libbitcoinkernel.so'
    ld.lld: error: non-exported symbol '__stdout' in '/ci_container_base/depends/SDKs/openbsd-x86_64-unknown-openbsd-7.9/usr/lib/libc.a(findfp.o)' is referenced by DSO '../../../lib/libbitcoinkernel.so'
    ld.lld: error: non-exported symbol 'fflush' in '/ci_container_base/depends/SDKs/openbsd-x86_64-unknown-openbsd-7.9/usr/lib/libc.a(fflush.o)' is referenced by DSO '../../../lib/libbitcoinkernel.so'
    ld.lld: error: non-exported symbol 'fread' in '/ci_container_base/depends/SDKs/openbsd-x86_64-unknown-openbsd-7.9/usr/lib/libc.a(fread.o)' is referenced by DSO '../../../lib/libbitcoinkernel.so'
    ld.lld: error: too many errors emitted, stopping now (use --error-limit=0 to see all errors)
    clang++: error: linker command failed with exit code 1 (use -v to see invocation)
    
  2. DrahtBot added the label Tests on May 27, 2026
  3. DrahtBot commented at 3:27 PM on May 27, 2026: contributor

    <!--e57a25ab6845829454e8d69fc972939a-->

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

    <!--006a51241073e994b41acfe9ec718e94-->

    Code Coverage & Benchmarks

    For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/35397.

    <!--021abf342d371248e50ceaed478a90ca-->

    Reviews

    See the guideline for information on the review process.

    Type Reviewers
    Concept ACK sedited

    If your review is incorrectly listed, please copy-paste <code>&lt;!--meta-tag:bot-skip--&gt;</code> into the comment that the bot should ignore.

    <!--174a7506f384e20aa4161008e828411d-->

    Conflicts

    No conflicts as of last run.

    <!--5faf32d7da4f0f540f40219e4f7537a3-->

  4. fanquake commented at 3:27 PM on May 27, 2026: member

    bitcoin-chainstate and test_kernel currently fail to link

    cc @sedited

  5. DrahtBot added the label CI failed on May 27, 2026
  6. DrahtBot commented at 4:24 PM on May 27, 2026: contributor

    <!--85328a0da195eb286784d51f73fa0af9-->

    🚧 At least one of the CI tasks failed. <sub>Task OpenBSD Cross: https://github.com/bitcoin/bitcoin/actions/runs/26520966708/job/78111604124</sub> <sub>LLM reason (✨ experimental): ld.lld failed to link bitcoin-chainstate due to “non-exported symbol” errors from the OpenBSD SDK’s libc.a (e.g., __cxa_atexit, malloc, memcpy, strlen).</sub>

    <details><summary>Hints</summary>

    Try to run the tests locally, according to the documentation. However, a CI failure may still happen due to a number of reasons, for example:

    • Possibly due to a silent merge conflict (the changes in this pull request being incompatible with the current code in the target branch). If so, make sure to rebase on the latest commit of the target branch.

    • A sanitizer issue, which can only be found by compiling with the sanitizer and running the affected test.

    • An intermittent issue.

    Leave a comment here, if you need help tracking down a confusing failure.

    </details>

  7. sedited commented at 5:50 PM on May 27, 2026: contributor

    Concept ACK

    I guess a similar treatment could also be done for freebsd.

  8. fanquake commented at 9:03 AM on May 28, 2026: member

    I guess a similar treatment could also be done for freebsd.

    Do you mean NetBSD? We added a Clang cross FreeBSD job in #34491.

  9. fanquake force-pushed on May 28, 2026
  10. in .github/workflows/ci.yml:540 in 44d10a78eb outdated
     550 | +            warp-runner: 'warp-ubuntu-latest-x64-16x'
     551 |              fallback-runner: 'ubuntu-24.04'
     552 |              timeout-minutes: 120
     553 |              file-env: './ci/test/00_setup_env_native_msan.sh'
     554 |  
     555 | +          - name: 'OpenBSD Cross'
    


    maflcko commented at 4:34 PM on May 28, 2026:

    nit: Can you move this one up, so that the bsd ones are nicely grouped?


    fanquake commented at 4:38 PM on May 28, 2026:

    Moved up

  11. in .github/workflows/ci.yml:542 in 44d10a78eb outdated
     552 |              timeout-minutes: 120
     553 |              file-env: './ci/test/00_setup_env_native_msan.sh'
     554 |  
     555 | +          - name: 'OpenBSD Cross'
     556 | +            warp-runner: 'warp-ubuntu-latest-x64-8x'
     557 | +            fallback-runner: 'ubuntu-24.04'
    


    maflcko commented at 4:35 PM on May 28, 2026:

    unrelated nit: Seems odd that wrap is using -latest-, but fallback is using Noble.

    Could add a prepare-commit to move all GH fallback ones to -latest as well?


    maflcko commented at 4:36 PM on May 28, 2026:

    Also, since you are touching "CI", could address the nit from #35378#pullrequestreview-4382590112? but feel free to ignore those nits, not important


    fanquake commented at 8:07 AM on May 29, 2026:

    Put both into #35408

  12. fanquake force-pushed on May 28, 2026
  13. fanquake force-pushed on May 28, 2026
  14. fanquake commented at 4:39 PM on May 28, 2026: member

    Depends Qt builds, but CMake can't seem to find it, so I have dropped Qt for now.

    cc @hebasto, you might want to have a look here.

  15. fanquake force-pushed on May 29, 2026
  16. maflcko commented at 9:20 AM on May 29, 2026: member

    I guess a similar treatment could also be done for freebsd.

    Do you mean NetBSD?

    Yeah, given that apparently all three of them can run into unrelated/orthogonal(?) build issues, it could make sense to check all of them

  17. sedited commented at 9:23 AM on May 29, 2026: contributor

    Do you mean NetBSD? We added a Clang cross FreeBSD job in #34491.

    Yes, not sure why I confused them.

  18. fanquake commented at 1:42 PM on May 29, 2026: member

    Put up something for NetBSD here: #35412.

  19. fanquake referenced this in commit 214ad1761b on May 29, 2026
  20. depends: openBSD cross with Clang 9bb19b65bf
  21. ci: add openBSD cross CI job 5fde8201a1
  22. fanquake force-pushed on May 29, 2026

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-05-31 17:50 UTC

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