RFR : 8202322: AIX: symbol visibility flags not support on xlc 12.1

Langer, Christoph christoph.langer at sap.com
Fri Jun 1 08:56:34 UTC 2018


Hi Ichiroh,

we do not use the XLC 13 compiler on AIX yet here at SAP and I believe nobody of my colleagues has played with it yet. So you are on a new playground here 😊

However, I believe the idea in OpenJDK with the abolition of map files is that symbols should be invisible externally unless they are declared exported, e.g. JNIEXPORT. So I would think "-qvisibility=hidden" should be the correct default and whatever JNIEXPORT expands to should contain the right attributes to get that symbol visible.

Can you check if either my assumption is completely wrong, JNIEXPORT does not expand to the right thing, XLC 13 has a bug or maybe just sume specific required symbols are not declared correctly?

Best regards
Christoph

> -----Original Message-----
> From: Ichiroh Takiguchi [mailto:takiguc at linux.vnet.ibm.com]
> Sent: Donnerstag, 31. Mai 2018 09:55
> To: Langer, Christoph <christoph.langer at sap.com>
> Cc: Baesken, Matthias <matthias.baesken at sap.com>; 'build-
> dev at openjdk.java.net' <build-dev at openjdk.java.net>; ppc-aix-port-
> dev at openjdk.java.net; core-libs-dev at openjdk.java.net; Lindenmaier,
> Goetz <goetz.lindenmaier at sap.com>
> Subject: RE: RFR : 8202322: AIX: symbol visibility flags not support on xlc 12.1
> 
> Hello.
> 8202322 was integrated into jdk-11+15.
> I'm using XLC 13.1.3 on AIX 7.1.4.
> Build was failed because of "-qvisibility=hidden" on
> make/lib/LibCommon.gmk.
> According to "XL C/C++ for AIX 13.1.3" documentation [1],
> "-qvisibility=hidden" cannot create shared libraries entry points.
> For example, libverify.so was there, but entry points were not resolved
> by "-lverify" option.
> I think it should be "-qvisibility=default" (I tried, it worked)
> or "-qvisibility=protected" (I had not tried) ?
> I'm not familiar with -qvisibility option, but I'd like to find out
> right way.
> 
> [1]
> https://www.ibm.com/support/knowledgecenter/SSGH3R_13.1.3/com.ibm.
> xlcpp1313.aix.doc/compiler_ref/opt_visibility.html
> 
> On 2018-05-16 16:08, Langer, Christoph wrote:
> > Hi Matthias,
> >
> > yes, reviewed.
> >
> > Best regards
> > Christoph
> >
> > From: Baesken, Matthias
> > Sent: Mittwoch, 16. Mai 2018 09:06
> > To: Langer, Christoph <christoph.langer at sap.com>;
> > 'build-dev at openjdk.java.net' <build-dev at openjdk.java.net>;
> > ppc-aix-port-dev at openjdk.java.net; core-libs-dev at openjdk.java.net
> > Cc: Lindenmaier, Goetz <goetz.lindenmaier at sap.com>
> > Subject: RE: RFR : 8202322: AIX: symbol visibility flags not support on
> > xlc 12.1
> >
> > Hi  Christoph can I add you as second reviewer  (other reviewer was
> > Erik Joelsson) can push the change ?
> >
> > Best regards, Matthias
> >
> >
> >
> > From: Langer, Christoph
> > Sent: Donnerstag, 26. April 2018 16:38
> > To: Baesken, Matthias
> > <matthias.baesken at sap.com<mailto:matthias.baesken at sap.com>>;
> > 'build-dev at openjdk.java.net'
> > <build-dev at openjdk.java.net<mailto:build-dev at openjdk.java.net>>;
> > ppc-aix-port-dev at openjdk.java.net<mailto:ppc-aix-port-
> dev at openjdk.java.net>;
> > core-libs-dev at openjdk.java.net<mailto:core-libs-dev at openjdk.java.net>
> > Cc: Simonis, Volker
> > <volker.simonis at sap.com<mailto:volker.simonis at sap.com>>
> > Subject: RE: RFR : 8202322: AIX: symbol visibility flags not support on
> > xlc 12.1
> >
> > Hi Matthias,
> >
> > to me the change in principal looks good.
> >
> > I'm wondering if it is possible to do a comparison like xlc < 13 (e.g.
> > extract major number before the first dot, then compare numerically) -
> > but maybe it is too complicated and the current single version compare
> > suits our needs ?
> >
> > Best regards
> > Christoph
> >
> > From: Baesken, Matthias
> > Sent: Donnerstag, 26. April 2018 16:14
> > To: 'build-dev at openjdk.java.net'
> > <build-dev at openjdk.java.net<mailto:build-dev at openjdk.java.net>>;
> > ppc-aix-port-dev at openjdk.java.net<mailto:ppc-aix-port-
> dev at openjdk.java.net>;
> > core-libs-dev at openjdk.java.net<mailto:core-libs-dev at openjdk.java.net>
> > Cc: Langer, Christoph
> > <christoph.langer at sap.com<mailto:christoph.langer at sap.com>>; Simonis,
> > Volker <volker.simonis at sap.com<mailto:volker.simonis at sap.com>>
> > Subject: RFR : 8202322: AIX: symbol visibility flags not support on xlc
> > 12.1
> >
> > Hello  ,  could you please review this small adjustment to  the symbol
> > visibility compilation settings on AIX ?
> > Currently  we use  XLC 12.1  to compile  JDK on AIX .
> >
> > However XLC 12.1   does not support  the "-qvisibility=hidden"
> > setting currently set on AIX.
> > It was introduced with  XLC 13.1 . Christoph found some info about it
> > here :
> >
> > https://www.ibm.com/developerworks/aix/library/au-aix-symbol-
> visibility-part2/index.html
> >
> > Setting it  only generates  hundreds  of warnings  in the build log ,
> > warnings look like this :
> > XlC12.1
> >
> > bash-4.4$ xlC -qversion
> > IBM XL C/C++ for AIX, V12.1 (5765-J02, 5725-C72)
> > Version: 12.01.0000.0019
> >
> > bash-4.4$ xlC -qvisibility=hidden sizeof.c -o sizeof_aixxlc
> > 1506-173 (W) Option visibility=hidden is not valid. Enter xlC for list
> > of valid options.
> >
> > Compare to XLC13.1
> >
> > bash-3.00$ xlC -qversion
> > IBM XL C/C++ for AIX, V13.1 (5725-C72, 5765-J07)
> > Version: 13.01.0000.0008
> > bash-3.00$ xlC -qvisibility=default sizeof.c -o sizeof_aixxlc
> > bash-3.00$ xlC -qvisibility=hidden sizeof.c -o sizeof_aixxlc
> >
> >
> > So it is better to avoid  setting these flags when using xlc12.1   .
> > Please review :
> >
> > Bug :
> >
> > https://bugs.openjdk.java.net/browse/JDK-8202322
> >
> > Change :
> >
> > http://cr.openjdk.java.net/~mbaesken/webrevs/8202322/
> >
> >
> > Best regards, Matthias



More information about the build-dev mailing list