diff options
-rw-r--r-- | ld/testsuite/ChangeLog | 11 | ||||
-rw-r--r-- | ld/testsuite/config/default.exp | 10 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/exclude.exp | 12 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/frame.exp | 14 | ||||
-rw-r--r-- | ld/testsuite/lib/ld-lib.exp | 4 |
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 |