diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2016-04-27 09:13:10 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2016-04-27 09:13:10 -0700 |
commit | 91f8bf69a526912f86da81070407bba6a050e27f (patch) | |
tree | d0552fd3e18572c598e1f2f1b7ee79580f0aa546 | |
parent | 11cf4ffb5e256d268a8f4cea0fc88a0a46bf824c (diff) | |
download | gdb-91f8bf69a526912f86da81070407bba6a050e27f.zip gdb-91f8bf69a526912f86da81070407bba6a050e27f.tar.gz gdb-91f8bf69a526912f86da81070407bba6a050e27f.tar.bz2 |
Skip debug sections when estimating distances
Skip debug sections when estimating distances between output sections
since compressed_size is used to compress debug sections and debug
sections aren't excluded from distances between output sections.
bfd/
PR ld/20006
* elf64-x86-64.c (elf_x86_64_convert_load): Skip debug sections
when estimating distances between output sections.
ld/
PR ld/20006
* testsuite/ld-elfvsb/elfvsb.exp (COMPRESS_LDFLAG): New.
(visibility_run): Pass COMPRESS_LDFLAG to visibility_test on
ELF targets.
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/elf64-x86-64.c | 25 | ||||
-rw-r--r-- | ld/ChangeLog | 13 | ||||
-rw-r--r-- | ld/testsuite/ld-elfvsb/elfvsb.exp | 4 |
4 files changed, 33 insertions, 15 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index f67db84..b63811b 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2016-04-27 H.J. Lu <hongjiu.lu@intel.com> + + PR ld/20006 + * elf64-x86-64.c (elf_x86_64_convert_load): Skip debug sections + when estimating distances between output sections. + 2016-04-27 Alan Modra <amodra@gmail.com> * elflink.c (_bfd_elf_is_start_stop): New function. diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c index 4899f98..02fcb22 100644 --- a/bfd/elf64-x86-64.c +++ b/bfd/elf64-x86-64.c @@ -3205,17 +3205,20 @@ elf_x86_64_convert_load (bfd *abfd, asection *sec, for (asect = link_info->output_bfd->sections; asect != NULL; asect = asect->next) - { - asection *i; - for (i = asect->map_head.s; - i != NULL; - i = i->map_head.s) - { - size = align_power (size, i->alignment_power); - size += i->size; - } - asect->compressed_size = size; - } + /* Skip debug sections since compressed_size is used to + compress debug sections. */ + if ((asect->flags & SEC_DEBUGGING) == 0) + { + asection *i; + for (i = asect->map_head.s; + i != NULL; + i = i->map_head.s) + { + size = align_power (size, i->alignment_power); + size += i->size; + } + asect->compressed_size = size; + } } /* Don't convert GOTPCREL relocations if TSEC isn't placed diff --git a/ld/ChangeLog b/ld/ChangeLog index 62db170..379a214 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,8 +1,15 @@ 2016-04-27 H.J. Lu <hongjiu.lu@intel.com> - * ld-elf/compressed1b.d: Pass --compress-debug-sections=none - to ld. - * ld-elf/compressed1c.d: Likewise. + PR ld/20006 + * testsuite/ld-elfvsb/elfvsb.exp (COMPRESS_LDFLAG): New. + (visibility_run): Pass COMPRESS_LDFLAG to visibility_test on + ELF targets. + +2016-04-27 H.J. Lu <hongjiu.lu@intel.com> + + * testsuite/ld-elf/compressed1b.d: Pass + --compress-debug-sections=none to ld. + * testsuite/ld-elf/compressed1c.d: Likewise. 2016-04-27 Alan Modra <amodra@gmail.com> diff --git a/ld/testsuite/ld-elfvsb/elfvsb.exp b/ld/testsuite/ld-elfvsb/elfvsb.exp index d9d26d6..e20cd76 100644 --- a/ld/testsuite/ld-elfvsb/elfvsb.exp +++ b/ld/testsuite/ld-elfvsb/elfvsb.exp @@ -62,6 +62,7 @@ if ![isnative] then {return} set tmpdir tmpdir set SHCFLAG "" set shared_needs_pic "no" +set COMPRESS_LDFLAG "-Wl,--compress-debug-sections=zlib-gabi" if { [istarget rs6000*-*-aix*] || [istarget powerpc*-*-aix*] } { @@ -228,6 +229,7 @@ proc visibility_run {visibility} { global support_protected global shared_needs_pic global PLT_CFLAGS + global COMPRESS_LDFLAG if [ string match $visibility "hidden" ] { set VSBCFLAG "-DHIDDEN_TEST" @@ -384,7 +386,7 @@ proc visibility_run {visibility} { } else { if { [istarget rs6000*-*-aix*] || [istarget powerpc*-*-aix*] } { visibility_test $visibility vp "visibility ($visibility)" mainnp.o sh1p.o sh2p.o xcoff } else { - visibility_test $visibility vp "visibility ($visibility)" mainnp.o sh1p.o sh2p.o elfvsb + visibility_test $visibility vp "visibility ($visibility)" mainnp.o sh1p.o sh2p.o elfvsb $COMPRESS_LDFLAG } } } }} |