Supporting alternative toolchains on Windows

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Fri Mar 11 17:50:23 UTC 2022



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.bursie at 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
>
>



More information about the build-dev mailing list