Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
tsoc
hg-misc-tools
Commits
24e48648
Commit
24e48648
authored
May 24, 2026
by
one
Browse files
Add dtk-amdclang-wrapper
parent
63d618ba
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
90 additions
and
0 deletions
+90
-0
projects/dtk-amdclang-wrapper/README.md
projects/dtk-amdclang-wrapper/README.md
+53
-0
projects/dtk-amdclang-wrapper/dtk-amdclang-wrapper
projects/dtk-amdclang-wrapper/dtk-amdclang-wrapper
+37
-0
No files found.
projects/dtk-amdclang-wrapper/README.md
0 → 100644
View file @
24e48648
# DTK amdclang/amdclang++ install options
Spack ROCm/CMake HIP language 可能会给
`amdclang++`
传入:
```
text
--gcc-toolchain=/opt/dtk/llvm
```
但
`/opt/dtk/llvm`
是 DTK LLVM/DCC 前缀,不是系统 GCC toolchain 前缀,可能导致 host 侧 C++ 标准库头文件查找失败,例如:
```
text
fatal error: 'cmath' file not found
```
这里给出两种修复方案。
## 方式一:安装 wrapper
下载
`dtk-amdclang-wrapper`
,然后安装:
安装命令:
```
sh
chmod
+x ./dtk-amdclang-wrapper
rm
-f
/opt/dtk/llvm/bin/amdclang /opt/dtk/llvm/bin/amdclang++
install
-m
0755 ./dtk-amdclang-wrapper /opt/dtk/llvm/bin/amdclang
install
-m
0755 ./dtk-amdclang-wrapper /opt/dtk/llvm/bin/amdclang++
```
可选环境变量:
```
sh
export
DTK_AMDCLANG_REAL
=
/opt/dtk/llvm/bin/dcc
export
DTK_BAD_GCC_TOOLCHAIN
=
/opt/dtk/llvm
export
DTK_GCC_TOOLCHAIN
=
/usr
```
适用场景:需要兼容 Spack ROCm/CMake 生成的
`--gcc-toolchain=/opt/dtk/llvm`
,并修复
`<cmath>`
等 C++ 标准库头文件查找问题。
## 方式二:安装 symlink
使用指向
`dcc`
的简单 symlink:
```
sh
rm
-f
/opt/dtk/llvm/bin/amdclang /opt/dtk/llvm/bin/amdclang++
ln
-s
/opt/dtk/llvm/bin/dcc /opt/dtk/llvm/bin/amdclang
ln
-s
/opt/dtk/llvm/bin/dcc /opt/dtk/llvm/bin/amdclang++
```
适用场景:构建系统不会传入错误的
`--gcc-toolchain=/opt/dtk/llvm`
。
projects/dtk-amdclang-wrapper/dtk-amdclang-wrapper
0 → 100755
View file @
24e48648
#!/usr/bin/env bash
set
-euo
pipefail
real_compiler
=
"
${
DTK_AMDCLANG_REAL
:-
/opt/dtk/llvm/bin/dcc
}
"
bad_gcc_toolchain
=
"
${
DTK_BAD_GCC_TOOLCHAIN
:-
/opt/dtk/llvm
}
"
fixed_gcc_toolchain
=
"
${
DTK_GCC_TOOLCHAIN
:-
/usr
}
"
args
=()
while
((
$#)
)
;
do
case
"
$1
"
in
--gcc-toolchain
=
"
$bad_gcc_toolchain
"
)
args+
=(
"--gcc-toolchain=
$fixed_gcc_toolchain
"
)
shift
;;
--gcc-toolchain
)
if
((
$#
>=
2
))
&&
[[
"
$2
"
==
"
$bad_gcc_toolchain
"
]]
;
then
args+
=(
"--gcc-toolchain"
"
$fixed_gcc_toolchain
"
)
shift
2
else
args+
=(
"
$1
"
)
shift
if
((
$#)
)
;
then
args+
=(
"
$1
"
)
shift
fi
fi
;;
*
)
args+
=(
"
$1
"
)
shift
;;
esac
done
exec
"
$real_compiler
"
"
${
args
[@]
}
"
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment