( lacos | 2024. 05. 29., sze – 12:03 )

linkert nem is használok hozzá, csak fordítót

Az llvm/clang forrásfában bányászva eljutottam a következő kapcsolóig: -fno-addrsig.

Miután a forrásban megtaláltam, és tudtam, hogy pontosan mire kell keresni a neten, meglett a dokumentáció is:

https://clang.llvm.org/docs/UsersManual.html#cmdoption-faddrsig

Azt írja:

Controls whether Clang emits an address-significance table into the object file. Address-significance tables allow linkers to implement safe ICF without the false positives that can result from other implementation techniques such as relocation scanning. Address-significance tables are enabled by default on ELF targets when using the integrated assembler. This flag currently only has an effect on ELF targets.

Ha megadod a clang-nak az -fno-addrsig-et, változik valami?

(A kapcsoló egyébként elég régi; én most git-blame-mel a következő commit-ig nyomoztam le: 14b468bab620 ("Re-land r337333, "Teach Clang to emit address-significance tables.", which was reverted in r337336.", 2018-07-18). Azért nem könnyű megtalálni, mert mostanra a clang opciók reprezentációja a forrásban megváltozott. Például a 7694b571d9fd ("[Driver] Add multiclass OptInFlag and OptOutFlag to simplify boolean option definition", 2020-06-02) után az faddrsig sztringre keresve nincs az Options.td file-ban találat.)