+2017-01-23 Jiong Wang <jiong.wang@arm.com>
+
+ * testsuite/lib/ld-lib.exp (run_ld_link_exec_tests): Append
+ board_cflags as gcc is used as linker driver.
+ * testsuite/ld-unique/unique.exp: Likewise
+
2017-01-20 Jiong Wang <jiong.wang@arm.com>
* testsuite/ld-aarch64/aarch64-elf.exp (aarch64elflinktests): New tests.
set fails [expr $fails + 1]
}
+# When using GCC as the linker driver, we need to specify board cflags when
+# linking because cflags may contain linker options. For example when linker
+# options are included in GCC spec files then we need the -specs option.
+if [board_info [target_info name] exists cflags] {
+ set board_cflags " [board_info [target_info name] cflags]"
+} else {
+ set board_cflags ""
+}
+
# Create executable containing unique symbol.
-if ![ld_link $CC "tmpdir/unique_prog" "tmpdir/unique.o"] {
+if ![ld_link "$CC $board_cflags" "tmpdir/unique_prog" "tmpdir/unique.o"] {
fail "Could not link a unique executable"
set fails [expr $fails + 1]
}
global CXXFLAGS
global errcnt
global exec_output
+ global board_cflags
+
+ # When using GCC as the linker driver, we need to specify board cflags when
+ # linking because cflags may contain linker options. For example when
+ # linker options are included in GCC spec files then we need the -specs
+ # option.
+ if [board_info [target_info name] exists cflags] {
+ set board_cflags " [board_info [target_info name] cflags]"
+ } else {
+ set board_cflags ""
+ }
foreach testitem $ldtests {
foreach target $args {
# compile only
pass $testname
continue;
- } elseif ![$link_proc $link_cmd $binfile "-L$srcdir/$subdir $ld_options $objfiles"] {
+ } elseif ![$link_proc $link_cmd $binfile "$board_cflags -L$srcdir/$subdir $ld_options $objfiles"] {
set failed 1
}