diff options
author | Fangrui Song <maskray@google.com> | 2020-07-08 10:10:43 -0700 |
---|---|---|
committer | Fangrui Song <maskray@google.com> | 2020-07-08 10:15:16 -0700 |
commit | 4ce56b8122219f7b79d75d33184e3ec890a6e222 (patch) | |
tree | 9dc9df07481d45142d9051200ad020e9c3915e19 /llvm/lib/Support/Parallel.cpp | |
parent | 9520b6c8ab63061e1734deef8614eaa60f704dc9 (diff) | |
download | llvm-4ce56b8122219f7b79d75d33184e3ec890a6e222.zip llvm-4ce56b8122219f7b79d75d33184e3ec890a6e222.tar.gz llvm-4ce56b8122219f7b79d75d33184e3ec890a6e222.tar.bz2 |
[ELF] Add -z dead-reloc-in-nonalloc=<section_glob>=<value>
... to customize the tombstone value we use for an absolute relocation
referencing a discarded symbol. This can be used as a workaround when
some debug processing tool has trouble with current -1 tombstone value
(https://bugs.chromium.org/p/chromium/issues/detail?id=1102223#c11 )
For example, to get the current built-in rules (not considering the .debug_line special case for ICF):
```
-z dead-reloc-in-nonalloc='.debug_*=0xffffffffffffffff'
-z dead-reloc-in-nonalloc=.debug_loc=0xfffffffffffffffe
-z dead-reloc-in-nonalloc=.debug_ranges=0xfffffffffffffffe
```
To get GNU ld (as of binutils 2.35)'s behavior:
```
-z dead-reloc-in-nonalloc='*=0'
-z dead-reloc-in-nonalloc=.debug_ranges=1
```
This option has other use cases. For example, if we want to check
whether a non-SHF_ALLOC section has dead relocations.
With this patch, we can run a regular LLD and run another with a special
-z dead-reloc-in-nonalloc=, then compare their output.
Reviewed By: thakis
Differential Revision: https://reviews.llvm.org/D83264
Diffstat (limited to 'llvm/lib/Support/Parallel.cpp')
0 files changed, 0 insertions, 0 deletions