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

Taylor, Ben benty at amazon.com
Thu May 27 18:02:51 UTC 2021


> platform.m4
> -----------
>    -stdlib=libc++

Based on the man page for clang from xcode 12.5 [1] I believe Volker is correct
and this is likely a typo carried over from Simon's original patch [2]

--Ben

[1]  -std=<standard> Specify the language standard to compile for.
     -stdlib=<library> Specify the C++ standard library to use; 
                        supported options are libstdc++ and libc++. If not 
                        specified, platform default will be used.

[2] https://github.com/stooke/jdk8u-xcode10/blob/master/jdk8u-patch/jdk8u-libcxxfix.patch

On 5/27/21, 8:36 AM, "jdk8u-dev on behalf of Volker Simonis" <jdk8u-dev-retn at openjdk.java.net on behalf of volker.simonis at gmail.com> wrote:

    CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.



    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