Closed j-rivero closed 3 months ago
trying again with different branch parameters
I was also working on this and found that adding the --extern-only
flag to nm
fixes the issue. From what I can understand, the issue is that debbuilders enable LTO
which causes some debug symbols to be added to the shared library. These symbols contain the file names, one of which is :
0000000000f9c8ce N sdformat15_get_install_prefix_impl.cc.b80149f8
This causes a false negative on the versioned symbol test.
I tested by adding set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE)
in the root CMakeLists.txt
file and was able to reproduce the test failure locally.
In general, it would be good to enable LTO on our libraries so these types of issues are caught at the PR stage. I think this is the third time this LTO stuff has bit us.
In general, it would be good to enable LTO on our libraries so these types of issues are caught at the PR stage. I think this is the third time this LTO stuff has bit us.
should we do this in the action-gz-ci workflow?
In general, it would be good to enable LTO on our libraries so these types of issues are caught at the PR stage. I think this is the third time this LTO stuff has bit us.
should we do this in the action-gz-ci workflow?
I was thinking of enabling it via CMake, maybe in gz-cmake or on a per-project basis. That way local development will also use the same flags.
@Mergifyio backport sdf15 sdf14
backport sdf15 sdf14
🦟 Bug fix
Summary
The test that checks for prefixed binary symbols was broken when compiled with DebWithRelInfo since it was checking debugging symbols that broke the heuristics used.
The commit fixes it doing a couple of actions:
3sdf
Checklist
codecheck
passed (See contributing)Note to maintainers: Remember to use Squash-Merge and edit the commit message to match the pull request summary while retaining
Signed-off-by
messages.