mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-28 23:39:35 +08:00
PR273, SOM size -A
The SOM backend creates BFD sections for "spaces", and "sub-spaces". "sub-spaces" are what we normally think of as a section, "spaces" aggregate "sub-spaces". Thus it does not really make sense to include "spaces" for size -A since that would double count total size. It so happens that real sections ought to have at least one of the ALLOC and HAS_CONTENTS flags set, so this patch excludes "spaces" but excluding BFD sections with no flags set. PR 273 * size.c (sysv_internal_sizer, sysv_internal_printer): Exclude sections with no flag bits set. * testsuite/binutils-all/size.exp: Allow $CODE$ as a text section.
This commit is contained in:
@ -1,3 +1,10 @@
|
|||||||
|
2019-11-21 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
|
PR 273
|
||||||
|
* size.c (sysv_internal_sizer, sysv_internal_printer): Exclude
|
||||||
|
sections with no flag bits set.
|
||||||
|
* testsuite/binutils-all/size.exp: Allow $CODE$ as a text section.
|
||||||
|
|
||||||
2019-11-21 Nick Clifton <nickc@redhat.com>
|
2019-11-21 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
* objcopy.c (merge_gnu_build_notes): Allow for the possibility
|
* objcopy.c (merge_gnu_build_notes): Allow for the possibility
|
||||||
|
@ -557,12 +557,16 @@ static void
|
|||||||
sysv_internal_sizer (bfd *file ATTRIBUTE_UNUSED, sec_ptr sec,
|
sysv_internal_sizer (bfd *file ATTRIBUTE_UNUSED, sec_ptr sec,
|
||||||
void *ignore ATTRIBUTE_UNUSED)
|
void *ignore ATTRIBUTE_UNUSED)
|
||||||
{
|
{
|
||||||
bfd_size_type size = bfd_section_size (sec);
|
flagword flags = bfd_section_flags (sec);
|
||||||
|
/* Exclude sections with no flags set. This is to omit som spaces. */
|
||||||
|
if (flags == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
if ( ! bfd_is_abs_section (sec)
|
if ( ! bfd_is_abs_section (sec)
|
||||||
&& ! bfd_is_com_section (sec)
|
&& ! bfd_is_com_section (sec)
|
||||||
&& ! bfd_is_und_section (sec))
|
&& ! bfd_is_und_section (sec))
|
||||||
{
|
{
|
||||||
|
bfd_size_type size = bfd_section_size (sec);
|
||||||
int namelen = strlen (bfd_section_name (sec));
|
int namelen = strlen (bfd_section_name (sec));
|
||||||
|
|
||||||
if (namelen > svi_namelen)
|
if (namelen > svi_namelen)
|
||||||
@ -589,12 +593,16 @@ static void
|
|||||||
sysv_internal_printer (bfd *file ATTRIBUTE_UNUSED, sec_ptr sec,
|
sysv_internal_printer (bfd *file ATTRIBUTE_UNUSED, sec_ptr sec,
|
||||||
void *ignore ATTRIBUTE_UNUSED)
|
void *ignore ATTRIBUTE_UNUSED)
|
||||||
{
|
{
|
||||||
bfd_size_type size = bfd_section_size (sec);
|
flagword flags = bfd_section_flags (sec);
|
||||||
|
if (flags == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
if ( ! bfd_is_abs_section (sec)
|
if ( ! bfd_is_abs_section (sec)
|
||||||
&& ! bfd_is_com_section (sec)
|
&& ! bfd_is_com_section (sec)
|
||||||
&& ! bfd_is_und_section (sec))
|
&& ! bfd_is_und_section (sec))
|
||||||
{
|
{
|
||||||
|
bfd_size_type size = bfd_section_size (sec);
|
||||||
|
|
||||||
svi_total += size;
|
svi_total += size;
|
||||||
|
|
||||||
sysv_one_line (bfd_section_name (sec),
|
sysv_one_line (bfd_section_name (sec),
|
||||||
|
@ -66,7 +66,7 @@ if {![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o]} then {
|
|||||||
|
|
||||||
set got [binutils_run $SIZE "$SIZEFLAGS -A ${testfile}"]
|
set got [binutils_run $SIZE "$SIZEFLAGS -A ${testfile}"]
|
||||||
|
|
||||||
set want "${testfile}.*(text|TEXT|P)\[^\n\r\]*\[ \]($dec)\[ \]+$dec.*(\\.data|DATA|D_1)\[^\n\r\]*\[ \]($dec)\[ \]+$dec"
|
set want "${testfile}.*(text|TEXT|\\\$CODE\\\$|P)\[^\n\r\]*\[ \]($dec)\[ \]+$dec.*(\\.data|DATA|D_1)\[^\n\r\]*\[ \]($dec)\[ \]+$dec"
|
||||||
|
|
||||||
if ![regexp $want $got all textname textsize dataname datasize] then {
|
if ![regexp $want $got all textname textsize dataname datasize] then {
|
||||||
fail "size -A"
|
fail "size -A"
|
||||||
|
Reference in New Issue
Block a user