mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2025-02-18 08:29:30 +00:00
* layout.cc (Layout::include_section): Check for SHF_EXCLUDE.
Handle --strip-lto-sections option. * options.h (strip_lto_sections): New option.
This commit is contained in:
parent
116e096528
commit
fd06b4aa51
@ -1,3 +1,9 @@
|
|||||||
|
2008-12-05 Cary Coutant <ccoutant@google.com>
|
||||||
|
|
||||||
|
* layout.cc (Layout::include_section): Check for SHF_EXCLUDE.
|
||||||
|
Handle --strip-lto-sections option.
|
||||||
|
* options.h (strip_lto_sections): New option.
|
||||||
|
|
||||||
2008-12-01 Cary Coutant <ccoutant@google.com>
|
2008-12-01 Cary Coutant <ccoutant@google.com>
|
||||||
|
|
||||||
* plugin.cc (ld_plugin_message): Change format parameter to const.
|
* plugin.cc (ld_plugin_message): Change format parameter to const.
|
||||||
|
@ -206,6 +206,9 @@ bool
|
|||||||
Layout::include_section(Sized_relobj<size, big_endian>*, const char* name,
|
Layout::include_section(Sized_relobj<size, big_endian>*, const char* name,
|
||||||
const elfcpp::Shdr<size, big_endian>& shdr)
|
const elfcpp::Shdr<size, big_endian>& shdr)
|
||||||
{
|
{
|
||||||
|
if (shdr.get_sh_flags() & elfcpp::SHF_EXCLUDE)
|
||||||
|
return false;
|
||||||
|
|
||||||
switch (shdr.get_sh_type())
|
switch (shdr.get_sh_type())
|
||||||
{
|
{
|
||||||
case elfcpp::SHT_NULL:
|
case elfcpp::SHT_NULL:
|
||||||
@ -256,6 +259,14 @@ Layout::include_section(Sized_relobj<size, big_endian>*, const char* name,
|
|||||||
&& !is_gdb_debug_section(name))
|
&& !is_gdb_debug_section(name))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if (parameters->options().strip_lto_sections()
|
||||||
|
&& !parameters->options().relocatable()
|
||||||
|
&& (shdr.get_sh_flags() & elfcpp::SHF_ALLOC) == 0)
|
||||||
|
{
|
||||||
|
// Ignore LTO sections containing intermediate code.
|
||||||
|
if (is_prefix_of(".gnu.lto_", name))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -748,6 +748,8 @@ class General_options
|
|||||||
DEFINE_bool(strip_debug_gdb, options::TWO_DASHES, '\0', false,
|
DEFINE_bool(strip_debug_gdb, options::TWO_DASHES, '\0', false,
|
||||||
N_("Strip debug symbols that are unused by gdb "
|
N_("Strip debug symbols that are unused by gdb "
|
||||||
"(at least versions <= 6.7)"), NULL);
|
"(at least versions <= 6.7)"), NULL);
|
||||||
|
DEFINE_bool(strip_lto_sections, options::TWO_DASHES, '\0', true,
|
||||||
|
N_("Strip LTO intermediate code sections"), NULL);
|
||||||
|
|
||||||
DEFINE_bool(shared, options::ONE_DASH, '\0', false,
|
DEFINE_bool(shared, options::ONE_DASH, '\0', false,
|
||||||
N_("Generate shared library"), NULL);
|
N_("Generate shared library"), NULL);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user