+2007-04-10 Eric Christopher <echristo@apple.com>
+
+ * lib/target-supports.exp
+ (check_effective_target_fstack_protector): Rewrite.
+
2007-04-09 Mark Mitchell <mark@codesourcery.com>
PR c++/31449
}
# Return 1 if the target supports -fstack-protector
-
proc check_effective_target_fstack_protector {} {
- return [check_no_compiler_messages fstack_protector assembly {
- void foo (void) { }
- } "-fstack-protector"]
+ global tool
+ set result ""
+
+ set src stack_prot[pid].c
+ set exe stack_prot[pid].x
+
+ verbose "check_effective_target_fstack_protector compiling testfile $src" 2
+
+ set f [open $src "w"]
+ # Compile a small test program.
+ puts $f "int main (void)\n { return 0; }\n"
+ close $f
+
+ set opts "additional_flags=-fstack-protector"
+ set lines [${tool}_target_compile $src $exe executable "$opts" ]
+ file delete $src
+
+ if [string match "" $lines] then {
+ # No error messages, everything is OK.
+ set result [${tool}_load "./$exe" "" ""]
+ set status [lindex $result 0]
+ remote_file build delete $exe
+ verbose "check_iconv_available status is <$status>" 2
+
+ if { $status == "pass" } then {
+ return 1
+ }
+ }
+ return 0
}
# Return 1 if compilation with -freorder-blocks-and-partition is error-free