Closed esseivaju closed 1 week ago
3 412 files 5 264 suites 3m 55s :stopwatch: 1 590 tests 1 562 :white_check_mark: 28 :zzz: 0 :x: 17 512 runs 17 445 :white_check_mark: 67 :zzz: 0 :x:
Results for commit 757a8738.
:recycle: This comment has been updated with latest results.
Sure, the problem is the linker, and this is just a way to force the linker's hand since AFAIK, Cmake doesn't have good support for passing --no-as-needed
just for one library. And it'd be a different argument for static libs, --whole-archive
? That's probably not worth adding some CMake complexity, so yeah, let's just disable that test in that specific scenario.
a static build of Celeritas and VecGeom ... the linker probably figure out that geocel is not used... but it results in undefined symbols because we link to the VecGeom middle library.
This sounds odd. Presumably the link line has both geocel_final.a
and the "VecGeom middle library" why would it ignore/drop one but not the other?
It is pretty odd indeed, I don't know why the linker is acting that way. Unfortunately, Perlmutter is down today so I can't check the link line but I'm pretty sure it was indeed linking against libvecgeomcuda_static
.
Since #1489, a static build of Celeritas and VecGeom with
CELERITAS_USE_PNG=OFF
the linker probably figure out that geocel is not used byImageWriter.test.cc
, but it results in undefined symbols because we link to the VecGeom middle library. Move the inline dummy implementation ifImageWriter
to its own TU to force the correct behavior.