diff --git a/configure b/configure index f325bd85b8..67ddeb87c8 100755 --- a/configure +++ b/configure @@ -7101,6 +7101,11 @@ if test x"$pgac_cv_prog_CXX_cxxflags__qvisibility_hidden" = x"yes"; then fi have_visibility_attribute=$pgac_cv_prog_CC_cflags__qvisibility_hidden + # Old xlc versions (<13.1) don't have support for -qvisibility. Use expfull to force + # all extension module symbols to be exported. + if test "$pgac_cv_prog_CC_cflags__qvisibility_hidden" != "yes"; then + CFLAGS_SL_MODULE="$CFLAGS_SL_MODULE -Wl,-b,expfull" + fi fi if test "$have_visibility_attribute" = "yes"; then diff --git a/configure.ac b/configure.ac index 7792ae5bad..6b1b30d07a 100644 --- a/configure.ac +++ b/configure.ac @@ -592,6 +592,11 @@ elif test "$PORTNAME" = "aix"; then PGAC_PROG_CC_VAR_OPT(CFLAGS_SL_MODULE, [-qvisibility=hidden]) PGAC_PROG_VARCXX_VARFLAGS_OPT(CXX, CXXFLAGS_SL_MODULE, [-qvisibility=hidden]) have_visibility_attribute=$pgac_cv_prog_CC_cflags__qvisibility_hidden + # Old xlc versions (<13.1) don't have support for -qvisibility. Use expfull to force + # all extension module symbols to be exported. + if test "$pgac_cv_prog_CC_cflags__qvisibility_hidden" != "yes"; then + CFLAGS_SL_MODULE="$CFLAGS_SL_MODULE -Wl,-b,expfull" + fi fi if test "$have_visibility_attribute" = "yes"; then