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. 

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
--------------------------------------

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

Reply via email to