Skip to content

Instantly share code, notes, and snippets.

@willcl-ark
Created May 12, 2026 09:50
Show Gist options
  • Select an option

  • Save willcl-ark/674740cbf36077c9a5a8bfca77e4d70d to your computer and use it in GitHub Desktop.

Select an option

Save willcl-ark/674740cbf36077c9a5a8bfca77e4d70d to your computer and use it in GitHub Desktop.
ref: https://my.cdash.org/builds/3535291/build
• Cause: this is Darwin ranlib, not a capnp build problem.
ranlib is indexing static archives and warns when an archive member has no externally visible symbols:
ranlib: file: lib/libbitcoin_ipc.a(common.capnp.proxy-types.c++.o) has no symbols
Several of the warned objects are expected to be empty or symbol-free in this configuration:
- src/test/util/time.cpp only includes test/util/time.h
- src/deploymentstatus.cpp has only static_assert/compile-time checks
- src/sync.cpp emits nothing unless DEBUG_LOCKORDER or DEBUG_LOCKCONTENTION is enabled
- src/ipc/capnp/mining.cpp has an empty namespace mp {} after includes
- the generated common.capnp.proxy-* files can similarly be symbol-free depending on schema contents/templates
So no, I would not disable capnp on this platform just because of these warnings. Capnp is only part of the noise; the same warning appears for
non-capnp objects too.
The real issue is that CDash/CTest is classifying harmless Darwin archive-tool output as build warnings. Reasonable fixes are:
1. Add a CDash/CTest warning exception for this exact ranlib diagnostic.
2. Use a ranlib/archiver setup that does not print this diagnostic, if available in the Nix Darwin toolchain.
3. Longer term, avoid compiling intentionally empty/symbol-free .cpp files into static libraries, but that is a source/build-system cleanup and
not specific to your nightly platform.
For the nightly dashboard, I’d suppress the warning pattern rather than disable IPC/capnp.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment