win: Investigate ASan ODR checker vs /Gw and possibly revert LLVM r301374 |
||
Issue descriptionhttps://cs.chromium.org/chromium/src/build/config/compiler/BUILD.gn?type=cs&l=1329 contains this block: if (!is_asan) { common_optimize_on_cflags += [ # Put data in separate COMDATs. This allows the linker # to put bit-identical constants at the same address even if # they're unrelated constants, which saves binary size. # This optimization can't be used when ASan is enabled because # it is not compatible with the ASan ODR checker. "/Gw", ] } This was added in https://codereview.chromium.org/832583007 . Due to this, llvm r301225 had to be rowed back in LLVM r301374 (http://llvm.org/viewvc/llvm-project?view=revision&revision=301374) On comment 14 in issue 715315 , pcc said: """ I looked closely at the implementation of the ODR checker with eugenis and found a potential bug: after we rebuild a global [0] we do not copy the comdat from the original global. That may have caused duplicate symbol link errors with the ODR checker enabled. [0] http://llvm-cs.pcc.me.uk/lib/Transforms/Instrumentation/AddressSanitizer.cpp#1830 """ We should investigate what exactly the ODR issue was (Slava, do you remember?), fix that, always pass /Gw even in is_asan builds, and then reinstantiate llvm r301225.
,
Jul 16
Issue has not been modified or commented on in the last 365 days, please re-open or file a new bug if this is still an issue. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot |
||
►
Sign in to add a comment |
||
Comment 1 by ajha@chromium.org
, Jul 14 2017