From d25b03e987396ef72534abc3c49bd7b53380a561 Mon Sep 17 00:00:00 2001 From: Mikael Vidstedt Date: Mon, 28 Sep 2020 18:31:30 +0000 Subject: [PATCH] 8253616: Change to GCC 10.2 for building on Linux at Oracle Reviewed-by: erikj --- doc/building.html | 4 ++-- doc/building.md | 4 ++-- make/conf/jib-profiles.js | 4 ++-- make/devkit/Tools.gmk | 34 +++++++++++++++++++++++++++------- 4 files changed, 33 insertions(+), 13 deletions(-) diff --git a/doc/building.html b/doc/building.html index 55a43430538..5f615f9d4ef 100644 --- a/doc/building.html +++ b/doc/building.html @@ -265,7 +265,7 @@ Linux -gcc 9.2.0 +gcc 10.2.0 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