[gold][patch] Add option to strip LTO sections from output

Ian Lance Taylor iant@google.com
Fri Dec 5 05:32:00 GMT 2008


Cary Coutant <ccoutant@google.com> writes:

> This patch adds a --strip-lto-sections option to gold, which tells it
> to ignore any PROGBITS section where SHF_ALLOC is not set and whose
> name begins with ".gnu.lto_".
> 
> It may be worth making this the default behavior.

I agree that it seems simpler to make this the default behaviour.
Does anybody see a problem with that?

Really we should modify gas to always recognize 'e' as a section flag
setting SHF_EXCLUDE, and modify ld and gold to always recognize
SHF_EXCLUDE.  That flag seems generically useful, and given its use by
several targets it seems quite unlikely that it will ever get another
meaning for generic ELF.


> +      // Ignore LTO sections containing intermediate code if requested.
> +      if (parameters->options().strip_lto_sections()
> +          && shdr.get_sh_type() == elfcpp::SHT_PROGBITS
> +          && (shdr.get_sh_flags() & elfcpp::SHF_ALLOC) == 0)
> +        {
> +          const char* const lto_prefix = ".gnu.lto_";
> +          if (strncmp(name, lto_prefix, strlen(lto_prefix)) == 0)
> +            omit[i] = true;
> +        }

Please do this in Layout::include_section instead, like
--strip-debug-gdb, etc.

Ian



More information about the Binutils mailing list