HIP: Fix linking mixed-lang binary with CXX compiler and Makefile generators

Following commit 6377a43814 (CUDA: Support response files with nvcc,
2022-06-01, v3.25.0-rc1~636^2), while determining the compiler ABI, do
not use response files, so that we can extract implicit link flags.

Fixes: #25272
This commit is contained in:
Brad King 2023-09-25 15:12:14 -04:00
parent 4794505122
commit e43918b4ca
2 changed files with 14 additions and 4 deletions

View File

@ -732,10 +732,16 @@ cm::optional<cmTryCompileResult> cmCoreTryCompile::TryCompileCode(
// The link and compile lines for ABI detection step need to not use
// response files so we can extract implicit includes given to
// the underlying host compiler
if (testLangs.find("CUDA") != testLangs.end()) {
fprintf(fout, "set(CMAKE_CUDA_USE_RESPONSE_FILE_FOR_INCLUDES OFF)\n");
fprintf(fout, "set(CMAKE_CUDA_USE_RESPONSE_FILE_FOR_LIBRARIES OFF)\n");
fprintf(fout, "set(CMAKE_CUDA_USE_RESPONSE_FILE_FOR_OBJECTS OFF)\n");
static std::array<std::string, 2> const noRSP{ { "CUDA", "HIP" } };
for (std::string const& lang : noRSP) {
if (testLangs.find(lang) != testLangs.end()) {
fprintf(fout, "set(CMAKE_%s_USE_RESPONSE_FILE_FOR_INCLUDES OFF)\n",
lang.c_str());
fprintf(fout, "set(CMAKE_%s_USE_RESPONSE_FILE_FOR_LIBRARIES OFF)\n",
lang.c_str());
fprintf(fout, "set(CMAKE_%s_USE_RESPONSE_FILE_FOR_OBJECTS OFF)\n",
lang.c_str());
}
}
}
fprintf(fout, "set(CMAKE_VERBOSE_MAKEFILE 1)\n");

View File

@ -17,3 +17,7 @@ set_target_properties(MixedStaticLib PROPERTIES POSITION_INDEPENDENT_CODE ON)
add_executable(HIPMixedLanguage main.cxx)
target_link_libraries(HIPMixedLanguage PRIVATE MixedStaticLib MixedSharedLib)
add_executable(HIPMixedLanguageCXX main.cxx)
target_link_libraries(HIPMixedLanguageCXX PRIVATE MixedStaticLib MixedSharedLib)
set_property(TARGET HIPMixedLanguageCXX PROPERTY LINKER_LANGUAGE CXX)