From 6389367a0284f786c21d438189d1bf431c9f96b0 Mon Sep 17 00:00:00 2001 From: Mikael Vidstedt Date: Thu, 24 Sep 2020 13:26:29 -0700 Subject: [PATCH] 8253616: Change to GCC 10.2 for building on Linux at Oracle --- 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 fee88e2748920..670235b7aa3db 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 539602036405e..157a3d726956f 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.5.3 @@ -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 36abc0a0ff4b1..c3f7a8a129ba3 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.5.3+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