* config/default.exp: Set variables as and nm. Create tmpdir if
authorIan Lance Taylor <ian@airs.com>
Wed, 28 Sep 1994 16:21:32 +0000 (16:21 +0000)
committerIan Lance Taylor <ian@airs.com>
Wed, 28 Sep 1994 16:21:32 +0000 (16:21 +0000)
it does not already exist.
* ld.bootstrap/bootstrap.exp: Don't create tmpdir here.
* ld.cdtest/cdtest.exp: Likewise.
* ld.scripts/defined.exp: Likewise.  Also, don't set as and nm
here.  Change perror for no variables found to fail.
* ld.scripts/script.exp: New test.
* ld.scripts/script.t, ld.scripts/script.s: New files.

ld/testsuite/ChangeLog
ld/testsuite/ld.bootstrap/bootstrap.exp
ld/testsuite/ld.cdtest/cdtest.exp
ld/testsuite/ld.scripts/.Sanitize
ld/testsuite/ld.scripts/defined.exp
ld/testsuite/ld.scripts/script.exp [new file with mode: 0644]
ld/testsuite/ld.scripts/script.s [new file with mode: 0644]
ld/testsuite/ld.scripts/script.t [new file with mode: 0644]

index f2df1ea287ffef5c213ff802657c215cd0345743..cee77f47b4af46764146f36262ef9dfb67cb6605 100644 (file)
@@ -1,3 +1,14 @@
+Wed Sep 28 12:18:54 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+       * config/default.exp: Set variables as and nm.  Create tmpdir if
+       it does not already exist.
+       * ld.bootstrap/bootstrap.exp: Don't create tmpdir here.
+       * ld.cdtest/cdtest.exp: Likewise.
+       * ld.scripts/defined.exp: Likewise.  Also, don't set as and nm
+       here.  Change perror for no variables found to fail.
+       * ld.scripts/script.exp: New test.
+       * ld.scripts/script.t, ld.scripts/script.s: New files.
+
 Tue Sep 27 14:59:51 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
 
        * ld.scripts: New directory.
index 76d95b5ead57b48884be9b6300d059f92aa48b30..f2e7c5cc7db2cd2b49fa3661d598461664eb8290 100644 (file)
@@ -28,8 +28,6 @@ if ![isnative] {return}
 # we need the object files.
 if {$ld != "$objdir/ld.new"} {return}
 
-if ![file isdirectory tmpdir] {catch "exec mkdir tmpdir" status}
-
 # Bootstrap ld.  First link the object files together using -r, in
 # order to test -r.  Then link the result into an executable, ld1, to
 # really test -r.  Use ld1 to link a fresh ld, ld2.  Use ld2 to link a
index e605c6118ff06dbe90c2e33ca5a92c96bac2adbb..bc390f2c476aff73d70115ed2e0e6a672b65f4f2 100644 (file)
@@ -24,8 +24,6 @@
 # This test requires running the executable generated by ld.
 if ![isnative] {return}
 
-if ![file isdirectory tmpdir] {catch "exec mkdir tmpdir" status}
-
 if ![ld_compile "$CXX $CXXFLAGS -fgnu-linker" $srcdir$subdir/cdtest-foo.cc tmpdir/cdtest-foo.o] {
     return
 }
index 3f2a02ef44d231764be67450a4e56c91d4f9b8fb..b68da1b6cc3be71f8979e3a93079698d5873e4ba 100644 (file)
@@ -26,6 +26,9 @@ Things-to-keep:
 defined.exp
 defined.s
 defined.t
+script.exp
+script.s
+script.t
 
 Things-to-lose:
 
index d551f08000049350ef36e0566d338307d6ae77f0..a1f86986fb3758cedd82dc7fd3752a3dc66a45c8 100644 (file)
@@ -1,11 +1,6 @@
 # Test DEFINED in a linker script.
 # By Ian Lance Taylor, Cygnus Support.
 
-if ![file isdirectory tmpdir] {catch "exec mkdir tmpdir" status}
-
-set as [findfile $base_dir/../gas/as.new $base_dir/../gas/as.new [transform as]]
-set nm [findfile $base_dir/../binutils/nm.new $base_dir/../binutils/nm.new [transform nm]]
-
 if ![ld_assemble $as $srcdir$subdir/defined.s tmpdir/def.o] { return }
 
 set prms_id 5699
@@ -16,7 +11,7 @@ if ![ld_simple_link $ld tmpdir/def "-T $srcdir$subdir/defined.t tmpdir/def.o"] {
     if [ld_nm $nm tmpdir/def] {
        if {![info exists nm_output(value1)] \
             || ![info exists nm_output(value2)]} {
-           perror "bad output from $nm"
+           fail "DEFINED (bad output from $nm)"
        } else {
            if {$nm_output(value1) != 1} {
                fail "DEFINED (value1 == $nm_output(value1))"
diff --git a/ld/testsuite/ld.scripts/script.exp b/ld/testsuite/ld.scripts/script.exp
new file mode 100644 (file)
index 0000000..0cbd084
--- /dev/null
@@ -0,0 +1,31 @@
+# Test basic linker script functionality
+# By Ian Lance Taylor, Cygnus Support
+
+if ![ld_assemble $as $srcdir$subdir/script.s tmpdir/script.o] { return }
+
+if ![ld_simple_link $ld tmpdir/script "-T $srcdir$subdir/script.t tmpdir/script.o"] {
+    fail script
+} else {
+    if [ld_nm $nm tmpdir/script] {
+       if {![info exists nm_output(text_start)] \
+            || ![info exists nm_output(text_end)] \
+            || ![info exists nm_output(data_start)] \
+            || ![info exists nm_output(data_end)]} {
+           fail "script (bad output from $nm)"
+       } else {
+           if {$nm_output(text_start) != 0x100} {
+               fail "script (text_start == $nm_output(text_start))"
+           } else { if {$nm_output(text_end) < 0x104 \
+                         || $nm_output(text_end) > 0x110} {
+               fail "script (text_end == $nm_output(text_end))"
+           } else { if {$nm_output(data_start) != 0x1000} {
+               fail "script (data_start == $nm_output(data_start))"
+           } else { if {$nm_output(data_end) < 0x1004 \
+                        || $nm_output(data_end) > 0x1010} {
+               fail "script (data_end == $nm_output(data_end))"
+           } else {
+               pass script
+           } } } }
+       }
+    }
+}
diff --git a/ld/testsuite/ld.scripts/script.s b/ld/testsuite/ld.scripts/script.s
new file mode 100644 (file)
index 0000000..a862911
--- /dev/null
@@ -0,0 +1,6 @@
+       .text
+text_symbol:   
+       .long   1
+       .data
+data_symbol:   
+       .long   2
diff --git a/ld/testsuite/ld.scripts/script.t b/ld/testsuite/ld.scripts/script.t
new file mode 100644 (file)
index 0000000..3da47e1
--- /dev/null
@@ -0,0 +1,14 @@
+SECTIONS
+{
+  .text 0x100 : { 
+    text_start = .;
+    *(.text)
+    text_end = .;
+  }
+  . = 0x1000;
+  .data : {
+    data_start = .;
+    *(.data)
+    data_end = .;
+  }
+}