From fa14c8aaf0d0266b7e0c3b7c766159299c1a0f18 Mon Sep 17 00:00:00 2001 From: Lasse Collin Date: Fri, 15 Mar 2024 17:15:50 +0200 Subject: [PATCH] Build: Use only the generic symbol versioning with NVIDIA HPC Compiler. This does the previous commit with CMake. AC_EGREP_CPP uses AC_REQUIRE so the outermost if-commands must be changed to AS_IF to ensure that things wont break some day. See 5a5bd7f871818029d5ccbe189f087f591258c294. (cherry picked from commit 49324b711f9d42b3543bf2f3ae598eaa03360bd5) --- configure.ac | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/configure.ac b/configure.ac index 7ab0e187..f7d3de0b 100644 --- a/configure.ac +++ b/configure.ac @@ -709,13 +709,13 @@ fi # --with-pic and --without-pic though. As long as neither --with-pic nor # --without-pic is used then we can use #ifdef PIC to detect if the file is # being built for a shared library. -if test "x$enable_symbol_versions" = xno ; then +AS_IF([test "x$enable_symbol_versions" = xno], [ enable_symbol_versions=no AC_MSG_RESULT([no]) -elif test "x$enable_shared" = xno ; then +], [test "x$enable_shared" = xno], [ enable_symbol_versions=no AC_MSG_RESULT([no (not building a shared library)]) -else +], [ # "yes" means that symbol version are to be used but we need to # autodetect which variant to use. if test "x$enable_symbol_versions" = xyes ; then @@ -730,7 +730,15 @@ else enable_symbol_versions=generic ;; *-linux*) - enable_symbol_versions=linux + # NVIDIA HPC Compiler doesn't support symbol + # versioning but the linker script can still + # be used. + AC_EGREP_CPP([use_generic_symbol_versioning], + [#ifdef __NVCOMPILER + use_generic_symbol_versioning + #endif], + [enable_symbol_versions=generic], + [enable_symbol_versions=linux]) ;; *) enable_symbol_versions=generic @@ -774,7 +782,7 @@ else AC_MSG_ERROR([unknown symbol versioning variant '$enable_symbol_versions']) fi AC_MSG_RESULT([yes ($enable_symbol_versions)]) -fi +]) AM_CONDITIONAL([COND_SYMVERS_LINUX], [test "x$enable_symbol_versions" = xlinux])