On Fri, Apr 27, 2018 at 9:27 AM, Langer, Christoph <christoph.lan...@sap.com> wrote: > Hi Thomas, > > let me cite one section from the article: > > ---------------------------------------------- > > Visibility attribute and backward compatibility on AIX > > As we know from the previous article, on AIX, symbols are not visible by > default unless we export them at the linking stage, either manually or with > the help of CreateExportList. However, on Linux, symbols are, by default, > with export (namely default) visibility. This brings a gap between the AIX > visibility attribute and the GNU visibility attribute. To be backward > compatible, on AIX, XL C/C++ would not set all the symbols to be exported > like Linux. It might consider symbol without any visibility setting to be an > unspecific visibility, which aligns with an old AIX implementation. For such > symbols, AIX compiler, linker, and related tools would handle it as before. > However, unspecific visibility does not mean that the symbol is internal or > invisible at all. It is just a visibility that is specially designed to keep > the compatibility. > > ... > > ---------------------------------------------- > > It says in the first sentence: " As we know from the previous article, on > AIX, symbols are not visible by default unless we export them at the linking > stage, either manually or with the help of CreateExportList". I guess that is > why I was under the impression that with xlc12 symbols would not be visible... >
:) Thanks for that pointer. I did read: "Consequently, as we have mentioned at the beginning of this article, if the programmer does not explicitly specify the visibility attribute for a symbol, on Linux, the visibility of the symbol could be thedefault. But on AIX, the visibility would be unspecified." So I thought, default is "unspecified", which is not hidden. I just had a look at the libjvm.so from our nightly fastdebug build, using "nm -g". I see tons of exports listed, most of which do not have the static keyword. So, I would expect them to be exported from their compilation unit, but not from the linked shared library? Am I making a thinking error here? Anyway. I do not want to hold up this patch if you guys think it is okay to ignore the compiler warning, so it is okay by me. Best Regards, Thomas > Best regards > Christoph > >> -----Original Message----- >> From: Thomas Stüfe [mailto:thomas.stu...@gmail.com] >> Sent: Freitag, 27. April 2018 09:21 >> To: Langer, Christoph <christoph.lan...@sap.com> >> Cc: Volker Simonis <volker.simo...@gmail.com>; Baesken, Matthias >> <matthias.baes...@sap.com>; Simonis, Volker <volker.simo...@sap.com>; >> ppc-aix-port-...@openjdk.java.net; core-libs-dev@openjdk.java.net; build- >> d...@openjdk.java.net >> Subject: Re: RFR : 8202322: AIX: symbol visibility flags not support on xlc >> 12.1 >> >> Hi Christoph >> >> On Fri, Apr 27, 2018 at 8:07 AM, Langer, Christoph >> <christoph.lan...@sap.com> wrote: >> > Hi Thomas, >> > >> > Look at this blog: https://www.ibm.com/developerworks/aix/library/au- >> aix-symbol-visibility-part2/index.html >> > >> > if I understand it correctly, the xlc 12 default behavior should be like >> > what >> we'd expect from -qvisibility=hidden. >> > >> >> Where in this article do you read this? >> >> ..Thomas >> >> > Best regards >> > Christoph >> > >> >> -----Original Message----- >> >> From: build-dev [mailto:build-dev-boun...@openjdk.java.net] On Behalf >> Of >> >> Thomas Stüfe >> >> Sent: Freitag, 27. April 2018 06:55 >> >> To: Volker Simonis <volker.simo...@gmail.com>; Baesken, Matthias >> >> <matthias.baes...@sap.com> >> >> Cc: Simonis, Volker <volker.simo...@sap.com>; ppc-aix-port- >> >> d...@openjdk.java.net; core-libs-dev@openjdk.java.net; build- >> >> d...@openjdk.java.net >> >> Subject: Re: RFR : 8202322: AIX: symbol visibility flags not support on >> >> xlc >> 12.1 >> >> >> >> Hi, >> >> >> >> This was added by "8200178: Remove mapfiles for JDK native libraries". >> >> But if the flag is not accepted, what is the default behavior? Do we >> >> now export everything? >> >> >> >> I'd like to understand this first before removing the flag to get rid >> >> of the warnings. >> >> >> >> Best Regards, Thomas >> >> >> >> On Thu, Apr 26, 2018 at 5:16 PM, Volker Simonis >> >> <volker.simo...@gmail.com> wrote: >> >> > Hi Matthias, >> >> > >> >> > after Bhaktavatsal Reddy's report about the problems with >> >> > "-qvisibility" with xlC 13 and taking into account that we can't test >> >> > this anyway because we don't currently have xlC 13 >> >> > on our machines I think it would be best to completely remove this >> >> > option for now on AIX. Once we get xlC 13 we can revisit the issue. >> >> > >> >> > Thanks, >> >> > Volker >> >> > >> >> > >> >> > On Thu, Apr 26, 2018 at 4:59 PM, Bhaktavatsal R Maram >> >> > <bhama...@in.ibm.com> wrote: >> >> >> Hi Matthias, >> >> >> >> >> >> At this point, I think we can remove the flag as you found that it is >> >> >> not >> >> supported in XLC < 13. And with XLC 13, it require more work to use this >> flag. >> >> >> >> >> >> Thanks, >> >> >> Bhaktavatsal Reddy >> >> >> >> >> >> >> >> >> >> >> >> -----"Baesken, Matthias" <matthias.baes...@sap.com> wrote: ----- >> >> >> To: "Langer, Christoph" <christoph.lan...@sap.com>, "'build- >> >> d...@openjdk.java.net'" <build-...@openjdk.java.net>, "ppc-aix-port- >> >> d...@openjdk.java.net" <ppc-aix-port-...@openjdk.java.net>, "core- >> libs- >> >> d...@openjdk.java.net" <core-libs-dev@openjdk.java.net> >> >> >> From: "Baesken, Matthias" <matthias.baes...@sap.com> >> >> >> Date: 04/26/2018 08:23PM >> >> >> Cc: "Simonis, Volker" <volker.simo...@sap.com>, Bhaktavatsal R >> Maram >> >> <bhama...@in.ibm.com> >> >> >> Subject: RE: RFR : 8202322: AIX: symbol visibility flags not support >> >> >> on xlc >> >> 12.1 >> >> >> >> >> >> >> >> >> Hello Christoph, I think all XLC versions < 12.1 are unsupported >> (and >> >> probably not working anyway) for the OpenJDK build . >> >> >> I am only aware of XLC versions 12.1 and 13.1 which work / >> >> >> in case >> of >> >> 13.1 “might” work for OpenJDK compilation . >> >> >> And for 12.1 I want to remove the flags . >> >> >> >> >> >> ( waiting for the feedback of Bhaktavatsal Reddy , in case he >> >> >> prefers >> it >> >> I remove them for all xlC versions including 13.1 ) >> >> >> >> >> >> Best regards, Matthias >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> From: Langer, Christoph >> >> >> Sent: Donnerstag, 26. April 2018 16:38 >> >> >> To: Baesken, Matthias <matthias.baes...@sap.com>; 'build- >> >> d...@openjdk.java.net' <build-...@openjdk.java.net>; ppc-aix-port- >> >> d...@openjdk.java.net; core-libs-dev@openjdk.java.net >> >> >> Cc: Simonis, Volker <volker.simo...@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-...@openjdk.java.net' <build-...@openjdk.java.net>; >> ppc- >> >> aix-port-...@openjdk.java.net; core-libs-dev@openjdk.java.net >> >> >> Cc: Langer, Christoph <christoph.lan...@sap.com>; Simonis, Volker >> >> <volker.simo...@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 >> >> >> >> >> >> >> >> >> >> >> >>