diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2015-07-27 03:42:39 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2015-07-27 05:12:02 -0700 |
commit | e10461aebd2c9165c168583e70e7901e962ed1bb (patch) | |
tree | 7c17a17e508129fef48d6d54359016dd77628ebd /ld | |
parent | 32f573bcb3aaa1c9defcad79dbb5851fcc02ae2d (diff) | |
download | fsf-binutils-gdb-e10461aebd2c9165c168583e70e7901e962ed1bb.zip fsf-binutils-gdb-e10461aebd2c9165c168583e70e7901e962ed1bb.tar.gz fsf-binutils-gdb-e10461aebd2c9165c168583e70e7901e962ed1bb.tar.bz2 |
Set PLT_CFLAGS to "-fplt" if supported
GCC 6 supports -fno-plt. But some linker tests expect PLT. This patch
defines PLT_CFLAGS to "-fplt" if target compiler supports it.
* config/default.exp (PLT_CFLAGS): New.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | ld/testsuite/config/default.exp | 35 |
2 files changed, 39 insertions, 0 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index db1302f..a81149c 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2015-07-27 H.J. Lu <hongjiu.lu@intel.com> + + * config/default.exp (PLT_CFLAGS): New. + 2015-07-27 Szabolcs Nagy <szabolcs.nagy@arm.com> PR ld/18705 diff --git a/ld/testsuite/config/default.exp b/ld/testsuite/config/default.exp index e25189b..5acc963 100644 --- a/ld/testsuite/config/default.exp +++ b/ld/testsuite/config/default.exp @@ -278,3 +278,38 @@ if ![info exists LD] then { if ![info exists LDFLAGS] then { set LDFLAGS {} } + +# Set PLT_CFLAGS to "-fplt" if target compiler supports it. + +if { ![info exists PLT_CFLAGS] } then { + if { [which $CC] != 0 } { + # Check if gcc supports -fplt + set flags "" + if [board_info [target_info name] exists cflags] { + append flags " [board_info [target_info name] cflags]" + } + if [board_info [target_info name] exists ldflags] { + append flags " [board_info [target_info name] ldflags]" + } + + set basename "tmpdir/plt[pid]" + set src ${basename}.c + set output ${basename}.o + set f [open $src "w"] + puts $f "" + close $f + remote_download host $src + set plt_available [run_host_cmd_yesno "$CC" "$flags -c -fplt $src -o $output"] + remote_file host delete $src + remote_file host delete $output + file delete $src + + if { $plt_available == 1 } then { + set PLT_CFLAGS "-fplt" + } else { + set PLT_CFLAGS "" + } + } else { + set PLT_CFLAGS "" + } +} |