2006-08-18 H.J. Lu <hongjiu.lu@intel.com>
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 18 Aug 2006 14:38:00 +0000 (14:38 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 18 Aug 2006 14:38:00 +0000 (14:38 +0000)
PR ld/3052
* ld-elf/loadaddr.s: New file.
* ld-elf/loadaddr1.d: Likewise.
* ld-elf/loadaddr1.t: Likewise.
* ld-elf/loadaddr2.d: Likewise.
* ld-elf/loadaddr2.t: Likewise.

ld/testsuite/ChangeLog
ld/testsuite/ld-elf/loadaddr.s [new file with mode: 0644]
ld/testsuite/ld-elf/loadaddr1.d [new file with mode: 0644]
ld/testsuite/ld-elf/loadaddr1.t [new file with mode: 0644]
ld/testsuite/ld-elf/loadaddr2.d [new file with mode: 0644]
ld/testsuite/ld-elf/loadaddr2.t [new file with mode: 0644]

index fae1e90735e791c3d6c84b237546924b18c9842a..ac678c30342af40e42bedc4f8d38305622d29672 100644 (file)
@@ -1,3 +1,12 @@
+2006-08-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/3052
+       * ld-elf/loadaddr.s: New file.
+       * ld-elf/loadaddr1.d: Likewise.
+       * ld-elf/loadaddr1.t: Likewise.
+       * ld-elf/loadaddr2.d: Likewise.
+       * ld-elf/loadaddr2.t: Likewise.
+
 2006-08-17  Alan Modra  <amodra@bigpond.net.au>
 
        * ld-powerpc/tlsexe.d: Update for lazy link stub change.
diff --git a/ld/testsuite/ld-elf/loadaddr.s b/ld/testsuite/ld-elf/loadaddr.s
new file mode 100644 (file)
index 0000000..dcf40c8
--- /dev/null
@@ -0,0 +1,16 @@
+       .text
+       .globl main
+       .globl start
+       .globl _start
+       .globl __start
+main:
+start:
+_start:
+__start:
+       .byte 0
+       .section .bar,"ax","progbits"
+       .byte 0
+       .section .foo,"aw","progbits"
+       .byte 0
+       .data
+       .byte 0
diff --git a/ld/testsuite/ld-elf/loadaddr1.d b/ld/testsuite/ld-elf/loadaddr1.d
new file mode 100644 (file)
index 0000000..f4b01dd
--- /dev/null
@@ -0,0 +1,10 @@
+#source: loadaddr.s
+#ld: -T loadaddr1.t -z max-page-size=0x200000
+#readelf: -l --wide
+#target: *-*-linux*
+
+#...
+  LOAD +0x000000 0xf*80000000 0xf*80000000 0x100041 0x100041 RWE 0x200000
+  LOAD +0x200000 0xf*ff600000 0xf*80101000 0x0*1 0x0*1 R E 0x200000
+  LOAD +0x302000 0xf*80102000 0xf*80102000 0x0*1 0x0*1 RW  0x200000
+#pass
diff --git a/ld/testsuite/ld-elf/loadaddr1.t b/ld/testsuite/ld-elf/loadaddr1.t
new file mode 100644 (file)
index 0000000..c4b5d90
--- /dev/null
@@ -0,0 +1,13 @@
+SECTIONS
+{
+  . = -0x7ff00000;
+  .text : {*(.text .text.*)}
+  . = ALIGN(64);
+  .foo : { *(.foo) }
+  .bar -0xa00000 : AT ((LOADADDR(.foo) + SIZEOF(.foo) + 4095) & ~(4095))
+    { *(.bar) }
+  . = LOADADDR(.bar) + 4096;
+  . = ALIGN(8192);
+  .data : { *(.data) }
+  /DISCARD/ : { *(.*) }
+}
diff --git a/ld/testsuite/ld-elf/loadaddr2.d b/ld/testsuite/ld-elf/loadaddr2.d
new file mode 100644 (file)
index 0000000..0044b8b
--- /dev/null
@@ -0,0 +1,10 @@
+#source: loadaddr.s
+#ld: -T loadaddr2.t -z max-page-size=0x200000
+#readelf: -l --wide
+#target: *-*-linux*
+
+#...
+  LOAD +0x000000 0xf*80000000 0xf*80000000 0x100041 0x100041 RWE 0x200000
+  LOAD +0x110000 0xf*80110000 0xf*80101000 0x0*1 0x0*1 R E 0x200000
+  LOAD +0x302000 0xf*80302000 0xf*80302000 0x0*1 0x0*1 RW  0x200000
+#pass
diff --git a/ld/testsuite/ld-elf/loadaddr2.t b/ld/testsuite/ld-elf/loadaddr2.t
new file mode 100644 (file)
index 0000000..71a1a6b
--- /dev/null
@@ -0,0 +1,13 @@
+SECTIONS
+{
+  . = -0x7ff00000;
+  .text : {*(.text .text.*)}
+  . = ALIGN(64);
+  .foo : { *(.foo) }
+  .bar -0x7fef0000 : AT ((LOADADDR(.foo) + SIZEOF(.foo) + 4095) & ~(4095))
+    { *(.bar) }
+  . = LOADADDR(.bar) + 0x200000;
+  . = ALIGN(8192);
+  .data : { *(.data) }
+  /DISCARD/ : { *(.*) }
+}