This is the mail archive of the
binutils-cvs@sourceware.org
mailing list for the binutils project.
[binutils-gdb/binutils-2_26-branch] Skip debug sections when estimating distances
- From: H.J.Lu <hjl at sourceware dot org>
- To: bfd-cvs at sourceware dot org
- Date: 30 Apr 2016 12:57:19 -0000
- Subject: [binutils-gdb/binutils-2_26-branch] Skip debug sections when estimating distances
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=805af9f6edbc8e1b1fa8fb6b30902decc5433bd0
commit 805af9f6edbc8e1b1fa8fb6b30902decc5433bd0
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Wed Apr 27 09:13:10 2016 -0700
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.
Backport from master
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.
Diff:
---
bfd/ChangeLog | 9 +++++++++
bfd/elf64-x86-64.c | 25 ++++++++++++++-----------
ld/ChangeLog | 16 +++++++++++++---
ld/testsuite/ld-elfvsb/elfvsb.exp | 4 +++-
4 files changed, 39 insertions(+), 15 deletions(-)
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 5c0e709..5718416 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,12 @@
+2016-04-30 H.J. Lu <hongjiu.lu@intel.com>
+
+ Backport from master
+ 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-03-29 Toni Spets <toni.spets@iki.fi>
PR 19878
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index e80fd20..764adc0 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -3207,17 +3207,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 c3eeded..749dcba 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -3,13 +3,23 @@
Backport from master
2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
+ PR ld/20006
+ * testsuite/ld-elfvsb/elfvsb.exp (COMPRESS_LDFLAG): New.
+ (visibility_run): Pass COMPRESS_LDFLAG to visibility_test on
+ ELF targets.
+
+2016-04-30 H.J. Lu <hongjiu.lu@intel.com>
+
+ Backport from master
+ 2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
+
* testsuite/ld-elf/compressed1b.d: Only run for Linux/GNU targets.
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.
+ * testsuite/ld-elf/compressed1b.d: Pass
+ --compress-debug-sections=none to ld.
+ * testsuite/ld-elf/compressed1c.d: Likewise.
2016-04-04 H.J. Lu <hongjiu.lu@intel.com>
diff --git a/ld/testsuite/ld-elfvsb/elfvsb.exp b/ld/testsuite/ld-elfvsb/elfvsb.exp
index e02d4fa..4766d0e 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
} }
}
}}