diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2014-01-09 09:01:53 -0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2014-01-09 09:01:53 -0800 |
commit | 92c09111f34c464c3dd2b0cfbfa13c3b6c74c3e5 (patch) | |
tree | b2a7f2670a76ec18668f470d5242db16abb73eb0 /ld/testsuite/lib | |
parent | 09bf66a8e8f7e62f6e842b42b048721abef49904 (diff) | |
download | gdb-92c09111f34c464c3dd2b0cfbfa13c3b6c74c3e5.zip gdb-92c09111f34c464c3dd2b0cfbfa13c3b6c74c3e5.tar.gz gdb-92c09111f34c464c3dd2b0cfbfa13c3b6c74c3e5.tar.bz2 |
Add and use check_lto_shared_available
2014-01-09 Vidya Praveen <vidyapraveen@arm.com>
* lib/ld-lib.exp (check_lto_shared_available): New check.
* ld-plugin/lto.exp: Use check_lto_shared_available.
Diffstat (limited to 'ld/testsuite/lib')
-rw-r--r-- | ld/testsuite/lib/ld-lib.exp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp index c04b56f..54b617f 100644 --- a/ld/testsuite/lib/ld-lib.exp +++ b/ld/testsuite/lib/ld-lib.exp @@ -1679,6 +1679,45 @@ proc check_lto_available { } { return $lto_available_saved } +# Returns true if the target compiler supports LTO and -shared +proc check_lto_shared_available { } { + global lto_shared_available_saved + global CC + + 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]" + } + + if {![info exists lto_shared_available_saved]} { + # Check if gcc supports -flto -fuse-linker-plugin -shared + if { [which $CC] == 0 } { + set lto_shared_available_saved 0 + return 0 + } + set basename "lto_shared" + set src ${basename}[pid].c + set output ${basename}[pid].so + set f [open $src "w"] + puts $f "" + close $f + set status [remote_exec host $CC "$flags -shared -fPIC -B[pwd]/tmpdir/ld/ -flto -fuse-linker-plugin $src -o $output"] + if { [lindex $status 0] == 0 } { + set lto_shared_available_saved 1 + } else { + set lto_shared_available_saved 0 + } + file delete $src + file delete $output + } + return $lto_shared_available_saved +} + # Check if the assembler supports CFI statements. proc check_as_cfi { } { |