]> git.ipfire.org Git - thirdparty/xz.git/commitdiff
CMake: Use only the generic symbol versioning with NVIDIA HPC Compiler.
authorLasse Collin <lasse.collin@tukaani.org>
Fri, 15 Mar 2024 14:36:35 +0000 (16:36 +0200)
committerLasse Collin <lasse.collin@tukaani.org>
Fri, 15 Mar 2024 16:04:10 +0000 (18:04 +0200)
It doesn't support the __symver__ attribute or __asm__(".symver ...").
The generic symbol versioning can still be used since it only needs
linker support.

CMakeLists.txt

index cc626b413e6f7bf4762fe17695a773e6d2d3e845..1f0191673b453ed789d915e35ee874a17818494a 100644 (file)
@@ -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")