* ld-scripts/assert.s: Remove comment.
* ld-scripts/data.s: Likewise.
* ld-scripts/data.t: Set start address to allow for aout headers.
Make first LONG pc-relative.
* ld-scripts/data.d: Update.
* ld-scripts/defined2.d: Allow other random syms.
* ld-scripts/defined3.d: Likewise.
* ld-scripts/provide-1.s: Pad section.
* ld-scripts/provide-1.t: Set .data address and align.
* ld-scripts/provide-1.d: Update.
* ld-scripts/provide-2.s: Pad section.
* ld-scripts/provide-2.d: Allow random trailing syms.
* ld-scripts/provide-3.s: Pad section.
* ld-scripts/provide-3.d: Fix typos.
* ld-scripts/provide.exp: Don't run on aix.
* ld-scripts/size-1.s: Simplify test.
* ld-scripts/size-1.t: Rewrite.
* ld-scripts/size-1.d: Update.
* ld-scripts/size-2.s: Simplify.
* ld-scripts/size-2.t: Set start address. Set exe flag on image.
* ld-scripts/size-2.d: Update.
* ld-scripts/size.exp: Don't run on aix. Run size-2 on all elf
targets except mips.
+2004-04-08 Alan Modra <amodra@bigpond.net.au>
+
+ * ld-scripts/align.exp: Don't run on aix.
+ * ld-scripts/assert.s: Remove comment.
+ * ld-scripts/data.s: Likewise.
+ * ld-scripts/data.t: Set start address to allow for aout headers.
+ Make first LONG pc-relative.
+ * ld-scripts/data.d: Update.
+ * ld-scripts/defined2.d: Allow other random syms.
+ * ld-scripts/defined3.d: Likewise.
+ * ld-scripts/provide-1.s: Pad section.
+ * ld-scripts/provide-1.t: Set .data address and align.
+ * ld-scripts/provide-1.d: Update.
+ * ld-scripts/provide-2.s: Pad section.
+ * ld-scripts/provide-2.d: Allow random trailing syms.
+ * ld-scripts/provide-3.s: Pad section.
+ * ld-scripts/provide-3.d: Fix typos.
+ * ld-scripts/provide.exp: Don't run on aix.
+ * ld-scripts/size-1.s: Simplify test.
+ * ld-scripts/size-1.t: Rewrite.
+ * ld-scripts/size-1.d: Update.
+ * ld-scripts/size-2.s: Simplify.
+ * ld-scripts/size-2.t: Set start address. Set exe flag on image.
+ * ld-scripts/size-2.d: Update.
+ * ld-scripts/size.exp: Don't run on aix. Run size-2 on all elf
+ targets except mips.
+
2004-03-27 Alexandre Oliva <aoliva@redhat.com>
* ld-frv/fdpic*.d: Adjust to compensate for page size change.
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+if [istarget "rs6000-*-aix*"] {
+ # Target maps .text and .data to other sections.
+ return
+}
+
set testname "ALIGN"
if ![ld_assemble $as $srcdir/$subdir/align.s tmpdir/align.o] {
.*: file format .*
Contents of section .text:
- 1000 (0410)?0000(1004)? (0020)?0000(2000)? .*
+ [0-9a-f]* (04)?000000(04)? (0020)?0000(2000)? .*
#pass
SECTIONS
{
- .text 0x1000 :
+ . = 0x1000 + SIZEOF_HEADERS;
+ .text ALIGN (0x20) :
{
- LONG (label)
+ LONG (label - .)
label = .;
LONG (ADDR (.other))
}
#...
0+1 [AT] defined1
+#...
0+11 A defined2
+#...
0+100 A defined3
+#...
0+1ff A defined4
#...
0+3 T sym1
#...
0+1 [AT] defined
+#...
0+200 A defined1
+#...
0+201 A defined2
+#...
0+100 A defined3
+#...
0+ [AT] defined4
+#...
0+2a A defined5
+#...
0+ [AT] defined6
+#...
0+1 [AT] defined7
+#...
0+1 [AT] defined8
#...
0+2a A sym1
+#...
[0-9a-f]+ T sym2
#pass
.*: file format .*
Contents of section .data:
- 0000 (08)?000000(08)? (0c)?000000(0c)? 00000000 ............
+ [0-9a-f]* (1020)?0000(2010)? (2020)?0000(2020)? 00000000 .*
+#pass
.data
.globl foo
foo: .long 0
+ .p2align 4
SECTIONS
{
- .data :
+ .data 0x2000 :
{
LONG (foo)
LONG (bar)
+ . = ALIGN (0x10);
*(.data)
}
PROVIDE (foo = .);
#...
0+3 A baz
0+0 D foo
-
+#pass
.globl baz
.long baz
+
+ .p2align 4
-#source: provide-2.s
-#ld: -T provide-2.t
+#source: provide-3.s
+#ld: -T provide-3.t
#error: symbol defined in linker script and object file
.data
.globl foo
foo: .long 0
+ .p2align 4
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+if [istarget "rs6000-*-aix*"] {
+ # Target maps .text and .data to other sections.
+ return
+}
+
set testname "provide"
run_dump_test provide-1
#...
Contents of section \.text:
- 0+00 (01)?000000(01)? (02)?000000(02)? ........
+ [0-9a-f]* (01)?000000(01)? (02)?000000(02)? .*
#...
Contents of section \.data:
- 0+08 (03)?000000(03)? (04)?000000(04)? (05)?000000(05)? ............
-#...
-Contents of section \.tdata:
- 0+24 (06)?000000(06)? (07)?000000(07)? (08)?000000(08)? (09)?000000(09)? ................
- 0+34 (0a)?000000(0a)? ....
-#...
-Contents of section \.map:
- 0+38 (08)?000000(08)? (0c)?000000(0c)? (10)?000000(10)? (14)?000000(14)? ................
- 0+48 (18)?000000(18)? ....
-#...
+ [0-9a-f]* (03)?000000(03)? (04)?000000(04)? (05)?000000(05)? 00000000 .*
+ [0-9a-f]* (20)?000000(20)? (18)?000000(18)? .*
+#pass
- .section .text,"ax",@progbits
+ .text
.long 1,2
+ .p2align 5
- .section .data,"aw",@progbits
+ .data
.long 3,4,5
-
- .section .bss,"aw",@nobits
- .long 0,0,0,0
-
- # thread local storage sections
- .section .tdata,"awT",@progbits
- .long 6,7,8,9,10
-
- .section .tbss,"awT",@nobits
- .long 0,0,0,0,0,0
+ .p2align 4
SECTIONS
{
- .text : { *(.text) }
- .data : { *(.data) }
- .bss : { *(.bss) }
- .tdata : { *(.tdata) }
- .tbss : { *(.tbss) }
- .map : {
+ . = 0x1000 + SIZEOF_HEADERS;
+ .text ALIGN (0x20) : { *(.text) }
+ .data 0x2000 : {
+ *(.data)
LONG (SIZEOF (.text))
LONG (SIZEOF (.data))
- LONG (SIZEOF (.bss))
- LONG (SIZEOF (.tdata))
- LONG (SIZEOF (.tbss))
}
}
#...
Program Headers:
- Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
- PHDR 0x[0-9a-f]+ 0x0+0000 0x0+0000 0x[0-9a-f]+ 0x[0-9a-f]+ R 0x[0-9a-f]+
- LOAD 0x[0-9a-f]+ 0x0+0000 0x0+0000 0x0+0030 0x0+0030 R 0x[0-9a-f]+
- TLS 0x[0-9a-f]+ 0x0+0008 0x0+0008 0x0+0014 0x0+002c R 0x[0-9a-f]+
+ +Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg +Align
+ +PHDR +0x[0-9a-f]+ 0x0+0000 0x0+0000 0x[0-9a-f]+ 0x[0-9a-f]+ R +0x[0-9a-f]+
+#...
+ +LOAD +0x[0-9a-f]+ 0x0+0100 0x0+0100 0x0+0030 0x0+0030 R E +0x[0-9a-f]+
+ +TLS +0x[0-9a-f]+ 0x0+0108 0x0+0108 0x0+0014 0x0+002c R +0x[0-9a-f]+
Section to Segment mapping:
- Segment Sections...
- 00 \.text \.tdata \.tbss \.map
- 01 \.text \.tdata \.map
- 02 \.tdata \.tbss \.map
+ +Segment Sections\.\.\.
+ +00 .*
+ +01 +\.text \.tdata \.map
+ +02 +\.tdata \.tbss \.map
- .section .text,"ax",@progbits
+ .text
.long 1,2
- # thread local storage sections
- .section .tdata,"awT",@progbits
+ .section .tdata
.long 6,7,8,9,10
- .section .tbss,"awT",@nobits
+ .section .tbss
.long 0,0,0,0,0,0
{
header PT_PHDR FILEHDR PHDRS ;
- image PT_LOAD FLAGS (4);
+ image PT_LOAD FLAGS (5);
tls PT_TLS FLAGS (4);
}
SECTIONS
{
- .text : { *(.text) } :image
+ .text 0x100 : { *(.text) } :image
.tdata : { *(.tdata) } :image :tls
.tbss : { *(.tbss) } :image : tls
.map : {
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
+if [istarget "rs6000-*-aix*"] {
+ # Target maps .text and .data to other sections.
+ return
+}
+
run_dump_test size-1
-if { [istarget "*-*-elf*"] } {
- run_dump_test size-2
+if ![is_elf_format] {
+ return
}
+
+if [istarget "mips*-*-*"] {
+ # MIPS inserts a REGINFO PHDR
+ return
+}
+
+run_dump_test size-2