RFR: 8357079: Fix Windows AArch64 DevKit Creation

Luigi Montoya duke at openjdk.org
Thu Jun 19 23:52:29 UTC 2025


On Thu, 19 Jun 2025 14:09:47 GMT, Magnus Ihse Bursie <ihse at openjdk.org> wrote:

>> When you download VS on x64 you just get cross-compilers for aarch64 (I don't know why). The `Hostarm64` directory is not created in x64 machines.
>
> So if we run the devkit script on an aarch64 machine, we can create a devkit that will work on both x64 and aarch64? But if we run it on x64, the devkit that we create will only work on x64? Have I got this right?
> 
> If so, I think the script should support this, and make it clear what it does. That is, if you run it on aarch64, you get a multi-platform devkit, but on x64 you get a x64-only devkit. I think the devkit script should mention this, ideally in an `echo` statement, but a comment in the source code is acceptable. Like:
> `You are generating a devkit for x64 only. To include aarch64 as well, run the script on windows/aarch64` and `Generating devkit for x64 and aarch64`, respectively. Or something like that.

I was planning adding something like this:

# Detect host architecture to determine devkit platform support
# Note: The devkit always includes x86, x64, and aarch64 libraries and tools
# The difference is in toolchain capabilities:
# - On x64|AMD64 hosts: aarch64 tools are cross-compilation tools (Hostx64/arm64)
# - On aarch64|ARMv8 hosts: aarch64 tools are native tools (Hostarm64/arm64)
HOST_ARCH=`echo $PROCESSOR_IDENTIFIER`
case $HOST_ARCH in
    AMD64)
        echo "Running on x64 host - generating devkit with native x86/x64 tools and cross-compiled aarch64 tools."
        echo "For native aarch64 compilation tools, run this script on a Windows/aarch64 machine."
        SUPPORTED_PLATFORMS="x86, x64 (native) and aarch64 (cross-compiled)"
        ;;
    ARMv8)
        echo "Running on aarch64 host - generating devkit with native tools for all platforms (x86, x64, aarch64)."
        SUPPORTED_PLATFORMS="x86, x64, and aarch64 (all native)"
        ;;
    *)
        echo "Unknown host architecture: $HOST_ARCH"
        echo "Proceeding with devkit generation - toolchain capabilities may vary."
        SUPPORTED_PLATFORMS="x86, x64, and aarch64"
        ;;
esac

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/25259#discussion_r2157794144


More information about the build-dev mailing list