aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@codesourcery.com>2004-02-23 10:10:02 +0000
committerNathan Sidwell <nathan@codesourcery.com>2004-02-23 10:10:02 +0000
commit1b493742004fd74ebe85a9f93bf28aebe8e858c8 (patch)
treef1826439768b794f38f3eaa09a25daafcb5a0634 /ld/testsuite
parent33ed461333b1726596e446392627ad2a93b6a62c (diff)
downloadgdb-1b493742004fd74ebe85a9f93bf28aebe8e858c8.zip
gdb-1b493742004fd74ebe85a9f93bf28aebe8e858c8.tar.gz
gdb-1b493742004fd74ebe85a9f93bf28aebe8e858c8.tar.bz2
* ldlang.h (struct lang_output_section_state): Change processed
field's type. * ldexp.c (check, invalid): Remove. (fold_name): Move valid_p assignments. Create undefined symbol when needed. Directly exampine section's processd flag. * ldlang.c (lang_output_section_statement_lookup): Adjust processed field init. (lang_size_sections_1): Allow LOADADDR when determining section's VMA. Adjust error message. Fold data statement's expr. (lang_size_sections): Correctly increment lang_statement_iteration. * ld-scripts/provide.exp: New. * ld-scripts/provide-{1,2,3}.{s,t,d}.exp: New. * ldexp.c (fold_tree): Follow indirect symbols.
Diffstat (limited to 'ld/testsuite')
-rw-r--r--ld/testsuite/ChangeLog5
-rw-r--r--ld/testsuite/ld-scripts/provide-1.d8
-rw-r--r--ld/testsuite/ld-scripts/provide-1.s3
-rw-r--r--ld/testsuite/ld-scripts/provide-1.t11
-rw-r--r--ld/testsuite/ld-scripts/provide-2.d6
-rw-r--r--ld/testsuite/ld-scripts/provide-2.s6
-rw-r--r--ld/testsuite/ld-scripts/provide-2.t10
-rw-r--r--ld/testsuite/ld-scripts/provide-3.d3
-rw-r--r--ld/testsuite/ld-scripts/provide-3.s3
-rw-r--r--ld/testsuite/ld-scripts/provide-3.t11
-rw-r--r--ld/testsuite/ld-scripts/provide.exp25
11 files changed, 91 insertions, 0 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index 2bb7510..9622064 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2004-02-23 Nathan Sidwell <nathan@codesourcery.com>
+
+ * ld-scripts/provide.exp: New.
+ * ld-scripts/provide-{1,2,3}.{s,t,d}.exp: New.
+
2004-02-23 Alan Modra <amodra@bigpond.net.au>
* ld-scripts/data.t: Set ".other" address so location doesn't
diff --git a/ld/testsuite/ld-scripts/provide-1.d b/ld/testsuite/ld-scripts/provide-1.d
new file mode 100644
index 0000000..bec3982
--- /dev/null
+++ b/ld/testsuite/ld-scripts/provide-1.d
@@ -0,0 +1,8 @@
+#source: provide-1.s
+#ld: -T provide-1.t
+#objdump: -s -j .data
+
+.*: file format .*
+
+Contents of section .data:
+ 0000 (08)?000000(08)? (0c)?000000(0c)? 00000000 ............
diff --git a/ld/testsuite/ld-scripts/provide-1.s b/ld/testsuite/ld-scripts/provide-1.s
new file mode 100644
index 0000000..6395f3a
--- /dev/null
+++ b/ld/testsuite/ld-scripts/provide-1.s
@@ -0,0 +1,3 @@
+ .data
+ .globl foo
+foo: .long 0
diff --git a/ld/testsuite/ld-scripts/provide-1.t b/ld/testsuite/ld-scripts/provide-1.t
new file mode 100644
index 0000000..dd30956
--- /dev/null
+++ b/ld/testsuite/ld-scripts/provide-1.t
@@ -0,0 +1,11 @@
+SECTIONS
+{
+ .data :
+ {
+ LONG (foo)
+ LONG (bar)
+ *(.data)
+ }
+ PROVIDE (foo = .);
+ PROVIDE (bar = .);
+}
diff --git a/ld/testsuite/ld-scripts/provide-2.d b/ld/testsuite/ld-scripts/provide-2.d
new file mode 100644
index 0000000..3b59e32
--- /dev/null
+++ b/ld/testsuite/ld-scripts/provide-2.d
@@ -0,0 +1,6 @@
+#source: provide-2.s
+#ld: -T provide-2.t
+#nm: -B
+0+3 A baz
+0+0 D foo
+
diff --git a/ld/testsuite/ld-scripts/provide-2.s b/ld/testsuite/ld-scripts/provide-2.s
new file mode 100644
index 0000000..6fa93e4
--- /dev/null
+++ b/ld/testsuite/ld-scripts/provide-2.s
@@ -0,0 +1,6 @@
+ .data
+ .globl foo
+foo: .long 0
+
+ .globl baz
+ .long baz
diff --git a/ld/testsuite/ld-scripts/provide-2.t b/ld/testsuite/ld-scripts/provide-2.t
new file mode 100644
index 0000000..f128d5e1
--- /dev/null
+++ b/ld/testsuite/ld-scripts/provide-2.t
@@ -0,0 +1,10 @@
+SECTIONS
+{
+ PROVIDE (foo = 1);
+ PROVIDE (bar = 2);
+ PROVIDE (baz = 3);
+ .data :
+ {
+ *(.data)
+ }
+}
diff --git a/ld/testsuite/ld-scripts/provide-3.d b/ld/testsuite/ld-scripts/provide-3.d
new file mode 100644
index 0000000..1ee38e3
--- /dev/null
+++ b/ld/testsuite/ld-scripts/provide-3.d
@@ -0,0 +1,3 @@
+#source: provide-2.s
+#ld: -T provide-2.t
+#error: symbol defined in linker script and object file
diff --git a/ld/testsuite/ld-scripts/provide-3.s b/ld/testsuite/ld-scripts/provide-3.s
new file mode 100644
index 0000000..6395f3a
--- /dev/null
+++ b/ld/testsuite/ld-scripts/provide-3.s
@@ -0,0 +1,3 @@
+ .data
+ .globl foo
+foo: .long 0
diff --git a/ld/testsuite/ld-scripts/provide-3.t b/ld/testsuite/ld-scripts/provide-3.t
new file mode 100644
index 0000000..f6229d4
--- /dev/null
+++ b/ld/testsuite/ld-scripts/provide-3.t
@@ -0,0 +1,11 @@
+SECTIONS
+{
+ .data :
+ {
+ LONG (foo)
+ LONG (bar)
+ *(.data)
+ }
+ foo = .;
+ bar = .;
+}
diff --git a/ld/testsuite/ld-scripts/provide.exp b/ld/testsuite/ld-scripts/provide.exp
new file mode 100644
index 0000000..0092674
--- /dev/null
+++ b/ld/testsuite/ld-scripts/provide.exp
@@ -0,0 +1,25 @@
+# Test PROVIDE in a linker script.
+# By Nathan Sidwell, CodeSourcery LLC
+# 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.
+
+set testname "provide"
+
+run_dump_test provide-1
+run_dump_test provide-2
+setup_xfail *-*-*
+run_dump_test provide-3