This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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
 	    } }
 	}
     }}


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]