[lld] r248133 - [ELF2] Implement support for -discard-locals.

Rafael EspĂ­ndola via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 21 06:15:36 PDT 2015


> +        if (Config->DiscardLocals && SymName->startswith(".L"))
> +          continue;
>          ESym->st_name = (SymName) ? StrTabSec.getFileOff(*SymName) : 0;

It is probably a good idea to make this a static helper
(shouldIncludeInStaticSymtab).

If you are interested in this area (controlling what goes in the
static symtab), I think what is missing is

* Add a --discard-none.
* The default is to keep every symbol except if
  * The symbol is local (.L)
  * The symbol is defined in a SHF_MERGE section

As an extension, I think we should consider symbols with no names as
locals too. They are created when MC manages to avoid creating a .L
symbol, so there is no point in keeping them when discarding .L ones.

On this test, it probably makes sense to include the ASCII rendering of .strtab.

Cheers,
Rafael


More information about the llvm-commits mailing list