2004-05-17 H.J. Lu <hongjiu.lu@intel.com>
authorH.J. Lu <hjl.tools@gmail.com>
Mon, 17 May 2004 17:38:46 +0000 (17:38 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Mon, 17 May 2004 17:38:46 +0000 (17:38 +0000)
* ld-elf/frame.exp: New file. Test read-only .eh_frame and
.gcc_except_table sections.
* ld-elf/frame.s: Likewise.
* ld-elf/table.s: Likewise.
* ld-elf/tbss.s: Likewise.

ld/testsuite/ChangeLog
ld/testsuite/ld-elf/frame.exp [new file with mode: 0644]
ld/testsuite/ld-elf/frame.s [new file with mode: 0644]
ld/testsuite/ld-elf/table.s [new file with mode: 0644]
ld/testsuite/ld-elf/tbss.s [new file with mode: 0644]

index 5ee217edc4658688bf9fdaa1f61fdf1505dbe097..a0d258f0b0ce35a58509d5c8eceba011eefc82c6 100644 (file)
@@ -1,3 +1,11 @@
+2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * ld-elf/frame.exp: New file. Test read-only .eh_frame and
+       .gcc_except_table sections.
+       * ld-elf/frame.s: Likewise.
+       * ld-elf/table.s: Likewise.
+       * ld-elf/tbss.s: Likewise.
+
 2004-05-12  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
 
        * ld-sh/tlsbin-2.d: Adjust for section reordering changes
diff --git a/ld/testsuite/ld-elf/frame.exp b/ld/testsuite/ld-elf/frame.exp
new file mode 100644 (file)
index 0000000..cfeeb29
--- /dev/null
@@ -0,0 +1,55 @@
+# Expect script for common symbol tests
+#   Copyright 2004 Free Software Foundation, Inc.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# Written by H.J. Lu (hongjiu.lu@intel.com)
+#
+
+# Make sure that ld correctly handles frame sections in ELF.
+
+# This test can only be run on ELF platforms.
+if ![is_elf_format] {
+    return
+}
+
+set test1      "read-only .eh_frame section"
+set test2      "read-only .gcc_except_table section"
+
+global as
+global ld
+
+if { ![ld_assemble $as $srcdir/$subdir/tbss.s tmpdir/tbss.o ]
+     || ![ld_assemble $as $srcdir/$subdir/frame.s tmpdir/frame.o] } {
+    unresolved "$test1"
+    return
+}
+
+if { [ld_simple_link $ld tmpdir/frame.so "--shared tmpdir/frame.o tmpdir/tbss.o"] } {
+    pass "$test1"
+} else {
+    fail "$test1"
+}
+
+if ![ld_assemble $as $srcdir/$subdir/table.s tmpdir/table.o ] {
+    unresolved "$test2"
+    return
+}
+
+if { [ld_simple_link $ld tmpdir/table.so "--shared tmpdir/table.o tmpdir/tbss.o"] } {
+    pass "$test2"
+} else {
+    fail "$test2"
+}
diff --git a/ld/testsuite/ld-elf/frame.s b/ld/testsuite/ld-elf/frame.s
new file mode 100644 (file)
index 0000000..ece463c
--- /dev/null
@@ -0,0 +1,2 @@
+       .section        .eh_frame,"a",@progbits
+       .4byte  0
diff --git a/ld/testsuite/ld-elf/table.s b/ld/testsuite/ld-elf/table.s
new file mode 100644 (file)
index 0000000..3641ece
--- /dev/null
@@ -0,0 +1 @@
+       .section        .gcc_except_table,"a",@progbits
diff --git a/ld/testsuite/ld-elf/tbss.s b/ld/testsuite/ld-elf/tbss.s
new file mode 100644 (file)
index 0000000..fc3be3d
--- /dev/null
@@ -0,0 +1,15 @@
+       .file   "x.c"
+.globl bss
+       .section        .bss,"aw",@nobits
+       .align 4096
+       .type   bss,@object
+       .size   bss,4096
+bss:
+       .zero   4096
+.globl tbss
+       .section        .tbss,"awT",@nobits
+       .align 4096
+       .type   tbss,@object
+       .size   tbss,4096
+tbss:
+       .zero   4096