macOS |
@@ -280,7 +280,7 @@
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 0f3ce6e12e2..47fa445998d 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 a186c771686..4d848791cdb 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 b6ea735eaaf..d5ef8eac849 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