On 2022-03-11 14:34, Julian Waters wrote:
Darn, seems like it'll be much harder than I expected. Since multiple toolchains are supported for macOS and Linux, I assumed a slight patch would help get it to work on Windows. Looking through the stuff in make though, it appears a lot of the build system implicitly expects the compiler for Windows to always be Visual C++, which doesn't really help that much (Though the fact that we can exclude many versions of gcc, such as Cygwin's and old MinGW binaries helps a lot). The build process for the newer Windows ports of gcc are surprisingly similar to Visual C++ though (Eg rc can be swapped out for windres) so this might hopefully be something I can try exploring in the future (Gonna look a bit harder at make and write what I can find back to this mailing list in the meantime). It'd be interesting if benchmarks of the JVM compiled with different compilers on Windows can be compared side by side on the off chance this becomes a reality though

In theory OS and compiler toolchain are separate things. In practice, in the JDK, they are not. There is basically a 1-to-1 mapping between toolchain and OS:
Windows <-> Visual Studio
macOS <-> XCode/clang
linux <-> gcc

(The one possible exception is that clang on linux is probably feasible.)

After years and years on this, all kinds of assumptions has been hard-coded, even if people try to do the right thing. But sometimes it is not clear if you are checking for toolchain or os; perhaps when linking with a specific library, or setting some define.

Any attempt to change this is, as I said, a *huge* undertaking. *And* there will be tons of negative consequences for the code base as a whole, when trying to differentiate between toolchain and OS. So this will need to be seriously considered.

/Magnus


best regards,
Julian

On Fri, Mar 11, 2022 at 9:16 PM Magnus Ihse Bursie <magnus.ihse.bur...@oracle.com> wrote:

    On 2022-03-11 12:55, Julian Waters wrote:

    > Hi all,
    >
    > How feasible would it be/much effort would it require to support
    compiling
    > with alternate toolchains on Windows besides Visual C++ (like
    the Windows
    > ports of clang and gcc) if we restrict the allowed toolchains to
    only those
    > that link against the ucrt? (Toolchains linking against the
    dated msvcrt
    > would present too many issues to work with)

    That'd be a huge undertaking. And any such patch would only be
    accepted
    into the code base if the organization behinded appeared
    trustworthy in
    their long-term commitment to keeping it working.

    /Magnus


Reply via email to