Mercurial > octave
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)