summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--eclass/flag-o-matic.eclass26
1 files changed, 25 insertions, 1 deletions
diff --git a/eclass/flag-o-matic.eclass b/eclass/flag-o-matic.eclass
index f22854c646c7..1c9abe1280b6 100644
--- a/eclass/flag-o-matic.eclass
+++ b/eclass/flag-o-matic.eclass
@@ -636,6 +636,11 @@ _test-flag-PROG() {
cmdline_extra+=(-xc)
;;
+ hip)
+ in_ext='hip'
+ in_src='int main(void) { return 0; }'
+ cmdline_extra+=(-xhip -c)
+ ;;
esac
local test_in=${T}/test-flag.${in_ext}
local test_out=${T}/test-flag.exe
@@ -707,6 +712,12 @@ test-flag-FC() { _test-flag-PROG FC f95 "$@"; }
# Returns shell true if <flag> is supported by the C compiler and linker, else returns shell false.
test-flag-CCLD() { _test-flag-PROG CC c+ld "$@"; }
+# @FUNCTION: test-flag-HIPCXX
+# @USAGE: <flag>
+# @DESCRIPTION:
+# Returns shell true if <flag> is supported by the HIP compiler, else returns shell false.
+test-flag-HIPCXX() { _test-flag-PROG HIPCXX hip "$@"; }
+
# @FUNCTION: test-flags-PROG
# @USAGE: <compiler> <flag> [more flags...]
# @INTERNAL
@@ -788,6 +799,12 @@ test-flags-FC() { _test-flags-PROG FC "$@"; }
# Returns shell true if <flags> are supported by the C compiler and default linker, else returns shell false.
test-flags-CCLD() { _test-flags-PROG CCLD "$@"; }
+# @FUNCTION: test-flags-HIPCXX
+# @USAGE: <flags>
+# @DESCRIPTION:
+# Returns shell true if <flags> are supported by the HIP compiler and default linker, else returns shell false.
+test-flags-HIPCXX() { _test-flags-PROG HIPCXX "$@"; }
+
# @FUNCTION: test-flags
# @USAGE: <flags>
# @DESCRIPTION:
@@ -810,7 +827,7 @@ test_version_info() {
# @FUNCTION: strip-unsupported-flags
# @DESCRIPTION:
-# Strip {C,CXX,F,FC}FLAGS of any flags not supported by the active toolchain.
+# Strip {C,CXX,F,FC,HIP}FLAGS of any flags not supported by the active toolchain.
strip-unsupported-flags() {
[[ $# -ne 0 ]] && die "strip-unsupported-flags takes no arguments"
export CFLAGS=$(test-flags-CC ${CFLAGS})
@@ -818,6 +835,7 @@ strip-unsupported-flags() {
export FFLAGS=$(test-flags-F77 ${FFLAGS})
export FCFLAGS=$(test-flags-FC ${FCFLAGS})
export LDFLAGS=$(test-flags-CCLD ${LDFLAGS})
+ export HIPFLAGS=$(test-flags-HIPCXX ${HIPFLAGS})
}
# @FUNCTION: get-flag
@@ -1008,6 +1026,12 @@ test-compile() {
args+=(${FCFLAGS[@]} ${LDFLAGS[@]} -xf95)
libs+=(${LIBS[@]})
;;
+ hip)
+ compiler="$(tc-getHIPCXX)"
+ filename_in="${T}/test.hip"
+ filename_out="${T}/test.o"
+ args+=(${CFLAGS[@]} -xhip -c)
+ ;;
*)
die "Unknown compiled language ${lang}"
;;