[8u] RFR: 8267545: [8u] Enable Xcode 12 builds on macOS

Volker Simonis volker.simonis at gmail.com
Thu May 27 15:34:37 UTC 2021


Hi Paul,

in general, this change looks good to me. I have just a few comments
and questions:

 TOP-LEVEL
=========

flags.m4
--------
Are the following lines still required to point to a problem or can
they be removed (e.g. we don't have any "closed legacy code" in ojdk8u
any more)?

 688       # FIXME: This needs to be exported in spec.gmk due to
closed legacy code.
 689       # FIXME: clean this up, and/or move it elsewhere.

Also don't understand the following lines:

 771     elif test "x$TOOLCHAIN_TYPE" = xclang; then
 772       # If this is a --hash-style=gnu system, use --hash-style=both, why?
 773       # We have previously set HAS_GNU_HASH if this is the case
 774       if test -n "$HAS_GNU_HASH"; then

but "$HAS_GNU_HASH" is only defined for the gcc toolchain (see
"toolchain.m4") so it doesn't seem to make sense here.

Later we have:

 771     elif test "x$TOOLCHAIN_TYPE" = xclang; then
 ...
 777       if test "x$OPENJDK_TARGET_OS" = xlinux; then

but this change is for enabling Xcode builds on Mac and not clang
builds on Linux. So ot seems the whole "elif test "x$TOOLCHAIN_TYPE" =
xclang; then" isn't required?


libraries.m4
------------
LIBCXX="-std=libc++"
platform.m4
-----------
-stdlib=libc++

I'm not an Xcode expert so this is just a question. Are the options
for "OPENJDK_TARGET_CPU_JLI_CFLAGS" and "LIBCXX" really different?
I.e. "-std=libc++" vs. "-stdlib=libc++".


JDK
===

URLClassPath.c
---------------

+/* defined in libverify.so/verify.dll (src file common/check_format.c) */
+extern jboolean VerifyClassname(char *utf_name, jboolean arrayAllowed);
+extern jboolean VerifyFixClassname(char *utf_name);
+
 #include "sun_misc_URLClassPath.h"

+/* defined in libverify.so/verify.dll (src file common/check_format.c) */
+extern jboolean VerifyClassname(char *utf_name, jboolean arrayAllowed);
+extern jboolean VerifyFixClassname(char *utf_name);
+

Do we really need to declare these external dependecies two time?
Looks like a copy-paste error to me?


HOTSPOT
=======

LGTM

On Wed, May 26, 2021 at 7:33 PM Hohensee, Paul <hohensee at amazon.com> wrote:
>
> This is the last patch in the series that will enable Xcode 12 builds of 8u. The 8u build system is sufficiently different from later versions that backports beyond what have already been done are unrealistic.
>
> JBS: https://bugs.openjdk.java.net/browse/JDK-8267545
> root webrev: https://cr.openjdk.java.net/~phh/8267545/webrev.8u.root.03/
> jdk webrev: https://cr.openjdk.java.net/~phh/8267545/webrev.8u.jdk.02/
> hotspot webrev: https://cr.openjdk.java.net/~phh/8267545/webrev.8u.hotspot.01/
>
> As detailed in the JBS issue, these are a merge/update by Ben Taylor of Simon Tooke’s proposed patches. The minimum Xcode version has been changed from 4 to 6 because recent source changes cause the 8u build to fail with Xcode 4. See
>
> https://mail.openjdk.java.net/pipermail/jdk8u-dev/2021-May/013791.html
>
> References to Xcode 4 have been removed from the root patch. Also, the regenerated generated-configure.sh isn’t in the root patch for the sake of clarity: I’ll add it to the final push.
>
> In the hotspot patch:
>
>
>   1.  The change to ostream.cpp is the fix proposed by Ziyi Luo for 8256720. I plan to close 8256720 as a dup of 8267545.
>   2.  The change to os_bsd_x86.cpp was mistakenly left out of a previous backport (which I can’t find at the moment!)
>
> Thanks,
> Paul
>
>


More information about the jdk8u-dev mailing list