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] Pad only text sections at end by default


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=9028d9432c57fc0871479960f843ef4af194d5ac

commit 9028d9432c57fc0871479960f843ef4af194d5ac
Author: Alan Modra <amodra@gmail.com>
Date:   Wed Feb 25 09:36:36 2015 +1030

    Pad only text sections at end by default
    
    gas/
    	* write.c (SUB_SEGMENT_ALIGN): Don't pad non-code sections at
    	end to their alignment.
    gas/testsuite/
    	* gas/sparc/pcrel.d: Update for changed padding in data sections.
    	* gas/sparc/pcrel64.d: Likewise.
    ld/testsuite/
    	* ld-sparc/gotop32.rd: Update for changed padding in data sections.
    	* ld-sparc/gotop32.td: Likewise.
    	* ld-sparc/gotop64.rd: Likewise.
    	* ld-sparc/gotop64.td: Likewise.
    	* ld-tilegx/external.s: Align .data.
    	* ld-tilepro/external.s: Likewise.

Diff:
---
 gas/ChangeLog                      |  5 +++++
 gas/testsuite/ChangeLog            |  5 +++++
 gas/testsuite/gas/sparc/pcrel.d    | 25 ++++++++++++-------------
 gas/testsuite/gas/sparc/pcrel64.d  | 29 ++++++++++++++---------------
 gas/write.c                        |  4 +++-
 ld/testsuite/ChangeLog             |  9 +++++++++
 ld/testsuite/ld-sparc/gotop32.rd   |  4 ++--
 ld/testsuite/ld-sparc/gotop32.td   |  3 +--
 ld/testsuite/ld-sparc/gotop64.rd   |  4 ++--
 ld/testsuite/ld-sparc/gotop64.td   |  3 +--
 ld/testsuite/ld-tilegx/external.s  |  2 +-
 ld/testsuite/ld-tilepro/external.s |  2 +-
 12 files changed, 56 insertions(+), 39 deletions(-)

diff --git a/gas/ChangeLog b/gas/ChangeLog
index a769877..d5cc47f 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2015-02-28  Alan Modra  <amodra@gmail.com>
+
+	* write.c (SUB_SEGMENT_ALIGN): Don't pad non-code sections at
+	end to their alignment.
+
 2015-02-19  Marcus Shawcroft  <marcus.shawcroft@arm.com>
 
 	* config/tc-aarch64.c (reloc_table_entry): Generate
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 630fa91..f19792b 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2015-02-28  Alan Modra  <amodra@gmail.com>
+
+	* gas/sparc/pcrel.d: Update for changed padding in data sections.
+	* gas/sparc/pcrel64.d: Likewise.
+
 2015-02-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
 
 	* gas/aarch64/diagnostic.s: Add LDR test.
diff --git a/gas/testsuite/gas/sparc/pcrel.d b/gas/testsuite/gas/sparc/pcrel.d
index 6abe49b..7a8aec2 100644
--- a/gas/testsuite/gas/sparc/pcrel.d
+++ b/gas/testsuite/gas/sparc/pcrel.d
@@ -4,7 +4,7 @@
 
 .*: +file format .*sparc.*
 
-Disassembly of section .text:
+Disassembly of section \.text:
 
 0+ <foo-0x8>:
    0:	01 00 00 00 	nop 
@@ -12,23 +12,22 @@ Disassembly of section .text:
 
 0+8 <foo>:
    8:	01 00 00 00 	nop 
-Disassembly of section .data:
+Disassembly of section \.data:
 
-0+ <.data>:
+0+ <\.data>:
    0:	00 00 00 00 	(unimp|illtrap)  0
    4:	00 00 00 01 	(unimp|illtrap)  0x1
-	...
-			8: R_SPARC_32	.text\+0x10
-			c: R_SPARC_DISP32	.text\+0x10
-			10: R_SPARC_32	.text\+0x14
-			14: R_SPARC_DISP32	.text\+0x14
+	\.\.\.
+			8: R_SPARC_32	\.text\+0x10
+			c: R_SPARC_DISP32	\.text\+0x10
+			10: R_SPARC_32	\.text\+0x14
+			14: R_SPARC_DISP32	\.text\+0x14
 			18: R_SPARC_32	foo
 			1c: R_SPARC_DISP32	foo
 			20: R_SPARC_32	foo\+0x10
 			24: R_SPARC_DISP32	foo\+0x10
-			28: R_SPARC_DISP8	.data\+0x18
-			29: R_SPARC_DISP8	.data\+0x34
-			2a: R_SPARC_DISP16	.data\+0x18
-			2c: R_SPARC_DISP16	.data\+0x34
+			28: R_SPARC_DISP8	\.data\+0x18
+			29: R_SPARC_DISP8	\.data\+0x34
+			2a: R_SPARC_DISP16	\.data\+0x18
+			2c: R_SPARC_DISP16	\.data\+0x34
   30:	00 02 00 00 	(unimp|illtrap)  0x20000
-	...
diff --git a/gas/testsuite/gas/sparc/pcrel64.d b/gas/testsuite/gas/sparc/pcrel64.d
index d778850..9c50d34 100644
--- a/gas/testsuite/gas/sparc/pcrel64.d
+++ b/gas/testsuite/gas/sparc/pcrel64.d
@@ -4,7 +4,7 @@
 
 .*: +file format .*sparc.*
 
-Disassembly of section .text:
+Disassembly of section \.text:
 
 0+ <foo-0x8>:
    0:	01 00 00 00 	nop 
@@ -12,29 +12,28 @@ Disassembly of section .text:
 
 0+8 <foo>:
    8:	01 00 00 00 	nop 
-Disassembly of section .data:
+Disassembly of section \.data:
 
-0+ <.data>:
+0+ <\.data>:
    0:	00 00 00 00 	illtrap  0
    4:	00 00 00 01 	illtrap  0x1
-	...
-			8: R_SPARC_32	.text\+0x10
-			c: R_SPARC_DISP32	.text\+0x10
-			10: R_SPARC_32	.text\+0x14
-			14: R_SPARC_DISP32	.text\+0x14
+	\.\.\.
+			8: R_SPARC_32	\.text\+0x10
+			c: R_SPARC_DISP32	\.text\+0x10
+			10: R_SPARC_32	\.text\+0x14
+			14: R_SPARC_DISP32	\.text\+0x14
 			18: R_SPARC_32	foo
 			1c: R_SPARC_DISP32	foo
 			20: R_SPARC_32	foo\+0x10
 			24: R_SPARC_DISP32	foo\+0x10
-			28: R_SPARC_64	.text\+0x8
-			30: R_SPARC_DISP64	.text\+0x8
+			28: R_SPARC_64	\.text\+0x8
+			30: R_SPARC_DISP64	\.text\+0x8
 			38: R_SPARC_64	foo
 			40: R_SPARC_DISP64	foo
 			48: R_SPARC_64	foo\+0x10
 			50: R_SPARC_DISP64	foo\+0x10
-			58: R_SPARC_DISP8	.data\+0x18
-			59: R_SPARC_DISP8	.data\+0x64
-			5a: R_SPARC_DISP16	.data\+0x18
-			5c: R_SPARC_DISP16	.data\+0x64
+			58: R_SPARC_DISP8	\.data\+0x18
+			59: R_SPARC_DISP8	\.data\+0x64
+			5a: R_SPARC_DISP16	\.data\+0x18
+			5c: R_SPARC_DISP16	\.data\+0x64
   60:	00 02 00 00 	illtrap  0x20000
-	...
diff --git a/gas/write.c b/gas/write.c
index aefed29..949ae92 100644
--- a/gas/write.c
+++ b/gas/write.c
@@ -1692,7 +1692,9 @@ set_symtab (void)
    of the section.  This allows proper nop-filling at the end of
    code-bearing sections.  */
 #define SUB_SEGMENT_ALIGN(SEG, FRCHAIN)					\
-  (!(FRCHAIN)->frch_next ? get_recorded_alignment (SEG) : 0)
+  (!(FRCHAIN)->frch_next && subseg_text_p (SEG)				\
+   ? get_recorded_alignment (SEG)					\
+   : 0)
 #else
 #define SUB_SEGMENT_ALIGN(SEG, FRCHAIN) 0
 #endif
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index 196bfa5..82ff52d 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,3 +1,12 @@
+2015-02-28  Alan Modra  <amodra@gmail.com>
+
+	* ld-sparc/gotop32.rd: Update for changed padding in data sections.
+	* ld-sparc/gotop32.td: Likewise.
+	* ld-sparc/gotop64.rd: Likewise.
+	* ld-sparc/gotop64.td: Likewise.
+	* ld-tilegx/external.s: Align .data.
+	* ld-tilepro/external.s: Likewise.
+
 2015-02-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
 
 	* ld-aarch64/aarch64-elf.exp (tls-tiny-desc, tls-tiny-desc-ie)
diff --git a/ld/testsuite/ld-sparc/gotop32.rd b/ld/testsuite/ld-sparc/gotop32.rd
index acbbdeb..3b5b942 100644
--- a/ld/testsuite/ld-sparc/gotop32.rd
+++ b/ld/testsuite/ld-sparc/gotop32.rd
@@ -16,7 +16,7 @@ Section Headers:
  +\[[ 0-9]+\] .text +PROGBITS +0+1000 0+1000 0+1000 0+ +AX +0 +0 4096
  +\[[ 0-9]+\] .dynamic +DYNAMIC +0+12000 0+2000 0+70 08 +WA +3 +0 +4
  +\[[ 0-9]+\] .got +PROGBITS +0+12070 0+2070 0+8 04 +WA +0 +0 +4
- +\[[ 0-9]+\] .data +PROGBITS +0+13000 0+3000 0+1000 00 +WA +0 +0 4096
+ +\[[ 0-9]+\] .data +PROGBITS +0+13000 0+3000 0+8 00 +WA +0 +0 4096
  +\[[ 0-9]+\] .shstrtab +.*
  +\[[ 0-9]+\] .symtab +.*
  +\[[ 0-9]+\] .strtab +.*
@@ -29,7 +29,7 @@ There are [0-9]+ program headers, starting at offset [0-9]+
 Program Headers:
  +Type +Offset +VirtAddr +PhysAddr +FileSiz MemSiz +Flg Align
  +LOAD +0x0+ 0x0+ 0x0+ 0x0+2000 0x0+2000 R E 0x10000
- +LOAD +0x0+2000 0x0+12000 0x0+12000 0x0+2000 0x0+2000 RW +0x10000
+ +LOAD +0x0+2000 0x0+12000 0x0+12000 0x0+1008 0x0+1008 RW +0x10000
  +DYNAMIC +0x0+2000 0x0+12000 0x0+12000 0x0+70 0x0+70 RW +0x4
 #...
 
diff --git a/ld/testsuite/ld-sparc/gotop32.td b/ld/testsuite/ld-sparc/gotop32.td
index 520788b..d933b71 100644
--- a/ld/testsuite/ld-sparc/gotop32.td
+++ b/ld/testsuite/ld-sparc/gotop32.td
@@ -7,6 +7,5 @@
 .*: +file format elf32-sparc
 
 Contents of section .data:
- 13000 12345678 deadbeef 00000000 00000000  .*
- 13010 00000000 00000000 00000000 00000000  .*
+ 13000 12345678 deadbeef                    .*
 #pass
diff --git a/ld/testsuite/ld-sparc/gotop64.rd b/ld/testsuite/ld-sparc/gotop64.rd
index 08a9514..2d3ffec 100644
--- a/ld/testsuite/ld-sparc/gotop64.rd
+++ b/ld/testsuite/ld-sparc/gotop64.rd
@@ -16,7 +16,7 @@ Section Headers:
  +\[[ 0-9]+\] .text +PROGBITS +0+1000 0+1000 0+1000 0+ +AX +0 +0 4096
  +\[[ 0-9]+\] .dynamic +DYNAMIC +0+102000 0+2000 0+e0 10 +WA +3 +0 +8
  +\[[ 0-9]+\] .got +PROGBITS +0+1020e0 0+20e0 0+10 08 +WA +0 +0 +8
- +\[[ 0-9]+\] .data +PROGBITS +0+103000 0+3000 0+1000 00 +WA +0 +0 4096
+ +\[[ 0-9]+\] .data +PROGBITS +0+103000 0+3000 0+8 00 +WA +0 +0 4096
  +\[[ 0-9]+\] .shstrtab +.*
  +\[[ 0-9]+\] .symtab +.*
  +\[[ 0-9]+\] .strtab +.*
@@ -29,7 +29,7 @@ There are [0-9]+ program headers, starting at offset [0-9]+
 Program Headers:
  +Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
  +LOAD +0x0+ 0x0+ 0x0+ 0x0+2000 0x0+2000 R E 0x100000
- +LOAD +0x0+2000 0x0+102000 0x0+102000 0x0+2000 0x0+2000 RW +0x100000
+ +LOAD +0x0+2000 0x0+102000 0x0+102000 0x0+1008 0x0+1008 RW +0x100000
  +DYNAMIC +0x0+2000 0x0+102000 0x0+102000 0x0+e0 0x0+e0 RW +0x8
 #...
 
diff --git a/ld/testsuite/ld-sparc/gotop64.td b/ld/testsuite/ld-sparc/gotop64.td
index 28d40ed..303cdfe 100644
--- a/ld/testsuite/ld-sparc/gotop64.td
+++ b/ld/testsuite/ld-sparc/gotop64.td
@@ -7,6 +7,5 @@
 .*: +file format elf64-sparc
 
 Contents of section .data:
- 103000 12345678 deadbeef 00000000 00000000  .*
- 103010 00000000 00000000 00000000 00000000  .*
+ 103000 12345678 deadbeef                    .*
 #pass
diff --git a/ld/testsuite/ld-tilegx/external.s b/ld/testsuite/ld-tilegx/external.s
index ab681bc..8806584 100644
--- a/ld/testsuite/ld-tilegx/external.s
+++ b/ld/testsuite/ld-tilegx/external.s
@@ -38,6 +38,6 @@ external_64a = 0x123456789abcdef0
 external_64b = 0xfedcba9876543210
 
         .data
-
+	.align 0x20
         .global external_data1
 external_data1:
diff --git a/ld/testsuite/ld-tilepro/external.s b/ld/testsuite/ld-tilepro/external.s
index 93d7556..87ba37a 100644
--- a/ld/testsuite/ld-tilepro/external.s
+++ b/ld/testsuite/ld-tilepro/external.s
@@ -28,6 +28,6 @@ external_32a = 0x87654321
 external_32b = 0xfedcba98
 
         .data
-
+	.align 0x20
         .global external_data1
 external_data1:


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