From b63bcda72229122ff91ec00608e2bf38e77f35f0 Mon Sep 17 00:00:00 2001 From: Tyler Yankee Date: Thu, 17 Sep 2026 17:10:45 -0400 Subject: [PATCH] CUDA, HIP: Revert false support for LINKER_LAUNCHER The implementation in commits 77312cc6 (CUDA: Add support for [CMAKE_]CUDA_LINKER_LAUNCHER, 2025-05-30, v4.1.0-rc1~80^2~1) and cdf2a36f (HIP: Add support for [CMAKE_]HIP_LINKER_LAUNCHER, 2025-05-30, v4.1.0-rc1~80^2) is broken, and the tests are wrongly configured so as to never actually run. Revert the entire feature to avoid future confusion, including documented support. Enable the test for Fortran, which was added but untested by commit d176a8c5ce (Fortran: Add support for [CMAKE_]Fortran_LINKER_LAUNCHER, 2025-05-26, v4.1.0-rc1~96^2), and whose implementation works. Issue: #26967 --- Help/prop_tgt/LANG_LINKER_LAUNCHER.rst | 12 -------- Help/release/4.1.rst | 2 +- Help/variable/CMAKE_LANG_LINKER_LAUNCHER.rst | 8 ----- Modules/CMakeCUDAInformation.cmake | 5 ---- Modules/CMakeHIPInformation.cmake | 5 ---- Source/cmTarget.cxx | 2 -- Tests/RunCMake/CMakeLists.txt | 30 +++++++++++-------- .../LinkerLauncher/CUDA-Build-stdout.txt | 1 - .../RunCMake/LinkerLauncher/CUDA-common.cmake | 4 --- .../LinkerLauncher/CUDA-env-Build-stdout.txt | 1 - Tests/RunCMake/LinkerLauncher/CUDA-env.cmake | 1 - .../CUDA-launch-Build-stdout.txt | 1 - .../CUDA-launch-env-Build-stdout.txt | 1 - .../LinkerLauncher/CUDA-launch-env.cmake | 3 -- .../RunCMake/LinkerLauncher/CUDA-launch.cmake | 3 -- Tests/RunCMake/LinkerLauncher/CUDA.cmake | 2 -- .../RunCMake/LinkerLauncher/HIP-common.cmake | 5 ---- .../LinkerLauncher/HIP-env-Build-stdout.txt | 1 - Tests/RunCMake/LinkerLauncher/HIP-env.cmake | 1 - .../HIP-launch-Build-stdout.txt | 1 - .../HIP-launch-env-Build-stdout.txt | 1 - .../LinkerLauncher/HIP-launch-env.cmake | 3 -- .../RunCMake/LinkerLauncher/HIP-launch.cmake | 3 -- Tests/RunCMake/LinkerLauncher/HIP.cmake | 2 -- .../LinkerLauncher/RunCMakeTest.cmake | 6 ---- Tests/RunCMake/LinkerLauncher/main.cu | 4 --- Tests/RunCMake/LinkerLauncher/main.hip | 4 --- 27 files changed, 18 insertions(+), 94 deletions(-) delete mode 100644 Tests/RunCMake/LinkerLauncher/CUDA-Build-stdout.txt delete mode 100644 Tests/RunCMake/LinkerLauncher/CUDA-common.cmake delete mode 100644 Tests/RunCMake/LinkerLauncher/CUDA-env-Build-stdout.txt delete mode 100644 Tests/RunCMake/LinkerLauncher/CUDA-env.cmake delete mode 100644 Tests/RunCMake/LinkerLauncher/CUDA-launch-Build-stdout.txt delete mode 100644 Tests/RunCMake/LinkerLauncher/CUDA-launch-env-Build-stdout.txt delete mode 100644 Tests/RunCMake/LinkerLauncher/CUDA-launch-env.cmake delete mode 100644 Tests/RunCMake/LinkerLauncher/CUDA-launch.cmake delete mode 100644 Tests/RunCMake/LinkerLauncher/CUDA.cmake delete mode 100644 Tests/RunCMake/LinkerLauncher/HIP-common.cmake delete mode 100644 Tests/RunCMake/LinkerLauncher/HIP-env-Build-stdout.txt delete mode 100644 Tests/RunCMake/LinkerLauncher/HIP-env.cmake delete mode 100644 Tests/RunCMake/LinkerLauncher/HIP-launch-Build-stdout.txt delete mode 100644 Tests/RunCMake/LinkerLauncher/HIP-launch-env-Build-stdout.txt delete mode 100644 Tests/RunCMake/LinkerLauncher/HIP-launch-env.cmake delete mode 100644 Tests/RunCMake/LinkerLauncher/HIP-launch.cmake delete mode 100644 Tests/RunCMake/LinkerLauncher/HIP.cmake delete mode 100644 Tests/RunCMake/LinkerLauncher/main.cu delete mode 100644 Tests/RunCMake/LinkerLauncher/main.hip diff --git a/Help/prop_tgt/LANG_LINKER_LAUNCHER.rst b/Help/prop_tgt/LANG_LINKER_LAUNCHER.rst index 875cf740bc..1669504d97 100644 --- a/Help/prop_tgt/LANG_LINKER_LAUNCHER.rst +++ b/Help/prop_tgt/LANG_LINKER_LAUNCHER.rst @@ -6,25 +6,13 @@ This property is implemented only when ```` is one of: * ``C`` - * ``CXX`` - -* ``CUDA`` - - .. versionadded:: 4.1 - * ``OBJC`` - * ``OBJCXX`` - * ``Fortran`` .. versionadded:: 4.1 -* ``HIP`` - - .. versionadded:: 4.1 - Specify a :ref:`semicolon-separated list ` containing a command line for a linker launching tool. The :ref:`Makefile Generators` and the :generator:`Ninja` generator will run this tool and pass the linker and its diff --git a/Help/release/4.1.rst b/Help/release/4.1.rst index 7b69e0a9e5..811ae21e3d 100644 --- a/Help/release/4.1.rst +++ b/Help/release/4.1.rst @@ -21,7 +21,7 @@ Generators ---------- * :ref:`Makefile Generators` and :ref:`Ninja Generators` gained support - for adding a linker launcher with ``Fortran``, ``CUDA``, and ``HIP``. + for adding a linker launcher with ``Fortran``. See the :variable:`CMAKE__LINKER_LAUNCHER` variable and :prop_tgt:`_LINKER_LAUNCHER` target property for details. diff --git a/Help/variable/CMAKE_LANG_LINKER_LAUNCHER.rst b/Help/variable/CMAKE_LANG_LINKER_LAUNCHER.rst index d51951ac4e..a9997f0e3f 100644 --- a/Help/variable/CMAKE_LANG_LINKER_LAUNCHER.rst +++ b/Help/variable/CMAKE_LANG_LINKER_LAUNCHER.rst @@ -11,10 +11,6 @@ This is done only when ```` is one of: * ``CXX`` -* ``CUDA`` - - .. versionadded:: 4.1 - * ``OBJC`` * ``OBJCXX`` @@ -23,9 +19,5 @@ This is done only when ```` is one of: .. versionadded:: 4.1 -* ``HIP`` - - .. versionadded:: 4.1 - This variable is initialized to the :envvar:`CMAKE__LINKER_LAUNCHER` environment variable if it is set. diff --git a/Modules/CMakeCUDAInformation.cmake b/Modules/CMakeCUDAInformation.cmake index 70a0e714c1..bc47aa1320 100644 --- a/Modules/CMakeCUDAInformation.cmake +++ b/Modules/CMakeCUDAInformation.cmake @@ -75,11 +75,6 @@ if(NOT CMAKE_CUDA_COMPILER_LAUNCHER AND DEFINED ENV{CMAKE_CUDA_COMPILER_LAUNCHER CACHE STRING "Compiler launcher for CUDA.") endif() -if(NOT CMAKE_CUDA_LINKER_LAUNCHER AND DEFINED ENV{CMAKE_CUDA_LINKER_LAUNCHER}) - set(CMAKE_CUDA_LINKER_LAUNCHER "$ENV{CMAKE_CUDA_LINKER_LAUNCHER}" - CACHE STRING "Linker launcher for CUDA.") -endif() - include(CMakeCommonLanguageInclude) _cmake_common_language_platform_flags(CUDA) diff --git a/Modules/CMakeHIPInformation.cmake b/Modules/CMakeHIPInformation.cmake index e8d02323e5..a141b4cefd 100644 --- a/Modules/CMakeHIPInformation.cmake +++ b/Modules/CMakeHIPInformation.cmake @@ -55,11 +55,6 @@ if(NOT CMAKE_HIP_COMPILER_LAUNCHER AND DEFINED ENV{CMAKE_HIP_COMPILER_LAUNCHER}) CACHE STRING "Compiler launcher for HIP.") endif() -if(NOT CMAKE_HIP_LINKER_LAUNCHER AND DEFINED ENV{CMAKE_HIP_LINKER_LAUNCHER}) - set(CMAKE_HIP_LINKER_LAUNCHER "$ENV{CMAKE_HIP_LINKER_LAUNCHER}" - CACHE STRING "Linker launcher for HIP.") -endif() - include(CMakeCommonLanguageInclude) _cmake_common_language_platform_flags(HIP) diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index a1f69cd9ba..8eeecad5e5 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -458,11 +458,9 @@ TargetProperty const StaticTargetProperties[] = { // ---- C++ { "CXX_LINKER_LAUNCHER"_s, IC::CanCompileSources }, // ---- CUDA - { "CUDA_LINKER_LAUNCHER"_s, IC::CanCompileSources }, { "CUDA_RESOLVE_DEVICE_SYMBOLS"_s, IC::CanCompileSources }, { "CUDA_RUNTIME_LIBRARY"_s, IC::CanCompileSources }, // ---- HIP - { "HIP_LINKER_LAUNCHER"_s, IC::CanCompileSources }, { "HIP_RUNTIME_LIBRARY"_s, IC::CanCompileSources }, // ---- Objective C { "OBJC_LINKER_LAUNCHER"_s, IC::CanCompileSources }, diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index e6f01484e6..bf1f31c617 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -1298,29 +1298,33 @@ if("${CMAKE_GENERATOR}" MATCHES "Make|Ninja|FASTBuild") -DPSEUDO_CPPCHECK=$ ) + add_RunCMake_test(ctest_labels_for_subprojects) + add_RunCMake_test(CompilerArgs) + + # Enable supported languages for {Compiler,Linker}Launcher. + if(DEFINED CMake_TEST_OBJC) + list(APPEND LauncherCommon_ARGS -DCMake_TEST_OBJC=${CMake_TEST_OBJC}) + endif() + if(CMAKE_Fortran_COMPILER) + list(APPEND LauncherCommon_ARGS -DCMake_TEST_Fortran=1) + endif() + set(CompilerLauncher_ARGS ${LauncherCommon_ARGS}) + set(LinkerLauncher_ARGS ${LauncherCommon_ARGS}) + if(DEFINED CMake_TEST_ISPC) + list(APPEND CompilerLauncher_ARGS -DCMake_TEST_ISPC=${CMake_TEST_ISPC}) + endif() if(DEFINED CMake_TEST_CUDA) list(APPEND CompilerLauncher_ARGS -DCMake_TEST_CUDA=${CMake_TEST_CUDA}) endif() if(DEFINED CMake_TEST_HIP) list(APPEND CompilerLauncher_ARGS -DCMake_TEST_HIP=${CMake_TEST_HIP}) endif() - if(DEFINED CMake_TEST_ISPC) - list(APPEND CompilerLauncher_ARGS -DCMake_TEST_ISPC=${CMake_TEST_ISPC}) - endif() - if(DEFINED CMake_TEST_OBJC) - list(APPEND CompilerLauncher_ARGS -DCMake_TEST_OBJC=${CMake_TEST_OBJC}) - list(APPEND LinkerLauncher_ARGS -DCMake_TEST_OBJC=${CMake_TEST_OBJC}) - endif() - if(CMAKE_Fortran_COMPILER) - list(APPEND CompilerLauncher_ARGS -DCMake_TEST_Fortran=1) - endif() add_RunCMake_test(CompilerLauncher) set_property(TEST RunCMake.CompilerLauncher APPEND PROPERTY LABELS "CUDA" "HIP" "ISPC" "Fortran") - - add_RunCMake_test(ctest_labels_for_subprojects) - add_RunCMake_test(CompilerArgs) add_RunCMake_test(LinkerLauncher) + set_property(TEST RunCMake.LinkerLauncher APPEND + PROPERTY LABELS "Fortran") endif() set(cpack_tests diff --git a/Tests/RunCMake/LinkerLauncher/CUDA-Build-stdout.txt b/Tests/RunCMake/LinkerLauncher/CUDA-Build-stdout.txt deleted file mode 100644 index 3313e31f63..0000000000 --- a/Tests/RunCMake/LinkerLauncher/CUDA-Build-stdout.txt +++ /dev/null @@ -1 +0,0 @@ -.*-E env USED_LAUNCHER=1.* diff --git a/Tests/RunCMake/LinkerLauncher/CUDA-common.cmake b/Tests/RunCMake/LinkerLauncher/CUDA-common.cmake deleted file mode 100644 index ca25b2a262..0000000000 --- a/Tests/RunCMake/LinkerLauncher/CUDA-common.cmake +++ /dev/null @@ -1,4 +0,0 @@ -cmake_policy(SET CMP0104 NEW) -enable_language(CUDA) -set(CMAKE_VERBOSE_MAKEFILE TRUE) -add_executable(main main.cu) diff --git a/Tests/RunCMake/LinkerLauncher/CUDA-env-Build-stdout.txt b/Tests/RunCMake/LinkerLauncher/CUDA-env-Build-stdout.txt deleted file mode 100644 index a6e8b0aba6..0000000000 --- a/Tests/RunCMake/LinkerLauncher/CUDA-env-Build-stdout.txt +++ /dev/null @@ -1 +0,0 @@ -.*-E env USED_LAUNCHER=1 TARGET_NAME=main LANGUAGE=CUDA.* diff --git a/Tests/RunCMake/LinkerLauncher/CUDA-env.cmake b/Tests/RunCMake/LinkerLauncher/CUDA-env.cmake deleted file mode 100644 index cefbe9ede8..0000000000 --- a/Tests/RunCMake/LinkerLauncher/CUDA-env.cmake +++ /dev/null @@ -1 +0,0 @@ -include(CUDA-common.cmake) diff --git a/Tests/RunCMake/LinkerLauncher/CUDA-launch-Build-stdout.txt b/Tests/RunCMake/LinkerLauncher/CUDA-launch-Build-stdout.txt deleted file mode 100644 index 3313e31f63..0000000000 --- a/Tests/RunCMake/LinkerLauncher/CUDA-launch-Build-stdout.txt +++ /dev/null @@ -1 +0,0 @@ -.*-E env USED_LAUNCHER=1.* diff --git a/Tests/RunCMake/LinkerLauncher/CUDA-launch-env-Build-stdout.txt b/Tests/RunCMake/LinkerLauncher/CUDA-launch-env-Build-stdout.txt deleted file mode 100644 index a6e8b0aba6..0000000000 --- a/Tests/RunCMake/LinkerLauncher/CUDA-launch-env-Build-stdout.txt +++ /dev/null @@ -1 +0,0 @@ -.*-E env USED_LAUNCHER=1 TARGET_NAME=main LANGUAGE=CUDA.* diff --git a/Tests/RunCMake/LinkerLauncher/CUDA-launch-env.cmake b/Tests/RunCMake/LinkerLauncher/CUDA-launch-env.cmake deleted file mode 100644 index d0d777aeb2..0000000000 --- a/Tests/RunCMake/LinkerLauncher/CUDA-launch-env.cmake +++ /dev/null @@ -1,3 +0,0 @@ -set(CTEST_USE_LAUNCHERS 1) -include(CTestUseLaunchers) -include(CUDA-env.cmake) diff --git a/Tests/RunCMake/LinkerLauncher/CUDA-launch.cmake b/Tests/RunCMake/LinkerLauncher/CUDA-launch.cmake deleted file mode 100644 index 6b4b816e92..0000000000 --- a/Tests/RunCMake/LinkerLauncher/CUDA-launch.cmake +++ /dev/null @@ -1,3 +0,0 @@ -set(CTEST_USE_LAUNCHERS 1) -include(CTestUseLaunchers) -include(CUDA.cmake) diff --git a/Tests/RunCMake/LinkerLauncher/CUDA.cmake b/Tests/RunCMake/LinkerLauncher/CUDA.cmake deleted file mode 100644 index 3ce1ef381c..0000000000 --- a/Tests/RunCMake/LinkerLauncher/CUDA.cmake +++ /dev/null @@ -1,2 +0,0 @@ -set(CMAKE_CUDA_LINKER_LAUNCHER "${CMAKE_COMMAND};-E;env;USED_LAUNCHER=1") -include(CUDA-common.cmake) diff --git a/Tests/RunCMake/LinkerLauncher/HIP-common.cmake b/Tests/RunCMake/LinkerLauncher/HIP-common.cmake deleted file mode 100644 index 53ece7814e..0000000000 --- a/Tests/RunCMake/LinkerLauncher/HIP-common.cmake +++ /dev/null @@ -1,5 +0,0 @@ -enable_language(HIP) -enable_language(CXX) -set(CMAKE_VERBOSE_MAKEFILE TRUE) - -add_executable(main main.hip) diff --git a/Tests/RunCMake/LinkerLauncher/HIP-env-Build-stdout.txt b/Tests/RunCMake/LinkerLauncher/HIP-env-Build-stdout.txt deleted file mode 100644 index 354e317028..0000000000 --- a/Tests/RunCMake/LinkerLauncher/HIP-env-Build-stdout.txt +++ /dev/null @@ -1 +0,0 @@ -.*-E env USED_LAUNCHER=1 TARGET_NAME=main LANGUAGE=HIP.* diff --git a/Tests/RunCMake/LinkerLauncher/HIP-env.cmake b/Tests/RunCMake/LinkerLauncher/HIP-env.cmake deleted file mode 100644 index 1bf56cee95..0000000000 --- a/Tests/RunCMake/LinkerLauncher/HIP-env.cmake +++ /dev/null @@ -1 +0,0 @@ -include(HIP-common.cmake) diff --git a/Tests/RunCMake/LinkerLauncher/HIP-launch-Build-stdout.txt b/Tests/RunCMake/LinkerLauncher/HIP-launch-Build-stdout.txt deleted file mode 100644 index 3313e31f63..0000000000 --- a/Tests/RunCMake/LinkerLauncher/HIP-launch-Build-stdout.txt +++ /dev/null @@ -1 +0,0 @@ -.*-E env USED_LAUNCHER=1.* diff --git a/Tests/RunCMake/LinkerLauncher/HIP-launch-env-Build-stdout.txt b/Tests/RunCMake/LinkerLauncher/HIP-launch-env-Build-stdout.txt deleted file mode 100644 index 354e317028..0000000000 --- a/Tests/RunCMake/LinkerLauncher/HIP-launch-env-Build-stdout.txt +++ /dev/null @@ -1 +0,0 @@ -.*-E env USED_LAUNCHER=1 TARGET_NAME=main LANGUAGE=HIP.* diff --git a/Tests/RunCMake/LinkerLauncher/HIP-launch-env.cmake b/Tests/RunCMake/LinkerLauncher/HIP-launch-env.cmake deleted file mode 100644 index 37985a52a3..0000000000 --- a/Tests/RunCMake/LinkerLauncher/HIP-launch-env.cmake +++ /dev/null @@ -1,3 +0,0 @@ -set(CTEST_USE_LAUNCHERS 1) -include(CTestUseLaunchers) -include(HIP-env.cmake) diff --git a/Tests/RunCMake/LinkerLauncher/HIP-launch.cmake b/Tests/RunCMake/LinkerLauncher/HIP-launch.cmake deleted file mode 100644 index 78fd16ba0f..0000000000 --- a/Tests/RunCMake/LinkerLauncher/HIP-launch.cmake +++ /dev/null @@ -1,3 +0,0 @@ -set(CTEST_USE_LAUNCHERS 1) -include(CTestUseLaunchers) -include(HIP.cmake) diff --git a/Tests/RunCMake/LinkerLauncher/HIP.cmake b/Tests/RunCMake/LinkerLauncher/HIP.cmake deleted file mode 100644 index 32a750b497..0000000000 --- a/Tests/RunCMake/LinkerLauncher/HIP.cmake +++ /dev/null @@ -1,2 +0,0 @@ -set(CMAKE_HIP_LINKER_LAUNCHER "${CMAKE_COMMAND};-E;env;USED_LAUNCHER=1") -include(HIP-common.cmake) diff --git a/Tests/RunCMake/LinkerLauncher/RunCMakeTest.cmake b/Tests/RunCMake/LinkerLauncher/RunCMakeTest.cmake index b63a1a7abe..67f32e8e84 100644 --- a/Tests/RunCMake/LinkerLauncher/RunCMakeTest.cmake +++ b/Tests/RunCMake/LinkerLauncher/RunCMakeTest.cmake @@ -27,15 +27,9 @@ function(run_linker_launcher_env lang) endfunction() set(langs C CXX) -if(CMake_TEST_CUDA) - list(APPEND langs CUDA) -endif() if(CMake_TEST_Fortran) list(APPEND langs Fortran) endif() -if(CMake_TEST_HIP) - list(APPEND langs HIP) -endif() if(CMake_TEST_OBJC) list(APPEND langs OBJC OBJCXX) endif() diff --git a/Tests/RunCMake/LinkerLauncher/main.cu b/Tests/RunCMake/LinkerLauncher/main.cu deleted file mode 100644 index f8b643afbf..0000000000 --- a/Tests/RunCMake/LinkerLauncher/main.cu +++ /dev/null @@ -1,4 +0,0 @@ -int main() -{ - return 0; -} diff --git a/Tests/RunCMake/LinkerLauncher/main.hip b/Tests/RunCMake/LinkerLauncher/main.hip deleted file mode 100644 index f8b643afbf..0000000000 --- a/Tests/RunCMake/LinkerLauncher/main.hip +++ /dev/null @@ -1,4 +0,0 @@ -int main() -{ - return 0; -}