Skip to content

Commit d08a049

Browse files
committed
aix: xlc: Use -Wl,-b,expfull for old compiler versions
Unfortunately xlc 12.1 and earlier don't support -qvisibility. Therefore be7c15b doesn't suffice to make extension libraries work without the explicit mkldexport step removed in fe6a64a. 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 <tgl@sss.pgh.pa.us> Discussion: https://postgr.es/m/2490844.1663123546@sss.pgh.pa.us
1 parent eacbe94 commit d08a049

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

configure

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7101,6 +7101,11 @@ if test x"$pgac_cv_prog_CXX_cxxflags__qvisibility_hidden" = x"yes"; then
71017101
fi
71027102

71037103
have_visibility_attribute=$pgac_cv_prog_CC_cflags__qvisibility_hidden
7104+
# Old xlc versions (<13.1) don't have support for -qvisibility. Use expfull to force
7105+
# all extension module symbols to be exported.
7106+
if test "$pgac_cv_prog_CC_cflags__qvisibility_hidden" != "yes"; then
7107+
CFLAGS_SL_MODULE="$CFLAGS_SL_MODULE -Wl,-b,expfull"
7108+
fi
71047109
fi
71057110

71067111
if test "$have_visibility_attribute" = "yes"; then

configure.ac

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -592,6 +592,11 @@ elif test "$PORTNAME" = "aix"; then
592592
PGAC_PROG_CC_VAR_OPT(CFLAGS_SL_MODULE, [-qvisibility=hidden])
593593
PGAC_PROG_VARCXX_VARFLAGS_OPT(CXX, CXXFLAGS_SL_MODULE, [-qvisibility=hidden])
594594
have_visibility_attribute=$pgac_cv_prog_CC_cflags__qvisibility_hidden
595+
# Old xlc versions (<13.1) don't have support for -qvisibility. Use expfull to force
596+
# all extension module symbols to be exported.
597+
if test "$pgac_cv_prog_CC_cflags__qvisibility_hidden" != "yes"; then
598+
CFLAGS_SL_MODULE="$CFLAGS_SL_MODULE -Wl,-b,expfull"
599+
fi
595600
fi
596601

597602
if test "$have_visibility_attribute" = "yes"; then

0 commit comments

Comments
 (0)