From 754210a3f67ee5d99249f3b397090d30945e973a Mon Sep 17 00:00:00 2001 From: Josef Angstenberger Date: Wed, 5 Feb 2025 00:05:35 +0100 Subject: Tasking: Set object extension to .o The extension `.o` is used by the compiler itself, and is the only one found in its documentation. Issue: #26426 --- Modules/Compiler/Tasking.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/Modules/Compiler/Tasking.cmake b/Modules/Compiler/Tasking.cmake index fa89f9c..cc6a545 100644 --- a/Modules/Compiler/Tasking.cmake +++ b/Modules/Compiler/Tasking.cmake @@ -22,6 +22,7 @@ if(NOT CMAKE_TASKING_TOOLSET) endif() macro(__compiler_tasking lang) + set(CMAKE_${lang}_OUTPUT_EXTENSION ".o") set(CMAKE_${lang}_VERBOSE_FLAG "-v") set(CMAKE_${lang}_COMPILE_OPTIONS_PIC "--pic") -- cgit v0.12 From 1241c7dbcf7690ac324a7b3708d408d7a804bebd Mon Sep 17 00:00:00 2001 From: Josef Angstenberger Date: Wed, 5 Feb 2025 00:07:03 +0100 Subject: Tasking: Set response file flag If not explicitly set to `-f `, the default `@` is used, which is not supported by Tasking. Issue: #26426 --- Modules/Compiler/Tasking.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/Modules/Compiler/Tasking.cmake b/Modules/Compiler/Tasking.cmake index cc6a545..36e0a86 100644 --- a/Modules/Compiler/Tasking.cmake +++ b/Modules/Compiler/Tasking.cmake @@ -27,6 +27,7 @@ macro(__compiler_tasking lang) set(CMAKE_${lang}_VERBOSE_FLAG "-v") set(CMAKE_${lang}_COMPILE_OPTIONS_PIC "--pic") set(CMAKE_${lang}_LINKER_WRAPPER_FLAG "-Wl" " ") + set(CMAKE_${lang}_RESPONSE_FILE_FLAG "-f ") set(CMAKE_${lang}_RESPONSE_FILE_LINK_FLAG "-f ") set(CMAKE_DEPFILE_FLAGS_${lang} "--dep-file=") set(CMAKE_${lang}_COMPILE_OPTIONS_WARNING_AS_ERROR "--warnings-as-errors") -- cgit v0.12 From 5729d6a66d05e69188152a2e982b4b5f8dc85685 Mon Sep 17 00:00:00 2001 From: Josef Angstenberger Date: Wed, 5 Feb 2025 00:07:03 +0100 Subject: Tasking: Detect ARM architecture for C++ The preprocessor switch to detect architectures on Tasking differ for C and C++. Issue: #26426 --- Modules/CMakePlatformId.h.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/CMakePlatformId.h.in b/Modules/CMakePlatformId.h.in index fd0367e..5b06030 100644 --- a/Modules/CMakePlatformId.h.in +++ b/Modules/CMakePlatformId.h.in @@ -258,7 +258,7 @@ # elif defined(__CMCS__) # define ARCHITECTURE_ID "MCS" -# elif defined(__CARM__) +# elif defined(__CARM__) || defined(__CPARM__) # define ARCHITECTURE_ID "ARM" # elif defined(__CARC__) -- cgit v0.12 From 83ce71dd3814a3c06812818bbc506ed6dcdd02a3 Mon Sep 17 00:00:00 2001 From: Josef Angstenberger Date: Wed, 5 Feb 2025 00:09:35 +0100 Subject: Tasking: Enable WHOLE_ARCHIVE link feature Issue: #26426 --- Modules/Compiler/Tasking.cmake | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Modules/Compiler/Tasking.cmake b/Modules/Compiler/Tasking.cmake index 36e0a86..086ead9 100644 --- a/Modules/Compiler/Tasking.cmake +++ b/Modules/Compiler/Tasking.cmake @@ -33,6 +33,14 @@ macro(__compiler_tasking lang) set(CMAKE_${lang}_COMPILE_OPTIONS_WARNING_AS_ERROR "--warnings-as-errors") set(CMAKE_${lang}_LINK_MODE DRIVER) + # Features for LINK_LIBRARY generator expression + if( CMAKE_TASKING_TOOLSET STREQUAL "SmartCode" + OR (CMAKE_TASKING_TOOLSET STREQUAL "TriCore" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 4.2)) + ## WHOLE_ARCHIVE: Force loading all members of an archive + set(CMAKE_${lang}_LINK_LIBRARY_USING_WHOLE_ARCHIVE "LINKER:--whole-archive=") + set(CMAKE_${lang}_LINK_LIBRARY_USING_WHOLE_ARCHIVE_SUPPORTED TRUE) + set(CMAKE_${lang}_LINK_LIBRARY_WHOLE_ARCHIVE_ATTRIBUTES LIBRARY_TYPE=STATIC DEDUPLICATION=YES OVERRIDE=DEFAULT) + endif() string(APPEND CMAKE_${lang}_FLAGS_INIT " ") string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -O0 -g") -- cgit v0.12