diff --git a/doc/building.html b/doc/building.html index 55a434305386a..5f615f9d4eff5 100644 --- a/doc/building.html +++ b/doc/building.html @@ -265,7 +265,7 @@

Native Compiler (Toolchain) Requ Linux -gcc 9.2.0 +gcc 10.2.0 macOS @@ -280,7 +280,7 @@

Native Compiler (Toolchain) Requ

All compilers are expected to be able to compile to the C99 language standard, as some C99 features are used in the source code. Microsoft Visual Studio doesn't fully support C99 so in practice shared code is limited to using C99 features that it does support.

gcc

The minimum accepted version of gcc is 5.0. Older versions will generate a warning by configure and are unlikely to work.

-

The JDK is currently known to be able to compile with at least version 9.2 of gcc.

+

The JDK is currently known to be able to compile with at least version 10.2 of gcc.

In general, any version between these two should be usable.

clang

The minimum accepted version of clang is 3.5. Older versions will not be accepted by configure.

diff --git a/doc/building.md b/doc/building.md index 0f3ce6e12e2d3..47fa445998d19 100644 --- a/doc/building.md +++ b/doc/building.md @@ -302,7 +302,7 @@ issues. Operating system Toolchain version ------------------ ------------------------------------------------------- - Linux gcc 9.2.0 + Linux gcc 10.2.0 macOS Apple Xcode 10.1 (using clang 10.0.0) Windows Microsoft Visual Studio 2019 update 16.7.2 @@ -316,7 +316,7 @@ features that it does support. The minimum accepted version of gcc is 5.0. Older versions will generate a warning by `configure` and are unlikely to work. -The JDK is currently known to be able to compile with at least version 9.2 of +The JDK is currently known to be able to compile with at least version 10.2 of gcc. In general, any version between these two should be usable. diff --git a/make/conf/jib-profiles.js b/make/conf/jib-profiles.js index a186c77168683..4d848791cdb25 100644 --- a/make/conf/jib-profiles.js +++ b/make/conf/jib-profiles.js @@ -959,10 +959,10 @@ var getJibProfilesProfiles = function (input, common, data) { var getJibProfilesDependencies = function (input, common) { var devkit_platform_revisions = { - linux_x64: "gcc9.2.0-OL6.4+1.0", + linux_x64: "gcc10.2.0-OL6.4+1.0", macosx_x64: "Xcode11.3.1-MacOSX10.15+1.0", windows_x64: "VS2019-16.7.2+1.0", - linux_aarch64: "gcc9.2.0-OL7.6+1.0", + linux_aarch64: "gcc10.2.0-OL7.6+1.0", linux_arm: "gcc8.2.0-Fedora27+1.0", linux_ppc64le: "gcc8.2.0-Fedora27+1.0", linux_s390x: "gcc8.2.0-Fedora27+1.0" diff --git a/make/devkit/Tools.gmk b/make/devkit/Tools.gmk index b6ea735eaaf43..d5ef8eac84942 100644 --- a/make/devkit/Tools.gmk +++ b/make/devkit/Tools.gmk @@ -87,11 +87,20 @@ endif # Define external dependencies # Latest that could be made to work. -GCC_VER := 9.2.0 -ifeq ($(GCC_VER), 9.2.0) +GCC_VER := 10.2.0 +ifeq ($(GCC_VER), 10.2.0) + gcc_ver := gcc-10.2.0 + binutils_ver := binutils-2.35 + ccache_ver := ccache-3.7.11 + mpfr_ver := mpfr-4.1.0 + gmp_ver := gmp-6.2.0 + mpc_ver := mpc-1.1.0 + gdb_ver := gdb-9.2 + REQUIRED_MIN_MAKE_MAJOR_VERSION := 4 +else ifeq ($(GCC_VER), 9.2.0) gcc_ver := gcc-9.2.0 binutils_ver := binutils-2.34 - ccache_ver := 3.7.3 + ccache_ver := ccache-3.7.3 mpfr_ver := mpfr-3.1.5 gmp_ver := gmp-6.1.2 mpc_ver := mpc-1.0.3 @@ -99,7 +108,7 @@ ifeq ($(GCC_VER), 9.2.0) else ifeq ($(GCC_VER), 8.3.0) gcc_ver := gcc-8.3.0 binutils_ver := binutils-2.32 - ccache_ver := 3.7.3 + ccache_ver := ccache-3.7.3 mpfr_ver := mpfr-3.1.5 gmp_ver := gmp-6.1.2 mpc_ver := mpc-1.0.3 @@ -107,7 +116,7 @@ else ifeq ($(GCC_VER), 8.3.0) else ifeq ($(GCC_VER), 7.3.0) gcc_ver := gcc-7.3.0 binutils_ver := binutils-2.30 - ccache_ver := 3.3.6 + ccache_ver := ccache-3.3.6 mpfr_ver := mpfr-3.1.5 gmp_ver := gmp-6.1.2 mpc_ver := mpc-1.0.3 @@ -115,7 +124,7 @@ else ifeq ($(GCC_VER), 7.3.0) else ifeq ($(GCC_VER), 4.9.2) gcc_ver := gcc-4.9.2 binutils_ver := binutils-2.25 - ccache_ver := 3.2.1 + ccache_ver := ccache-3.2.1 mpfr_ver := mpfr-3.0.1 gmp_ver := gmp-4.3.2 mpc_ver := mpc-1.0.1 @@ -124,9 +133,20 @@ else $(error Unsupported GCC version) endif +ifneq ($(REQUIRED_MIN_MAKE_MAJOR_VERSION),) + MAKE_MAJOR_VERSION := $(word 1,$(subst ., ,$(MAKE_VERSION))) + SUPPORTED_MAKE_VERSION := $(shell [ $(MAKE_MAJOR_VERSION) -ge $(REQUIRED_MIN_MAKE_MAJOR_VERSION) ] && echo true) + ifneq ($(SUPPORTED_MAKE_VERSION),true) + $(error "Make v$(MAKE_VERSION) is too old, must use v$(REQUIRED_MIN_MAKE_MAJOR_VERSION) or above") + endif +endif + +ccache_ver_only := $(patsubst ccache-%,%,$(ccache_ver)) + + GCC := http://ftp.gnu.org/pub/gnu/gcc/$(gcc_ver)/$(gcc_ver).tar.xz BINUTILS := http://ftp.gnu.org/pub/gnu/binutils/$(binutils_ver).tar.gz -CCACHE := https://github.com/ccache/ccache/releases/download/v$(ccache_ver)/ccache-$(ccache_ver).tar.xz +CCACHE := https://github.com/ccache/ccache/releases/download/v$(ccache_ver_only)/$(ccache_ver).tar.xz MPFR := https://www.mpfr.org/${mpfr_ver}/${mpfr_ver}.tar.bz2 GMP := http://ftp.gnu.org/pub/gnu/gmp/${gmp_ver}.tar.bz2 MPC := http://ftp.gnu.org/pub/gnu/mpc/${mpc_ver}.tar.gz