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: 20/11/2018 16:48
Subject: Re: RFR: JDK-8214063: OpenJDK will not build on AIX while
using the xlc 13.1 compiler
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://urldefense.proofpoint.com/v2/url?
u=https-3A__bugs.openjdk.java.net_browse_JDK-2D8214063&d=DwIFaQ&c=jf_iaSHvJObTbx-
siA1ZOg&r=P5m8KWUXJf-
CeVJc0hDGD9AQ2LkcXDC0PMV9ntVw5Ho&m=z8YYwBXEfN7UtX1suPjpp9CZSHf8v0GrIMK3XGIC9VY&s=81TP9mIjhYD2Hmt8g7p2EHWRZXgiep21hxKLYRU7zIQ&e=
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