Hi Adam, On Tue, Nov 20, 2018 at 5:12 PM Adam Farley8 <adam.far...@uk.ibm.com> wrote: > > Hi Tom, > > Sounds reasonable. I've added a webex to the bug, and here's a link to the > bug. > > https://bugs.openjdk.java.net/browse/JDK-8214063 > > This patch is required because otherwise, when building on AIX using xlc 3.1, > the build fails with this error: > > "Visibility is not allowed on a reference to an imported symbol." > > We believe this is caused by JNIEXPORT and JNIIMPORT not being defined. > Without > this, almost no symbols are exported from shared libraries due to use of > -qvisibility=hidden as specified in make/lib/LibCommon.gmk.
Yes but what I try to understand is why does this happen now with xlc13? Did xlc change the rules for -qvisibility from v12 to v13 ? That would be quite a break in backward compatibility. > > For convenience, here's a summary of the diffs: > > -------------------------------------- > File 1 of 2) src/java.base/share/native/libjimage/NativeImageBuffer.cpp > > #include "osSupport.hpp" > > +#if defined(__xlC__) && (__xlC__ >= 0x0d01) > +/* > + * Version 13.1.3 of xlc seems to have trouble parsing the `__attribute__` > + * annotation in the generated header file we're about to include. Repeating > + * the forward declaration (without the braces) here avoids the diagnostic: > + * 1540-0040 (S) The text "void" is unexpected. "visibility" may be > undeclared or ambiguous. > + */ > +extern "C" JNIEXPORT jobject JNICALL > Java_jdk_internal_jimage_NativeImageBuffer_getNativeMap(JNIEnv *, jclass, > jstring); > +#endif > + > #include "jdk_internal_jimage_NativeImageBuffer.h" > -------------------------------------- > File 2 of 2) src/java.base/unix/native/include/jni_md.h > > #define JNIIMPORT __attribute__((visibility("default"))) > #endif > +#elif defined(__xlC__) && (__xlC__ >= 0x0d01) /* xlc version 13.1 or better > required */ > + #define JNIEXPORT __attribute__((visibility("default"))) > + #define JNIIMPORT __attribute__((visibility("default"))) > #else > #define JNIEXPORT > -------------------------------------- > Thank you. Cheers, Thomas > Best Regards > > Adam Farley > IBM Runtimes > > > "Thomas Stüfe" <thomas.stu...@gmail.com> wrote on 19/11/2018 18:11:34: > > > From: "Thomas Stüfe" <thomas.stu...@gmail.com> > > To: Adam Farley8 <adam.far...@uk.ibm.com> > > Cc: Java Core Libs <core-libs-dev@openjdk.java.net> > > Date: 19/11/2018 18:12 > > Subject: Re: RFR: JDK-8214063: OpenJDK will not build on AIX while > > using the xlc 13.1 compiler > > > > Hi Adam, > > > > could you please include link to the JBS issue and either link to the > > patch/webrev or link to the webrev, or at the very least the patch > > verbatim? > > > > As for the issue itself: could you please elaborate why this fails with > > xlc13? > > > > Also, a real patch would be helpful instead here of yet another link > > to some J9 issue. We are really strapped for manpower and the AIX port > > eats up enough time as it is. > > > > Thanks, Thomas > > > > On Mon, Nov 19, 2018 at 6:28 PM Adam Farley8 <adam.far...@uk.ibm.com> wrote: > > > > > > Hi All > > > > > > Both the problem and the solution appear straight-forward enough. > > > > > > Details included in the bug description. > > > > > > Thoughts and opinions welcome. > > > > > > Best Regards > > > > > > Adam Farley > > > IBM Runtimes > > > > > > Unless stated otherwise above: > > > IBM United Kingdom Limited - Registered in England and Wales with number > > > 741598. > > > Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU > > > > Unless stated otherwise above: > IBM United Kingdom Limited - Registered in England and Wales with number > 741598. > Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU