Bug #1428
openConfiguration doesn't catch missing -lnuma dependency
0%
Description
When compiling lttng-tools the build fails because of a missing dependency (-lnuma):
Making all in lttng-consumerd make[3]: Entering directory '/home/erica/lttng-tools/src/bin/lttng-consumerd' CXXLD lttng-consumerd /usr/bin/ld: cannot find -lnuma: No such file or directory collect2: error: ld returned 1 exit status make[3]: *** [Makefile:657: lttng-consumerd] Error 1 make[3]: Leaving directory '/home/erica/lttng-tools/src/bin/lttng-consumerd' make[2]: *** [Makefile:587: all-recursive] Error 1 make[2]: Leaving directory '/home/erica/lttng-tools/src/bin' make[1]: *** [Makefile:580: all-recursive] Error 1 make[1]: Leaving directory '/home/erica/lttng-tools/src' make: *** [Makefile:695: all-recursive] Error 1
This is unexpected since the configuration step was successful (which, based on my understanding, should have caught any missing dependencies).
Tools version¶
lttng-tools master branch from this commit:
7d5802d16 tests: Add path check to prevent incorrect redirection
plus these changes (patchset 52). So not an official release.
System information¶
Ubuntu 24.04.2 LTS
Linux 6.8.0-63-generic #66-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 13 20:25:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Other context bits¶
Additional context that may or may not be useful.
- lttng-ust and userspace-rcu are installed from source in `~/install-dir`
- The `libnuma1` package is installed, but the missing dependency `libnuma-dev` is not. It is apparently unusual that configuration would succeed with `libnuma-dev` missing.
Files
KS Updated by Kienan Stewart 4 months ago ยท Edited
I think the only way that `-lnuma` is added to any linker flags for libraries in lttng-tools is when the build of lttng-ust depends on `-lnuma`. There's no configure check for it in lttng-tools, as it's not used directly.
I'm curious how lttng-ust was built and depends on libnuma without libnuma-dev. Do you have any of the system packages installed? E.g.,
dpkg -l | lttng
Edit: And any traces in the /usr/lib, e.g.
find /usr/lib -name '*lttng*'