Hi Ichiroh, what's the exact error message if you #include "osSupport.hpp"? (I have no xlC 13 at hand to try myself...)
Best regards Christoph > -----Original Message----- > From: Ichiroh Takiguchi [mailto:[email protected]] > Sent: Donnerstag, 7. Juni 2018 14:53 > To: [email protected]; [email protected]; core- > [email protected] > Cc: Lindenmaier, Goetz <[email protected]>; Baesken, Matthias > <[email protected]>; Langer, Christoph > <[email protected]> > Subject: RFR : 8204541 Correctly support AIX xlC 13.1 symbol visibility flags > > Hello. > > Could you review it ? > Bug: https://bugs.openjdk.java.net/browse/JDK-8204541 > Change: http://cr.openjdk.java.net/~clanger/webrevs/8204541.0/ > > Thanks, > Ichiroh Takiguchi > IBM Japan, Ltd. > > -------- Original Message -------- > Subject: RE: RFR : 8202322: AIX: symbol visibility flags not support on > xlc 12.1 > Date: 2018-06-07 20:43 > From: "Langer, Christoph" <[email protected]> > To: Ichiroh Takiguchi <[email protected]> > Cc: "'[email protected]'" <[email protected]>, > "[email protected]" <ppc-aix-port- > [email protected]>, > "[email protected]" <[email protected]>, > "Lindenmaier, Goetz" <[email protected]>, "Baesken, Matthias" > <[email protected]> > > Hi Ichiroh, > > your proposal seems to make sense. I have created a bug for this: > https://bugs.openjdk.java.net/browse/JDK-8204541 > > Can you please generate a webrev (referencing this bug, -c option of > webrev.ksh) and mail it over to me. Then I'll upload it and you can post > an official RFR mail. > > Best regards > Christoph > > > -----Original Message----- > > From: Ichiroh Takiguchi [mailto:[email protected]] > > Sent: Dienstag, 5. Juni 2018 08:59 > > To: Baesken, Matthias <[email protected]> > > Cc: Langer, Christoph <[email protected]>; 'build- > > [email protected]' <[email protected]>; ppc-aix-port- > > [email protected]; [email protected]; Lindenmaier, > > Goetz <[email protected]> > > Subject: RE: RFR : 8202322: AIX: symbol visibility flags not support on > > xlc 12.1 > > > > Hello Matthias and Christoph. > > Thank you for your explanations. > > > > I did not have enough knowledge about "visibility". > > > > I created following patches. > > > > ================================ > > diff -r 02934b0d661b > > src/java.base/share/native/libjimage/NativeImageBuffer.cpp > > --- a/src/java.base/share/native/libjimage/NativeImageBuffer.cpp Wed > > May > > 30 14:46:28 2018 +0200 > > +++ b/src/java.base/share/native/libjimage/NativeImageBuffer.cpp > Tue > > Jun > > 05 12:10:41 2018 +0900 > > @@ -39,7 +39,9 @@ > > #include "imageFile.hpp" > > #include "inttypes.hpp" > > #include "jimage.hpp" > > +#if !defined(_AIX) > > #include "osSupport.hpp" > > +#endif > > > > #include "jdk_internal_jimage_NativeImageBuffer.h" > > > > diff -r 02934b0d661b src/java.base/unix/native/include/jni_md.h > > --- a/src/java.base/unix/native/include/jni_md.h Wed May 30 14:46:28 > > 2018 +0200 > > +++ b/src/java.base/unix/native/include/jni_md.h Tue Jun 05 12:10:41 > > 2018 +0900 > > @@ -29,7 +29,8 @@ > > #ifndef __has_attribute > > #define __has_attribute(x) 0 > > #endif > > -#if (defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4) && > > (__GNUC_MINOR__ > 2))) || __has_attribute(visibility) > > +#if (defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4) && > > (__GNUC_MINOR__ > 2))) || __has_attribute(visibility) \ > > + || (defined(_AIX) && (defined(__xlC__) && (__xlC__ >= 0xD01))) > > #ifdef ARM > > #define JNIEXPORT > > __attribute__((externally_visible,visibility("default"))) > > #define JNIIMPORT > > __attribute__((externally_visible,visibility("default"))) > > ================================ > > > > If "osSupport.hpp" was included, XLC++ compiler complained. > > I could not understand, which part was invalid... > > I'm not sure, "osSupport.hpp" is really required on > > NativeImageBuffer.cpp or not... > > > > I added __xlC__ macro to determine XLC/C++'s version# into jni_md.h. > > [1] > > 0xD01 means 13.1 by hexadecimal. > > > > I checked symbol table by "dump -Tv -X64". [2] > > It seemed it was fine, some symbols were hidden. > > > > Does someone review my code? > > > > [1] > > > https://www.ibm.com/support/knowledgecenter/en/SSGH2K_13.1.3/com.i > > bm.xlc1313.aix.doc/compiler_ref/xlmacros.html > > [2] > > https://www.ibm.com/developerworks/aix/library/au-aix-symbol- > > visibility/index.html > > > > On 2018-06-01 21:12, Baesken, Matthias wrote: > > > Hi , my change 8202322 just handled the fact that the > > > visibility - flags are not supported with xlc 12.1 , so setting > > > them generated a TON of compile - time warnings . > > > > > > The introduction of the "-qvisibility=hidden" came with the > > > mapfile removal changes : > > > > > > 8200358: Remove mapfiles for JDK executables > > > http://hg.openjdk.java.net/jdk/jdk/rev/210cf224b690 > > > > > > 8200178: Remove mapfiles for JDK native libraries > > > http://hg.openjdk.java.net/jdk/jdk/rev/396ea30afbd5 > > > > > > I guess it might need further testing+adjustments to make the > > > "visibility hiding" work nicely with XLC13 , but currently we > > > build only with XLC12 . > > > > > > As a workaround you might want to remove the "-qvisibility=hidden" > > > setting for XLC 13 as well , like I did for XLC12 with the change > > > 8202322 . > > > > > > > > > Best regards, Matthias > > > > > > > > > > > > > > >> -----Original Message----- > > >> From: Langer, Christoph > > >> Sent: Freitag, 1. Juni 2018 10:57 > > >> To: Ichiroh Takiguchi <[email protected]> > > >> Cc: Baesken, Matthias <[email protected]>; 'build- > > >> [email protected]' <[email protected]>; ppc-aix-port- > > >> [email protected]; [email protected]; Lindenmaier, > > >> Goetz <[email protected]> > > >> Subject: RE: RFR : 8202322: AIX: symbol visibility flags not support > > >> on xlc 12.1 > > >> > > >> 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:[email protected]] > > >> > Sent: Donnerstag, 31. Mai 2018 09:55 > > >> > To: Langer, Christoph <[email protected]> > > >> > Cc: Baesken, Matthias <[email protected]>; 'build- > > >> > [email protected]' <[email protected]>; ppc-aix-port- > > >> > [email protected]; [email protected]; > Lindenmaier, > > >> > Goetz <[email protected]> > > >> > 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 <[email protected]>; > > >> > > '[email protected]' <[email protected]>; > > >> > > [email protected]; core-libs- > [email protected] > > >> > > Cc: Lindenmaier, Goetz <[email protected]> > > >> > > 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 > > >> > > > <[email protected]<mailto:[email protected]>>; > > >> > > '[email protected]' > > >> > > <[email protected]<mailto:build- > > [email protected]>>; > > >> > > [email protected]<mailto:ppc-aix-port- > > >> > [email protected]>; > > >> > > [email protected]<mailto:core-libs- > > >> [email protected]> > > >> > > Cc: Simonis, Volker > > >> > > <[email protected]<mailto:[email protected]>> > > >> > > 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: '[email protected]' > > >> > > <[email protected]<mailto:build- > > [email protected]>>; > > >> > > [email protected]<mailto:ppc-aix-port- > > >> > [email protected]>; > > >> > > [email protected]<mailto:core-libs- > > >> [email protected]> > > >> > > Cc: Langer, Christoph > > >> > > <[email protected]<mailto:[email protected]>>; > > >> Simonis, > > >> > > Volker > <[email protected]<mailto:[email protected]>> > > >> > > 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
