changeset 29647:bdb0cfffa2d0

Define variables for API visibility flags on all platforms (bug #59820). * configure.ac: Check if platform supports visibility flags before using them. Setup necessary compile flags if configured to use visibility flags. * m4/acinclude.m4 (OCTAVE_DEFINE_MKOCTFILE_DYNAMIC_LINK_OPTIONS): Do not define the flags for certain platforms only.
author Markus Mützel <markus.muetzel@gmx.de>
date Tue, 11 May 2021 19:32:57 +0200
parents 3e8bc8bee8e9
children 0230f7cf4044
files configure.ac m4/acinclude.m4
diffstat 2 files changed, 32 insertions(+), 31 deletions(-) [+]
line wrap: on
line diff
--- a/configure.ac	Mon May 10 23:27:38 2021 +0200
+++ b/configure.ac	Tue May 11 19:32:57 2021 +0200
@@ -2736,6 +2736,11 @@
      *) AC_MSG_ERROR([bad value $enableval for --enable-lib-visibility-flags]) ;;
    esac])
 
+if test $ENABLE_LIB_VISIBILITY_FLAGS = yes && test $HAVE_VISIBILITY = 0; then
+  AC_MSG_NOTICE([cannot build with visibility flags on this platform])
+  ENABLE_LIB_VISIBILITY_FLAGS=no
+fi
+
 if test $ENABLE_LIB_VISIBILITY_FLAGS = yes; then
   AC_DEFINE(OCTAVE_ENABLE_LIB_VISIBILITY_FLAGS, 1,
     [Define to 1 if building libraries with visibility flags])
@@ -2750,6 +2755,33 @@
 AM_CONDITIONAL([AMCOND_LIB_VISIBILITY_FLAGS],
   [test $ENABLE_LIB_VISIBILITY_FLAGS = yes])
 
+### Set flags for symbol visibility
+
+if test $ENABLE_LIB_VISIBILITY_FLAGS = yes; then
+  EXTERNAL_DLL_DEFS="-DEXTERNAL_DLL"
+  OCTAVE_DLL_DEFS="-DOCTAVE_DLL"
+  OCTINTERP_DLL_DEFS="-DOCTINTERP_DLL"
+  OCTGUI_DLL_DEFS="-DOCTGUI_DLL"
+  OCTGRAPHICS_DLL_DEFS="-DOCTGRAPHICS_DLL"
+else
+  EXTERNAL_DLL_DEFS=
+  OCTAVE_DLL_DEFS=
+  OCTINTERP_DLL_DEFS=
+  OCTGUI_DLL_DEFS=
+  OCTGRAPHICS_DLL_DEFS=
+fi
+AC_MSG_NOTICE([defining EXTERNAL_DLL_DEFS to be $EXTERNAL_DLL_DEFS])
+AC_MSG_NOTICE([defining OCTAVE_DLL_DEFS to be $OCTAVE_DLL_DEFS])
+AC_MSG_NOTICE([defining OCTINTERP_DLL_DEFS to be $OCTINTERP_DLL_DEFS])
+AC_MSG_NOTICE([defining OCTGUI_DLL_DEFS to be $OCTGUI_DLL_DEFS])
+AC_MSG_NOTICE([defining OCTGRAPHICS_DLL_DEFS to be $OCTGRAPHICS_DLL_DEFS])
+
+AC_SUBST(EXTERNAL_DLL_DEFS)
+AC_SUBST(OCTAVE_DLL_DEFS)
+AC_SUBST(OCTINTERP_DLL_DEFS)
+AC_SUBST(OCTGUI_DLL_DEFS)
+AC_SUBST(OCTGRAPHICS_DLL_DEFS)
+
 ### Add extra compiler flags now that feature testing is complete.
 
 ## Add warning flags
--- a/m4/acinclude.m4	Mon May 10 23:27:38 2021 +0200
+++ b/m4/acinclude.m4	Tue May 11 19:32:57 2021 +0200
@@ -2563,11 +2563,6 @@
   NO_OCT_FILE_STRIP=false
   TEMPLATE_AR="${AR}"
   TEMPLATE_ARFLAGS="${ARFLAGS}"
-  EXTERNAL_DLL_DEFS=
-  OCTAVE_DLL_DEFS=
-  OCTINTERP_DLL_DEFS=
-  OCTGUI_DLL_DEFS=
-  OCTGRAPHICS_DLL_DEFS=
   library_path_var=LD_LIBRARY_PATH
   ldpreloadsep=" "
   case $canonical_host_type in
@@ -2631,12 +2626,6 @@
         SH_LDFLAGS="-shared -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--enable-auto-image-base"
         library_path_var=PATH
       fi
-      ## Extra compilation flags.
-      EXTERNAL_DLL_DEFS="-DEXTERNAL_DLL"
-      OCTAVE_DLL_DEFS="-DOCTAVE_DLL"
-      OCTINTERP_DLL_DEFS="-DOCTINTERP_DLL"
-      OCTGUI_DLL_DEFS="-DOCTGUI_DLL"
-      OCTGRAPHICS_DLL_DEFS="-DOCTGRAPHICS_DLL"
     ;;
     *-*-msdosmsvc)
       DL_LDFLAGS="-shared"
@@ -2650,19 +2639,9 @@
       fi
       NO_OCT_FILE_STRIP=true
       library_path_var=PATH
-      ## Extra compilation flags.
-      EXTERNAL_DLL_DEFS="-DEXTERNAL_DLL"
-      OCTAVE_DLL_DEFS="-DOCTAVE_DLL"
-      OCTGUI_DLL_DEFS="-DOCTGUI_DLL"
-      OCTGRAPHICS_DLL_DEFS="-DOCTGRAPHICS_DLL"
     ;;
     *-*-linux* | *-*-gnu*)
       MKOCTFILE_DL_LDFLAGS="-shared -Wl,-Bsymbolic"
-      EXTERNAL_DLL_DEFS="-DEXTERNAL_DLL"
-      OCTAVE_DLL_DEFS="-DOCTAVE_DLL"
-      OCTINTERP_DLL_DEFS="-DOCTINTERP_DLL"
-      OCTGUI_DLL_DEFS="-DOCTGUI_DLL"
-      OCTGRAPHICS_DLL_DEFS="-DOCTGRAPHICS_DLL"
     ;;
     i[[3456]]86-*-sco3.2v5*)
       SH_LDFLAGS=-G
@@ -2738,11 +2717,6 @@
   AC_MSG_NOTICE([defining NO_OCT_FILE_STRIP to be $NO_OCT_FILE_STRIP])
   AC_MSG_NOTICE([defining TEMPLATE_AR to be $TEMPLATE_AR])
   AC_MSG_NOTICE([defining TEMPLATE_ARFLAGS to be $TEMPLATE_ARFLAGS])
-  AC_MSG_NOTICE([defining EXTERNAL_DLL_DEFS to be $EXTERNAL_DLL_DEFS])
-  AC_MSG_NOTICE([defining OCTAVE_DLL_DEFS to be $OCTAVE_DLL_DEFS])
-  AC_MSG_NOTICE([defining OCTINTERP_DLL_DEFS to be $OCTINTERP_DLL_DEFS])
-  AC_MSG_NOTICE([defining OCTGUI_DLL_DEFS to be $OCTGUI_DLL_DEFS])
-  AC_MSG_NOTICE([defining OCTGRAPHICS_DLL_DEFS to be $OCTGRAPHICS_DLL_DEFS])
   AC_MSG_NOTICE([defining library_path_var to be $library_path_var])
   AC_SUBST(FPICFLAG)
   AC_SUBST(CPICFLAG)
@@ -2753,11 +2727,6 @@
   AC_SUBST(NO_OCT_FILE_STRIP)
   AC_SUBST(TEMPLATE_AR)
   AC_SUBST(TEMPLATE_ARFLAGS)
-  AC_SUBST(EXTERNAL_DLL_DEFS)
-  AC_SUBST(OCTAVE_DLL_DEFS)
-  AC_SUBST(OCTINTERP_DLL_DEFS)
-  AC_SUBST(OCTGUI_DLL_DEFS)
-  AC_SUBST(OCTGRAPHICS_DLL_DEFS)
   AC_SUBST(library_path_var)
   AC_SUBST(ldpreloadsep)
   AM_SUBST_NOTMAKE(ldpreloadsep)