RFR: JDK-8214063: OpenJDK will not build on AIX while using the xlc 13.1 compiler
Adam Farley8
adam.farley at uk.ibm.com
Tue Nov 20 16:12:51 UTC 2018
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.stuefe at gmail.com> wrote on 19/11/2018 18:11:34:
> From: "Thomas Stüfe" <thomas.stuefe at gmail.com>
> To: Adam Farley8 <adam.farley at uk.ibm.com>
> Cc: Java Core Libs <core-libs-dev at 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.farley at 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
More information about the core-libs-dev
mailing list