aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ld/testsuite/ChangeLog11
-rw-r--r--ld/testsuite/config/default.exp10
-rw-r--r--ld/testsuite/ld-elf/exclude.exp12
-rw-r--r--ld/testsuite/ld-elf/frame.exp14
-rw-r--r--ld/testsuite/lib/ld-lib.exp4
5 files changed, 43 insertions, 8 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index 2cbe74c..1bb19fe 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,3 +1,14 @@
+2011-05-12 Bernd Schmidt <bernds@codesourcery.com>
+
+ * config/default.exp (ld_assemble): Pass flags parameter to
+ default_ld_assemble.
+ (ld_assemble_flags): New function.
+ * ld-elf/frame.exp: Pass -mpic and -mpid flags to the assembler on
+ tic6x.
+ * ld-elf/exclude.exp: Likewise.
+ * lib/ld-lib.exp (default_ld_assemble): Take extra argument in_flags
+ and pass it to the assembler.
+
2011-05-11 Richard Sandiford <rdsandiford@googlemail.com>
* ld-mips-elf/mips-elf.exp: Add missing $has_newabi tests.
diff --git a/ld/testsuite/config/default.exp b/ld/testsuite/config/default.exp
index 043a885..26a7a0c 100644
--- a/ld/testsuite/config/default.exp
+++ b/ld/testsuite/config/default.exp
@@ -205,7 +205,15 @@ proc ld_compile { cc source object } {
# assemble a file
#
proc ld_assemble { as source object } {
- default_ld_assemble $as $source $object
+ default_ld_assemble $as "" $source $object
+}
+
+#
+# ld_assemble_flags
+# assemble a file with extra flags
+#
+proc ld_assemble_flags { as flags source object } {
+ default_ld_assemble $as $flags $source $object
}
#
diff --git a/ld/testsuite/ld-elf/exclude.exp b/ld/testsuite/ld-elf/exclude.exp
index 124549f..28a34ab 100644
--- a/ld/testsuite/ld-elf/exclude.exp
+++ b/ld/testsuite/ld-elf/exclude.exp
@@ -31,6 +31,14 @@ if { [istarget "mcore-*-*"] } {
return
}
+set as_opt ""
+
+# This target requires extra as options when building code for shared
+# libraries.
+if { [istarget "tic6x-*-*"] } {
+ set as_opt "-mpic -mpid=near"
+}
+
global ar
global as
global ld
@@ -47,8 +55,8 @@ set test7 "ld exclude symbols from archive - --exclude-libs foo:libexclude.a"
set test8 "ld exclude symbols from archive - --exclude-libs foo,libexclude.a"
set test9 "ld don't exclude symbols from archive - --exclude-libs foo:bar"
-if { ![ld_assemble $as $srcdir/$subdir/exclude1.s tmpdir/exclude1.o ]
- || ![ld_assemble $as $srcdir/$subdir/exclude2.s tmpdir/exclude2.o] } {
+if { ![ld_assemble_flags $as $as_opt $srcdir/$subdir/exclude1.s tmpdir/exclude1.o ]
+ || ![ld_assemble_flags $as $as_opt $srcdir/$subdir/exclude2.s tmpdir/exclude2.o] } {
unresolved $test1
return
}
diff --git a/ld/testsuite/ld-elf/frame.exp b/ld/testsuite/ld-elf/frame.exp
index 0a69024..66e6ac5 100644
--- a/ld/testsuite/ld-elf/frame.exp
+++ b/ld/testsuite/ld-elf/frame.exp
@@ -44,14 +44,22 @@ if { [istarget "hppa64-*-*"] || [istarget "v850-*-*"] } {
return
}
+set as_opt ""
+
+# This target requires extra as options when building code for shared
+# libraries.
+if { [istarget "tic6x-*-*"] } {
+ set as_opt "-mpic -mpid=near"
+}
+
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] } {
+if { ![ld_assemble_flags $as $as_opt $srcdir/$subdir/tbss.s tmpdir/tbss.o ]
+ || ![ld_assemble_flags $as $as_opt $srcdir/$subdir/frame.s tmpdir/frame.o] } {
unresolved "$test1"
return
}
@@ -66,7 +74,7 @@ if { [ld_simple_link $ld tmpdir/frame.so "--shared tmpdir/frame.o tmpdir/tbss.o"
}
}
-if ![ld_assemble $as $srcdir/$subdir/table.s tmpdir/table.o ] {
+if ![ld_assemble_flags $as $as_opt $srcdir/$subdir/table.s tmpdir/table.o ] {
unresolved "$test2"
return
}
diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp
index 0591e8b..2fb8c4a 100644
--- a/ld/testsuite/lib/ld-lib.exp
+++ b/ld/testsuite/lib/ld-lib.exp
@@ -295,14 +295,14 @@ proc default_ld_compile { cc source object } {
# Assemble a file.
#
-proc default_ld_assemble { as source object } {
+proc default_ld_assemble { as in_flags source object } {
global ASFLAGS
global host_triplet
if ![info exists ASFLAGS] { set ASFLAGS "" }
set flags [big_or_little_endian]
- set exec_output [run_host_cmd "$as" "$flags $ASFLAGS -o $object $source"]
+ set exec_output [run_host_cmd "$as" "$flags $in_flags $ASFLAGS -o $object $source"]
set exec_output [prune_warnings $exec_output]
if [string match "" $exec_output] then {
return 1