mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2025-12-09 00:07:57 +03:00
flag-o-matic.eclass: Add functions for testing/stipping HIPFLAGS
HIPFLAFS allows to specify default compilation flags to be used when compiling HIP files. As environment variable, it is supported in CMake for all projects that specify HIP as language[1][2]. Some flags like -mtls-dialect=* are not supported by HIP compiler; test-flags-HIPCXX can be used to test flags. [1] https://cmake.org/cmake/help/latest/envvar/HIPFLAGS.html [2] https://rocm.docs.amd.com/en/latest/conceptual/cmake-packages.html#using-the-hip-single-source-programming-model Bug: https://bugs.gentoo.org/957893 Signed-off-by: Sv. Lockal <lockalsash@gmail.com> Part-of: https://github.com/gentoo/gentoo/pull/42691 Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
parent
1f14d47e71
commit
74d25eedd9
@ -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}"
|
||||
;;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user