RFR: 8357079: Fix Windows AArch64 DevKit Creation
Luigi Montoya
duke at openjdk.org
Fri Jun 13 19:29:41 UTC 2025
On Fri, 13 Jun 2025 13:58:48 GMT, Magnus Ihse Bursie <ihse at openjdk.org> wrote:
>> Fix path for Visual Studio arm64 binaries in createWindowsDevkit.sh
>>
>> The DevKit currently created on a Windows AArch64 machine uses the x64 compiler binaries (e.g. cl.exe). This can be inspected by running "dumpbin /headers /out:cl.txt cl.exe" on the compiler in the generated DevKit and inspecting the machine architecture line. It should instead use the native Windows AArch64 compiler binaries
>
> make/devkit/createWindowsDevkit.sh line 163:
>
>> 161: else
>> 162: cp -r "$VS_INSTALL_DIR/${VC_SUBDIR}/bin/Hostx64/arm64" $DEVKIT_ROOT/VC/bin/
>> 163: fi
>
> It seems to make sense to have a single devkit since there seem to be a lot of overlap and not much additional code added to a cross-compiling devkit to also have native binaries.
>
> In fact, I could that not just be done as easily with something like:
>
>
> Suggestion:
>
> if [ -d "$VS_INSTALL_DIR/${VC_SUBDIR}/bin/Hostarm64/arm64" ]; then
> cp -r "$VS_INSTALL_DIR/${VC_SUBDIR}/bin/Hostarm64/arm64" $DEVKIT_ROOT/VC/bin/
> fi
> if [ -d "$VS_INSTALL_DIR/${VC_SUBDIR}/bin/Hostx64/arm64" ]; then
> cp -r "$VS_INSTALL_DIR/${VC_SUBDIR}/bin/Hostx64/arm64" $DEVKIT_ROOT/VC/bin/
> fi
>
>
> Then of course we need to pick up the right set of compilers from the devkit, but I guess that would sort itself out if we know the build platform and are given the target platform as configure argument..?
I was thinking we could create the devkit based on the platform where the script is being run. For example, running `createWindowsDevkit.sh` on:
- Windows x64 would produce:
- Native x86 libraries
- Native x64 libraries
- Cross-compiled aarch64 libraries
- Windows aarch64 would produce:
- Native x86 libraries
- Native x64 libraries
- Native aarch64 libraries
>From my analysis of your code suggestion, it looks like it might override the native aarch64 libraries and always set the cross-compiled ones. What do you think?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/25259#discussion_r2145929505
More information about the build-dev
mailing list