Unfortunately xlc 12.1 and earlier don't support -qvisibility. Therefore
be7c15b194a doesn't suffice to make extension libraries work without the
explicit mkldexport step removed in
fe6a64a58ab. While 12.1 is EOL, there is
some desire to leave buildfarm animals using it run a bit longer. But instead
of adding back the complicated mkldexport step, we can use -Wl,-b,expfull to
force all symbols to be exported.
Reviewed-By: Tom Lane <[email protected]>
Discussion: https://postgr.es/m/
2490844.
1663123546@sss.pgh.pa.us
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
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