summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/doc/sourcebuild.texi3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/960321-1.x15
-rw-r--r--gcc/testsuite/lib/target-supports.exp22
5 files changed, 50 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 181781e3fdb..acec1c72180 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2010-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * doc/sourcebuild.texi (Effective-Target Keywords, Other
+ attributes): Document gas.
+
2010-06-07 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (*add<mode>_1): Remove alternative 2.
diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi
index c4353c790c5..cb116a93f57 100644
--- a/gcc/doc/sourcebuild.texi
+++ b/gcc/doc/sourcebuild.texi
@@ -1734,6 +1734,9 @@ Target supports @option{-freorder-blocks-and-partition}.
@item fstack_protector
Target supports @option{-fstack-protector}.
+@item gas
+Target uses GNU @command{as}.
+
@item gc_sections
Target supports @option{--gc-sections}.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 50afa0dd51d..cfc229f4d39 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2010-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * lib/target-supports.exp (check_effective_target_gas): New proc.
+ * gcc.c-torture/execute/960321-1.x: New file.
+
2010-06-07 Jason Merrill <jason@redhat.com>
PR c++/44401
diff --git a/gcc/testsuite/gcc.c-torture/execute/960321-1.x b/gcc/testsuite/gcc.c-torture/execute/960321-1.x
new file mode 100644
index 00000000000..44cc702686d
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/960321-1.x
@@ -0,0 +1,15 @@
+# This test fails to link on 64-bit Solaris 2/x86 due to a Sun as bug.
+if { [istarget "i?86-*-solaris2*"]
+ && ! [check_effective_target_ilp32]
+ && ! [check_effective_target_gas] } {
+ set torture_eval_before_compile {
+ global compiler_conditional_xfail_data
+ set compiler_conditional_xfail_data {
+ "64-bit Sun as bug" \
+ { "i?86-*-solaris2*" } \
+ { "-O[1-3s]" } \
+ { "" }
+ }
+ }
+}
+return 0
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 6ad8c344585..1cdc53b4983 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -3333,6 +3333,28 @@ proc check_effective_target_correct_iso_cpp_string_wchar_protos { } {
}]
}
+# Return 1 if GNU as is used.
+
+proc check_effective_target_gas { } {
+ global use_gas_saved
+ global tool
+
+ if {![info exists use_gas_saved]} {
+ # Check if the as used by gcc is GNU as.
+ set gcc_as [lindex [${tool}_target_compile "-print-prog-name=as" "" "none" ""] 0]
+ # Provide /dev/null as input, otherwise gas times out reading from
+ # stdin.
+ set status [remote_exec host "$gcc_as" "-v /dev/null"]
+ set as_output [lindex $status 1]
+ if { [ string first "GNU" $as_output ] >= 0 } {
+ set use_gas_saved 1
+ } else {
+ set use_gas_saved 0
+ }
+ }
+ return $use_gas_saved
+}
+
# Return 1 if the compiler has been configure with link-time optimization
# (LTO) support.