0.16 sanitizer flags linux

suddenly moving to 0.16 compiler those 2 flags give me very odd output:

            .sanitize_c = .full,

            .sanitize_thread = true,
  1. did the behaviour change? does it require more dependencies?
  2. do I understand the purpose of the flags right? first is kinda mem san, second is tsan to detect race condition, right?

what’s more odd is it fails only on ubuntu, on my friend’s fedora it’s ok, on mac arm it works fine as well

error: duplicate symbol definition: __cxa_guard_acquire
note: defined by .zig-cache/o/75cc729d85a68c748fa0f09cf04c3c46/libsnappy.a(.zig-cache/o/feddf111ee1f06545e905b456683d966/snappy.o/)
note: defined by /home/codespace/.cache/zig/o/a6edb37fbd47f715352a2b4281eee458/libtsan.a(/home/codespace/.cache/zig/o/769ba39431a95a25723460a4feeab2c5/tsan_interceptors_posix.o/)
error: duplicate symbol definition: __cxa_guard_release
note: defined by .zig-cache/o/75cc729d85a68c748fa0f09cf04c3c46/libsnappy.a(.zig-cache/o/feddf111ee1f06545e905b456683d966/snappy.o/)
note: defined by /home/codespace/.cache/zig/o/a6edb37fbd47f715352a2b4281eee458/libtsan.a(/home/codespace/.cache/zig/o/769ba39431a95a25723460a4feeab2c5/tsan_interceptors_posix.o/)
error: duplicate symbol definition: __cxa_guard_abort
note: defined by .zig-cache/o/75cc729d85a68c748fa0f09cf04c3c46/libsnappy.a(.zig-cache/o/feddf111ee1f06545e905b456683d966/snappy.o/)
note: defined by /home/codespace/.cache/zig/o/a6edb37fbd47f715352a2b4281eee458/libtsan.a(/home/codespace/.cache/zig/o/769ba39431a95a25723460a4feeab2c5/tsan_interceptors_posix.o/)
error: 3 compilation errors
failed command: /home/codespace/.vscode-remote/data/User/globalStorage/ziglang.vscode-zig/zig/x86_64-linux-0.16.0/zig build-exe -fsanitize-thread -fsanitize-c=full -ODebug --dep zeit --dep httpz --dep snappy --dep zint --dep c --dep encoding --dep build -Mroot=/workspaces/ochi/src/main.zig -ODebug -Mzeit=/workspaces/ochi/zig-pkg/zeit-0.6.0-5I6bk7q6AgBdMJxze3D4l9ylQhkviQ_BX9FigDt13MFn/src/zeit.zig -ODebug --dep metrics --dep websocket --dep build=build0 -Mhttpz=/workspaces/ochi/zig-pkg/httpz-0.0.0-PNVzrDC4BwANG-9UeHJ5udYPc19jZpm6LbkAtlAElOBk/src/httpz.zig .zig-cache/o/75cc729d85a68c748fa0f09cf04c3c46/libsnappy.a -ODebug -I .zig-cache/o/36e0189990168edb93e5de5403512097 -Msnappy=/workspaces/ochi/zig-pkg/snappy-0.1.0-n4AaquQ4AADQScvw9-i6SJvZTTagvxmGgGKnat4T_a4e/src/snappy.zig -ODebug -Mzint=/workspaces/ochi/zig-pkg/zint-0.0.3-h0gsmS__AQD_LMS-37DXkuEF8s8W8-WchR76_BpgINIt/src/root.zig .zig-cache/o/a7296a224cb9ddcc9d81f3944b7b85fc/libzstd.a -ODebug -I .zig-cache/o/28b86af4fded6644eee5e28d78d27cca -Mc=/workspaces/ochi/src/lib/c/c.zig -ODebug --dep c -Mencoding=/workspaces/ochi/src/lib/encoding/root.zig -Mbuild=.zig-cache/c/9586e5ad231b3d04871173082fd7430c/options.zig -ODebug -Mmetrics=/workspaces/ochi/zig-pkg/metrics-0.0.0-W7G4eIegAQD4XxA9Co7Atbw59u_2zvxYf406AZuoAHPM/src/metrics.zig -ODebug --dep build=build1 -Mwebsocket=/workspaces/ochi/zig-pkg/websocket-0.1.0-ZPISdUU6BAAPe0iZ_JHMVAXaBlz327xZRBrRY06-Vw5h/src/websocket.zig -Mbuild0=.zig-cache/c/588d8e90b2ff6dc0bd7ddf1ba6f5872d/options.zig -Mbuild1=.zig-cache/c/cc544fc8f162c327786efad17dbbf432/options.zig -lc++ -lc --cache-dir .zig-cache --global-cache-dir /home/codespace/.cache/zig --name Ochi --zig-lib-dir /home/codespace/.vscode-remote/data/User/globalStorage/ziglang.vscode-zig/zig/x86_64-linux-0.16.0/lib/ --listen=-


The duplicate symbols are part of the C++ ABI.
The linker states that these symbols are defined in both libsnappy.a and libtsan.a.
A possible reason for that is that they both include a static copy of the C++ ABI.