+2019-01-17 Andrew Stubbs <ams@codesourcery.com>
+
+ * doc/sourcebuild.texi: Document dg-require-effective-target
+ llvm_binutils and offload_gcn.
+
2019-01-17 Andrew Stubbs <ams@codesourcery.com>
Kwok Cheung Yeung <kcy@codesourcery.com>
Julian Brown <julian@codesourcery.com>
Target keeps null pointer checks, either due to the use of
@option{-fno-delete-null-pointer-checks} or hardwired into the target.
+@item llvm_binutils
+Target is using an LLVM assembler and/or linker, instead of GNU Binutils.
+
@item lto
Compiler has been configured to support link-time optimization (LTO).
@item nonpic
Target does not generate PIC by default.
+@item offload_gcn
+Target has been configured for OpenACC/OpenMP offloading on AMD GCN.
+
@item pie_enabled
Target generates PIE by default.
+2019-01-17 Andrew Stubbs <ams@codesourcery.com>
+
+ * lib/file-format.exp (gcc_target_object_format): Handle AMD GCN.
+ * lib/gcc-dg.exp (gcc-dg-prune): Ignore blank lines from the LLVM
+ linker.
+ * lib/target-supports.exp (check_effective_target_llvm_binutils): New.
+
2019-01-17 Andrew Stubbs <ams@codesourcery.com>
* gcc.dg/graphite/scop-19.c: Check pie_enabled.
} elseif { [istarget *-*-aix*] } {
# AIX doesn't necessarily have objdump, so hand-code it.
set gcc_target_object_format_saved coff
+ } elseif { [istarget *-*-amdhsa*] } {
+ # AMD GCN uses LLVM objdump which is not CLI-compatible
+ set gcc_target_object_format_saved elf
} else {
set objdump_name [find_binutils_prog objdump]
set open_file [open objfmtst.c w]
# Complain about blank lines in the output (PR other/69006)
global allow_blank_lines
- if { !$allow_blank_lines } {
+ if { !$allow_blank_lines && ![check_effective_target_llvm_binutils]} {
set num_blank_lines [llength [regexp -all -inline "\n\n" $text]]
if { $num_blank_lines } {
global testname_with_flags
} "-foffload=hsa" ]
}
+# Return 1 if the compiler has been configured with hsa offloading.
+
+proc check_effective_target_offload_gcn { } {
+ return [check_no_compiler_messages offload_gcn assembly {
+ int main () {return 0;}
+ } "-foffload=amdgcn-unknown-amdhsa" ]
+}
+
# Return 1 if the target support -fprofile-update=atomic
proc check_effective_target_profile_update_atomic {} {
return [check_no_compiler_messages profile_update_atomic assembly {
}]
}
+# Return 1 if this target uses an LLVM assembler and/or linker
+proc check_effective_target_llvm_binutils { } {
+ return [expr { [istarget amdgcn*-*-*]
+ || [check_effective_target_offload_gcn] } ]
+}