[PATCH] D92078: [asan] Default to -asan-use-private-alias=1

Fangrui Song via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 2 10:46:40 PST 2020


MaskRay added a comment.

In D92078#2427100 <https://reviews.llvm.org/D92078#2427100>, @vitalybuka wrote:

> I guess another cons was binary size increase? Would you like to run large scale testing on internal Google code?

Did a large scale testing in internal Google code - tests passed.

For a linked shared object/executable, there is no size difference (checked with an asan clang). In object files, there are minimal differences:

  % diff -U1 a.s b.s
  --- a.s 2020-12-02 10:33:09.222518415 -0800
  +++ b.s 2020-12-02 10:33:13.082528586 -0800
  @@ -76,3 +76,3 @@
   __unnamed_1:
  -       .quad   _ZN3foo1GE
  +       .quad   .L__unnamed_2
          .quad   4                               # 0x4
  @@ -92,2 +92,3 @@
          .quad   asan.module_dtor
  +.set .L__unnamed_2, _ZN3foo1GE
          .ident  "clang version 12.0.0"
  @@ -104 +105,2 @@
          .addrsig_sym __unnamed_1
  +       .addrsig_sym .L__unnamed_2



- The `.llvm_addrsig` size difference is due to a bug in addrsig (local symbols don't need `.addrsig_sym`). I am going to fix it
- Some global symbol referenced relocations are converted to reference local symbols. Using private aliases can cause some extra STT_SECTION symbols (for `.data`/`.bss`). The cost should be acceptable.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D92078/new/

https://reviews.llvm.org/D92078



More information about the llvm-commits mailing list