aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLasse Collin <lasse.collin@tukaani.org>2024-03-15 16:36:35 +0200
committerLasse Collin <lasse.collin@tukaani.org>2024-03-15 18:04:10 +0200
commitc273123ed0ebaebf49994057a7fe98aae7f42c40 (patch)
tree780b117f95bd0ca34fc76d0172bd228e28f99de2
parentUpdate THANKS. (diff)
downloadxz-c273123ed0ebaebf49994057a7fe98aae7f42c40.tar.xz
CMake: Use only the generic symbol versioning with NVIDIA HPC Compiler.
It doesn't support the __symver__ attribute or __asm__(".symver ..."). The generic symbol versioning can still be used since it only needs linker support.
-rw-r--r--CMakeLists.txt7
1 files changed, 6 insertions, 1 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index cc626b41..1f019167 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -343,7 +343,8 @@ if(NOT WIN32)
set(SYMBOL_VERSIONING_DEFAULT OFF)
if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND
- CMAKE_SYSTEM_PROCESSOR MATCHES "[Mm]icro[Bb]laze")
+ (CMAKE_SYSTEM_PROCESSOR MATCHES "[Mm]icro[Bb]laze" OR
+ CMAKE_C_COMPILER_ID STREQUAL "NVHPC"))
# As a special case, GNU/Linux on MicroBlaze gets the generic
# symbol versioning because GCC 12 doesn't support the __symver__
# attribute on MicroBlaze. On Linux, CMAKE_SYSTEM_PROCESSOR comes
@@ -351,6 +352,10 @@ if(NOT WIN32)
# the CMake toolchain file (not perfectly standardized but it very
# likely has "microblaze" in lower case or mixed case somewhere in
# the string).
+ #
+ # NVIDIA HPC Compiler doesn't support symbol versioning but
+ # it uses the linked from the system so the linker script
+ # can still be used to get the generic symbol versioning.
set(SYMBOL_VERSIONING_DEFAULT "generic")
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")