Commit e05de0a9 by Uros Bizjak Committed by Uros Bizjak

target-supports.exp (check_ifunc_available): Rewrite.

	* lib/target-supports.exp (check_ifunc_available): Rewrite.

From-SVN: r176616
parent 7fd72c6f
2011-07-22 Uros Bizjak <ubizjak@gmail.com>
* lib/target-supports.exp (check_ifunc_available): Rewrite.
2011-07-21 Sebastian Pop <sebastian.pop@amd.com> 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
PR middle-end/47654 PR middle-end/47654
......
...@@ -361,45 +361,16 @@ proc check_alias_available { } { ...@@ -361,45 +361,16 @@ proc check_alias_available { } {
return $alias_available_saved return $alias_available_saved
} }
############################### # Returns 1 if the target supports ifunc, 0 otherwise.
# proc check_ifunc_available { }
###############################
# Determine if the target toolchain supports the ifunc attribute.
# Returns 1 if the target supports ifunc. Returns 0 if the target
# does not support ifunc.
proc check_ifunc_available { } { proc check_ifunc_available { } {
global ifunc_available_saved return [check_no_compiler_messages ifunc_available object {
global tool #ifdef __cplusplus
extern "C"
if [info exists ifunc_available_saved] { #endif
verbose "check_ifunc_available returning saved $ifunc_available_saved" 2 void g() {}
} else { void f() __attribute__((ifunc("g")));
set src ifunc[pid].c }]
set obj ifunc[pid].o
verbose "check_ifunc_available compiling testfile $src" 2
set f [open $src "w"]
puts $f "#endif"
puts $f "#ifdef __cplusplus\nextern \"C\"\n#endif"
puts $f "void g() {}"
puts $f "void f() __attribute__((ifunc(\"g\")));"
close $f
set lines [${tool}_target_compile $src $obj object ""]
file delete $src
remote_file build delete $obj
if [string match "" $lines] then {
set ifunc_available_saved 1
} else {
set ifunc_available_saved 0
}
verbose "check_ifunc_available returning $ifunc_available_saved" 2
}
return $ifunc_available_saved
} }
# Returns true if --gc-sections is supported on the target. # Returns true if --gc-sections is supported on the target.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment