Recommended GCC version for JDK17+?
erik.joelsson at oracle.com
erik.joelsson at oracle.com
Wed Jan 5 14:25:34 UTC 2022
Hello Stewart,
The short answer is no, there is no official or definitive recommended
compiler version for OpenJDK. The wiki page you linked as the closest
thing we have, a page where different distributors of OpenJDK may list
the versions they use and test with. Choosing the same or similar for
your build is more likely to work well. Reading your email I was
reminded that I had neglected to update that wiki with Oracle build
platforms for a while, which I have now done.
The sentence about 10.2 is intentionally vague, but you are right, it
should have been updated to reference 10.3 when Oracle switched GCC
version in JDK 17.
It should also be noted that there is more to a compiler toolchain than
just the version number of the compiler. If you use the GCC/binutils
from a particular Linux distribution, it often comes with a set of
patches on top of the official source distribution. The versions of
system headers and libraries that you possibly statically link against
(optional) may also affect the final product. In the end, only testing
can verify that a particular build of OpenJDK works as well as it should.
If you would like to emulate the toolchains Oracle uses exactly, the
scripts we used to generate our "devkits" (portable toolchains) are
available in make/devkit/ in the relevant repo.
/Erik
On 2021-12-22 06:21, Stewart Addison wrote:
> Hi everyone,
>
> What is the definitive "recommended" version of GCC to use for building
> JDK17 and later?
>
> The reason for asking is because the OpenJDK wiki seems to recommend the
> (Red Hat vendor branch) GCC 8.2.1:
> https://wiki.openjdk.java.net/display/Build/Supported+Build+Platforms
>
> The JDK17+ building.md, however, seems to reference 10.2 as the "known to
> work" version:
> https://github.com/openjdk/jdk17u/blob/master/doc/building.md#gcc (But also
> states that anything at 5.0 and above /should/ also work)
>
> Looking at what some of the different openjdk providers use there seems to
> be a mix of versions in use although 7.3.1 seems particularly popular -
> possibly because 7.3 is listed in the devkits section of the document, or
> because 7.3.0 is the one listed in the building.md for jdk11u and some
> vendors have just stuck with it for now. Oracle's current JDK17 seems to
> use a more recent version than other providers - 10.3 from what I can tell.
>
> While different versions obviously work, is there a formal "recommended"
> version of GCC that should be used for compiling production versions of
> JDK17 on Linux? My gut feel is that it should possibly be 10.2 or a later
> 10 as the one listed as being known to work, but Oracle seems to have gone
> one up from that too so perhaps 10.2 should be replaced with 10.3 in the
> docs now ... And should the wiki be adjusted to be in sync with the level
> mentioned in building.md And I guess one final question would be whether
> anyone has done any comparisons with JDKs compiled with different versions
> that might sway any decisions?
>
> Regards,
>
> Stewart...
> --
> Working on Adoptium Temurin <https://adoptium.net> for Red Hat
> <https://www.redhat.com> <http://nodejs.org>
> https://twitter.com/sxaTech
> https://github.com/sxa
More information about the jdk-dev
mailing list