mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-07-01 18:32:32 +08:00
2008-08-08 Sterling Augustine <sterling@tensilica.com>
* config/tc-xtensa.c (exclude_section_from_property_tables): New. (xtensa_create_property_segments): Use it. (xtensa_create_xproperty_segments): Likewise.
This commit is contained in:
@ -1,3 +1,9 @@
|
|||||||
|
2008-08-08 Sterling Augustine <sterling@tensilica.com>
|
||||||
|
|
||||||
|
* config/tc-xtensa.c (exclude_section_from_property_tables): New.
|
||||||
|
(xtensa_create_property_segments): Use it.
|
||||||
|
(xtensa_create_xproperty_segments): Likewise.
|
||||||
|
|
||||||
2008-08-08 Alan Modra <amodra@bigpond.net.au>
|
2008-08-08 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
* doc/internals.texi (DWARF2_FORMAT): Update for 2008-08-04 change.
|
* doc/internals.texi (DWARF2_FORMAT): Update for 2008-08-04 change.
|
||||||
|
@ -10320,6 +10320,7 @@ static void xtensa_create_property_segments
|
|||||||
(frag_predicate, frag_predicate, const char *, xt_section_type);
|
(frag_predicate, frag_predicate, const char *, xt_section_type);
|
||||||
static void xtensa_create_xproperty_segments
|
static void xtensa_create_xproperty_segments
|
||||||
(frag_flags_fn, const char *, xt_section_type);
|
(frag_flags_fn, const char *, xt_section_type);
|
||||||
|
static bfd_boolean exclude_section_from_property_tables (segT);
|
||||||
static bfd_boolean section_has_property (segT, frag_predicate);
|
static bfd_boolean section_has_property (segT, frag_predicate);
|
||||||
static bfd_boolean section_has_xproperty (segT, frag_flags_fn);
|
static bfd_boolean section_has_xproperty (segT, frag_flags_fn);
|
||||||
static void add_xt_block_frags
|
static void add_xt_block_frags
|
||||||
@ -10383,12 +10384,8 @@ xtensa_create_property_segments (frag_predicate property_function,
|
|||||||
seclist = &(*seclist)->next)
|
seclist = &(*seclist)->next)
|
||||||
{
|
{
|
||||||
segT sec = *seclist;
|
segT sec = *seclist;
|
||||||
flagword flags;
|
|
||||||
|
|
||||||
flags = bfd_get_section_flags (stdoutput, sec);
|
if (exclude_section_from_property_tables (sec))
|
||||||
if (flags & SEC_DEBUGGING)
|
|
||||||
continue;
|
|
||||||
if (!(flags & SEC_ALLOC))
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (section_has_property (sec, property_function))
|
if (section_has_property (sec, property_function))
|
||||||
@ -10485,12 +10482,8 @@ xtensa_create_xproperty_segments (frag_flags_fn flag_fn,
|
|||||||
seclist = &(*seclist)->next)
|
seclist = &(*seclist)->next)
|
||||||
{
|
{
|
||||||
segT sec = *seclist;
|
segT sec = *seclist;
|
||||||
flagword flags;
|
|
||||||
|
|
||||||
flags = bfd_get_section_flags (stdoutput, sec);
|
if (exclude_section_from_property_tables (sec))
|
||||||
if ((flags & SEC_DEBUGGING)
|
|
||||||
|| !(flags & SEC_ALLOC)
|
|
||||||
|| (flags & SEC_MERGE))
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (section_has_xproperty (sec, flag_fn))
|
if (section_has_xproperty (sec, flag_fn))
|
||||||
@ -10573,6 +10566,27 @@ xtensa_create_xproperty_segments (frag_flags_fn flag_fn,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static bfd_boolean
|
||||||
|
exclude_section_from_property_tables (segT sec)
|
||||||
|
{
|
||||||
|
flagword flags = bfd_get_section_flags (stdoutput, sec);
|
||||||
|
|
||||||
|
/* Sections that don't contribute to the memory footprint are excluded. */
|
||||||
|
if ((flags & SEC_DEBUGGING)
|
||||||
|
|| !(flags & SEC_ALLOC)
|
||||||
|
|| (flags & SEC_MERGE))
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
/* Linker cie and fde optimizations mess up property entries for
|
||||||
|
eh_frame sections, but there is nothing inside them relevant to
|
||||||
|
property tables anyway. */
|
||||||
|
if (strcmp (sec->name, ".eh_frame") == 0)
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static bfd_boolean
|
static bfd_boolean
|
||||||
section_has_property (segT sec, frag_predicate property_function)
|
section_has_property (segT sec, frag_predicate property_function)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user