On Fri, Apr 27, 2018 at 5:01 PM, Baesken, Matthias <matthias.baes...@sap.com> wrote: >> 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? > > Hi Thomas , I see "a ton" of exported symbols as well when looking into it > (e.g. libjvm.so) with dump . > More than one would like to have . >
Okay, thanks for confirming this! I was not sure if I was using nm correctly, or if it was lying to me. > However for now I think we should progress with the suggested patch as it > is. > I agree, patch is fine. Thanks for fixing this. > Once we switch to xlc 13 (or some follow up release of xlc) that supports > the visibility attributes > ( as decribed in > https://www.ibm.com/developerworks/aix/library/au-aix-symbol-visibility/index.html > ) > we can open a follow up item with compiler flag adjustment and adjust > src/java.base/unix/native/include/jni_md.h , I think this file misses a > proper JNIEXPORT definition for AIX / xlc 13.1 ). > Okay, fine with me. Best Regards, Thomas > > Best regards, Matthias > > > >> -----Original Message----- >> From: Thomas Stüfe [mailto:thomas.stu...@gmail.com] >> Sent: Freitag, 27. April 2018 10:04 >> 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-...@openjdk.java.net; build- >> d...@openjdk.java.net >> Subject: Re: RFR : 8202322: AIX: symbol visibility flags not support on xlc >> 12.1 >> >> 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-...@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-...@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-dev@openjdk.java.net>, "ppc-aix- >> port- >> >> >> d...@openjdk.java.net" <ppc-aix-port-...@openjdk.java.net>, "core- >> >> libs- >> >> >> d...@openjdk.java.net" <core-libs-...@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-dev@openjdk.java.net>; ppc-aix-port- >> >> >> d...@openjdk.java.net; core-libs-...@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-dev@openjdk.java.net' <build-dev@openjdk.java.net>; >> >> ppc- >> >> >> aix-port-...@openjdk.java.net; core-libs-...@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 >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >>