Skip to content

fix: link libexecinfo on BSDs; mark riscv64 unavailable - #21

Merged
cuihtlauac merged 1 commit into
mainfrom
fix-opam-ci-portability
Oct 25, 2026
Merged

cuihtlauac merged 1 commit into
mainfrom
fix-opam-ci-portability

Conversation

@cuihtlauac

Copy link
Copy Markdown
Member

What

Two portability fixes surfaced by opam-repository CI on #30964 (xgboost.0.2.3), independent of the -j 6 vendored-CMake cap already shipped in 0.2.3.

FreeBSD — link libexecinfo

The vendored build compiles and installs on FreeBSD 15.1, but the test executables fail at link:

ld: error: undefined symbol: backtrace
ld: error: undefined symbol: backtrace_symbols

backtrace / backtrace_symbols (used by XGBoost's bundled dmlc logging) are in libc on glibc and in libSystem on macOS, but on the BSDs they live in a separate libexecinfo. The vendored link flags now add -lexecinfo on FreeBSD/OpenBSD/NetBSD/DragonFly (libexecinfo is in FreeBSD base — no depext needed). The package stays available there.

riscv64 — mark unavailable

On debian-13,riscv64 (system libxgboost), the build succeeds and the alcotest suites pass, but the qcheck property executable crashes at runtime (prints its banner, then dies with no results). This is a separate ABI issue from the build/parallelism one. Exclude the arch (available: ... & arch != "riscv64") until the crash is diagnosed.

Follow-up

After merge: cut a new release and refresh ocaml/opam-repository#30964 via opam-publish so CI runs against these fixes.

🤖 Generated with Claude Code

Two opam-repository CI portability fixes (ocaml/opam-repository#30964),
separate from the vendored-build -j cap already in 0.2.3:

- FreeBSD: the vendored build compiled and installed, but the test
  executables failed to link with `undefined symbol: backtrace` /
  `backtrace_symbols`. Those symbols are in libc on glibc and in
  libSystem on macOS, but in a separate libexecinfo on the BSDs. Add
  `-lexecinfo` to the vendored link flags on FreeBSD/OpenBSD/NetBSD/
  DragonFly.

- riscv64: the property-test executable crashes at runtime on
  debian-13/riscv64 (the build succeeds and the alcotest suites pass) -
  a distinct ABI issue from the build. Mark the package unavailable on
  riscv64 until it is diagnosed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@cuihtlauac
cuihtlauac merged commit c1131d7 into main Oct 25, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant