aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2015-02-25 09:36:36 +1030
committerAlan Modra <amodra@gmail.com>2015-02-28 22:26:56 +1030
commit9028d9432c57fc0871479960f843ef4af194d5ac (patch)
tree930c4014333a3a8dffb24df45d33e7551642e62b
parentf01f1741df37f0330fbf2809df0ffddc992ff60c (diff)
downloadgdb-9028d9432c57fc0871479960f843ef4af194d5ac.zip
gdb-9028d9432c57fc0871479960f843ef4af194d5ac.tar.gz
gdb-9028d9432c57fc0871479960f843ef4af194d5ac.tar.bz2
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.
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/testsuite/ChangeLog5
-rw-r--r--gas/testsuite/gas/sparc/pcrel.d25
-rw-r--r--gas/testsuite/gas/sparc/pcrel64.d29
-rw-r--r--gas/write.c4
-rw-r--r--ld/testsuite/ChangeLog9
-rw-r--r--ld/testsuite/ld-sparc/gotop32.rd4
-rw-r--r--ld/testsuite/ld-sparc/gotop32.td3
-rw-r--r--ld/testsuite/ld-sparc/gotop64.rd4
-rw-r--r--ld/testsuite/ld-sparc/gotop64.td3
-rw-r--r--ld/testsuite/ld-tilegx/external.s2
-rw-r--r--ld/testsuite/ld-tilepro/external.s2
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: