8220093: Change to GCC 8.2 for building on Linux at Oracle
Reviewed-by: tbell
This commit is contained in:
parent
030493e7e7
commit
290bfe5f4c
@ -643,14 +643,21 @@ AC_DEFUN([TOOLCHAIN_EXTRACT_LD_VERSION],
|
|||||||
[ LINKER_VERSION_NUMBER=`$ECHO $LINKER_VERSION_STRING | \
|
[ LINKER_VERSION_NUMBER=`$ECHO $LINKER_VERSION_STRING | \
|
||||||
$SED -e 's/.* \([0-9][0-9]*\(\.[0-9][0-9]*\)*\).*/\1/'` ]
|
$SED -e 's/.* \([0-9][0-9]*\(\.[0-9][0-9]*\)*\).*/\1/'` ]
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xgcc; then
|
elif test "x$TOOLCHAIN_TYPE" = xgcc; then
|
||||||
# gcc -Wl,-version output typically looks like
|
# gcc -Wl,-version output typically looks like:
|
||||||
# GNU ld (GNU Binutils for Ubuntu) 2.26.1
|
# GNU ld (GNU Binutils for Ubuntu) 2.26.1
|
||||||
# Copyright (C) 2015 Free Software Foundation, Inc.
|
# Copyright (C) 2015 Free Software Foundation, Inc.
|
||||||
# This program is free software; [...]
|
# This program is free software; [...]
|
||||||
LINKER_VERSION_STRING=`$LD -Wl,-version 2>&1 | $HEAD -n 1`
|
# If using gold it will look like:
|
||||||
|
# GNU gold (GNU Binutils 2.30) 1.15
|
||||||
|
LINKER_VERSION_STRING=`$LD -Wl,--version 2> /dev/null | $HEAD -n 1`
|
||||||
# Extract version number
|
# Extract version number
|
||||||
|
if [ [[ "$LINKER_VERSION_STRING" == *gold* ]] ]; then
|
||||||
|
[ LINKER_VERSION_NUMBER=`$ECHO $LINKER_VERSION_STRING | \
|
||||||
|
$SED -e 's/.* \([0-9][0-9]*\(\.[0-9][0-9]*\)*\).*) .*/\1/'` ]
|
||||||
|
else
|
||||||
[ LINKER_VERSION_NUMBER=`$ECHO $LINKER_VERSION_STRING | \
|
[ LINKER_VERSION_NUMBER=`$ECHO $LINKER_VERSION_STRING | \
|
||||||
$SED -e 's/.* \([0-9][0-9]*\(\.[0-9][0-9]*\)*\).*/\1/'` ]
|
$SED -e 's/.* \([0-9][0-9]*\(\.[0-9][0-9]*\)*\).*/\1/'` ]
|
||||||
|
fi
|
||||||
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
elif test "x$TOOLCHAIN_TYPE" = xclang; then
|
||||||
# clang -Wl,-v output typically looks like
|
# clang -Wl,-v output typically looks like
|
||||||
# @(#)PROGRAM:ld PROJECT:ld64-305
|
# @(#)PROGRAM:ld PROJECT:ld64-305
|
||||||
|
@ -939,21 +939,26 @@ var getJibProfilesProfiles = function (input, common, data) {
|
|||||||
var getJibProfilesDependencies = function (input, common) {
|
var getJibProfilesDependencies = function (input, common) {
|
||||||
|
|
||||||
var devkit_platform_revisions = {
|
var devkit_platform_revisions = {
|
||||||
linux_x64: "gcc7.3.0-OEL6.4+1.2",
|
linux_x64: "gcc8.2.0-OL6.4+1.0",
|
||||||
macosx_x64: "Xcode10.1-MacOSX10.14+1.0",
|
macosx_x64: "Xcode10.1-MacOSX10.14+1.0",
|
||||||
solaris_x64: "SS12u4-Solaris11u1+1.0",
|
solaris_x64: "SS12u4-Solaris11u1+1.0",
|
||||||
solaris_sparcv9: "SS12u6-Solaris11u3+1.0",
|
solaris_sparcv9: "SS12u6-Solaris11u3+1.0",
|
||||||
windows_x64: "VS2017-15.9.6+1.0",
|
windows_x64: "VS2017-15.9.6+1.0",
|
||||||
linux_aarch64: "gcc7.3.0-Fedora27+1.2",
|
linux_aarch64: "gcc8.2.0-Fedora27+1.0",
|
||||||
linux_arm: "gcc7.3.0-Fedora27+1.2",
|
linux_arm: "gcc8.2.0-Fedora27+1.0",
|
||||||
linux_ppc64le: "gcc7.3.0-Fedora27+1.0",
|
linux_ppc64le: "gcc8.2.0-Fedora27+1.0",
|
||||||
linux_s390x: "gcc7.3.0-Fedora27+1.0"
|
linux_s390x: "gcc8.2.0-Fedora27+1.0"
|
||||||
};
|
};
|
||||||
|
|
||||||
var devkit_platform = (input.target_cpu == "x86"
|
var devkit_platform = (input.target_cpu == "x86"
|
||||||
? input.target_os + "_x64"
|
? input.target_os + "_x64"
|
||||||
: input.target_platform);
|
: input.target_platform);
|
||||||
|
|
||||||
|
var devkit_cross_prefix = "";
|
||||||
|
if (input.target_platform != input.build_platform) {
|
||||||
|
devkit_cross_prefix = input.build_platform + "-to-";
|
||||||
|
}
|
||||||
|
|
||||||
var boot_jdk_platform = (input.build_os == "macosx" ? "osx" : input.build_os)
|
var boot_jdk_platform = (input.build_os == "macosx" ? "osx" : input.build_os)
|
||||||
+ "-" + input.build_cpu;
|
+ "-" + input.build_cpu;
|
||||||
var boot_jdk_ext = (input.build_os == "windows" ? ".zip" : ".tar.gz")
|
var boot_jdk_ext = (input.build_os == "windows" ? ".zip" : ".tar.gz")
|
||||||
@ -984,7 +989,7 @@ var getJibProfilesDependencies = function (input, common) {
|
|||||||
devkit: {
|
devkit: {
|
||||||
organization: common.organization,
|
organization: common.organization,
|
||||||
ext: "tar.gz",
|
ext: "tar.gz",
|
||||||
module: "devkit-" + devkit_platform,
|
module: "devkit-" + devkit_cross_prefix + devkit_platform,
|
||||||
revision: devkit_platform_revisions[devkit_platform],
|
revision: devkit_platform_revisions[devkit_platform],
|
||||||
environment: {
|
environment: {
|
||||||
"DEVKIT_HOME": input.get("devkit", "home_path"),
|
"DEVKIT_HOME": input.get("devkit", "home_path"),
|
||||||
|
@ -29,14 +29,10 @@
|
|||||||
# gcc based cross compilation, portable, self contained packages, capable
|
# gcc based cross compilation, portable, self contained packages, capable
|
||||||
# of building OpenJDK.
|
# of building OpenJDK.
|
||||||
#
|
#
|
||||||
# In addition to the makefiles, access to Oracle Linux installation
|
|
||||||
# media is required. This has been tested against Oracle Enterprise Linux
|
|
||||||
# 6.4.
|
|
||||||
#
|
|
||||||
# By default this Makefile will build a native toolchain for the current
|
# By default this Makefile will build a native toolchain for the current
|
||||||
# platform if called with something like this:
|
# platform if called with something like this:
|
||||||
#
|
#
|
||||||
# make tars BASE_OS=OEL6
|
# make tars BASE_OS=OL
|
||||||
#
|
#
|
||||||
# To build the full set of crosstools for additional platforms, use a command
|
# To build the full set of crosstools for additional platforms, use a command
|
||||||
# line looking like this:
|
# line looking like this:
|
||||||
@ -48,9 +44,19 @@
|
|||||||
# to build several devkits for a specific OS version at once.
|
# to build several devkits for a specific OS version at once.
|
||||||
# You can find the final results under ../../build/devkit/result/<host>-to-<target>
|
# You can find the final results under ../../build/devkit/result/<host>-to-<target>
|
||||||
#
|
#
|
||||||
|
# You may want the native toolchain to be used when compiling the cross
|
||||||
|
# compilation toolchains. To achieve this, first build the native toolchain,
|
||||||
|
# then add the bin directory from this build to the path when invoking this
|
||||||
|
# makefile again for cross compilation. Ex:
|
||||||
|
#
|
||||||
|
# PATH=$PWD/../../build/devkit/result/x86_64-linux-gnu-to-x86_64-linux-gnu/bin:$PATH \
|
||||||
|
# make TARGETS="arm-linux-gnueabihf,ppc64-linux-gnu" BASE_OS=Fedora
|
||||||
|
#
|
||||||
# This is the makefile which iterates over all host and target platforms.
|
# This is the makefile which iterates over all host and target platforms.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
COMMA := ,
|
||||||
|
|
||||||
os := $(shell uname -o)
|
os := $(shell uname -o)
|
||||||
cpu := $(shell uname -p)
|
cpu := $(shell uname -p)
|
||||||
|
|
||||||
@ -66,7 +72,7 @@ ifeq ($(TARGETS), )
|
|||||||
platforms := $(me)
|
platforms := $(me)
|
||||||
host_platforms := $(platforms)
|
host_platforms := $(platforms)
|
||||||
else
|
else
|
||||||
platforms := $(TARGETS)
|
platforms := $(subst $(COMMA), , $(TARGETS))
|
||||||
host_platforms := $(me)
|
host_platforms := $(me)
|
||||||
endif
|
endif
|
||||||
target_platforms := $(platforms)
|
target_platforms := $(platforms)
|
||||||
@ -93,7 +99,7 @@ $(host_platforms) :
|
|||||||
$(MAKE) -f Tools.gmk all $(submakevars) \
|
$(MAKE) -f Tools.gmk all $(submakevars) \
|
||||||
TARGET=$$p PREFIX=$(RESULT)/$@-to-$$p && \
|
TARGET=$$p PREFIX=$(RESULT)/$@-to-$$p && \
|
||||||
$(MAKE) -f Tools.gmk ccache $(submakevars) \
|
$(MAKE) -f Tools.gmk ccache $(submakevars) \
|
||||||
TARGET=$@ PREFIX=$(RESULT)/$@-to-$$p BUILDDIR=$(OUTPUT_ROOT)/$@/$$p || exit 1 ; \
|
TARGET=$@ PREFIX=$(RESULT)/$@-to-$$p || exit 1 ; \
|
||||||
done
|
done
|
||||||
@echo 'All done"'
|
@echo 'All done"'
|
||||||
|
|
||||||
@ -103,7 +109,6 @@ define Mktar
|
|||||||
$(1)-to-$(2)_tar = $$(RESULT)/sdk-$(1)-to-$(2)-$$(today).tar.gz
|
$(1)-to-$(2)_tar = $$(RESULT)/sdk-$(1)-to-$(2)-$$(today).tar.gz
|
||||||
$$($(1)-to-$(2)_tar) : PLATFORM = $(1)-to-$(2)
|
$$($(1)-to-$(2)_tar) : PLATFORM = $(1)-to-$(2)
|
||||||
TARFILES += $$($(1)-to-$(2)_tar)
|
TARFILES += $$($(1)-to-$(2)_tar)
|
||||||
$$($(1)-to-$(2)_tar) : $$(shell find $$(RESULT)/$(1)-to-$(2) -type f)
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(foreach p,$(host_platforms),$(foreach t,$(target_platforms),$(eval $(call Mktar,$(p),$(t)))))
|
$(foreach p,$(host_platforms),$(foreach t,$(target_platforms),$(eval $(call Mktar,$(p),$(t)))))
|
||||||
@ -111,9 +116,7 @@ $(foreach p,$(host_platforms),$(foreach t,$(target_platforms),$(eval $(call Mkta
|
|||||||
tars : all $(TARFILES)
|
tars : all $(TARFILES)
|
||||||
onlytars : $(TARFILES)
|
onlytars : $(TARFILES)
|
||||||
%.tar.gz :
|
%.tar.gz :
|
||||||
@echo 'Creating compiler package $@'
|
$(MAKE) -r -f Tars.gmk SRC_DIR=$(RESULT)/$(PLATFORM) TAR_FILE=$@
|
||||||
cd $(RESULT) && tar -czf $@ $(PLATFORM)/*
|
|
||||||
touch $@
|
|
||||||
|
|
||||||
clean :
|
clean :
|
||||||
rm -rf $(addprefix ../../build/devkit/, result $(host_platforms))
|
rm -rf $(addprefix ../../build/devkit/, result $(host_platforms))
|
||||||
|
49
make/devkit/Tars.gmk
Normal file
49
make/devkit/Tars.gmk
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
#
|
||||||
|
# Copyright (c) 2013, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
|
#
|
||||||
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU General Public License version 2 only, as
|
||||||
|
# published by the Free Software Foundation. Oracle designates this
|
||||||
|
# particular file as subject to the "Classpath" exception as provided
|
||||||
|
# by Oracle in the LICENSE file that accompanied this code.
|
||||||
|
#
|
||||||
|
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
# version 2 for more details (a copy is included in the LICENSE file that
|
||||||
|
# accompanied this code).
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License version
|
||||||
|
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||||
|
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
#
|
||||||
|
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||||
|
# or visit www.oracle.com if you need additional information or have any
|
||||||
|
# questions.
|
||||||
|
#
|
||||||
|
|
||||||
|
# This makefile creates the tar files. It needs to be called with make -r
|
||||||
|
# which is why it's separated out into its own file.
|
||||||
|
|
||||||
|
# Input parameters
|
||||||
|
# SRC_DIR
|
||||||
|
# TAR_FILE
|
||||||
|
|
||||||
|
ifeq ($(SRC_DIR), )
|
||||||
|
$(error SRC_DIR not set)
|
||||||
|
endif
|
||||||
|
ifeq ($(TAR_FILE), )
|
||||||
|
$(error TAR_FILE not set)
|
||||||
|
endif
|
||||||
|
|
||||||
|
default: tars
|
||||||
|
|
||||||
|
tars : $(TAR_FILE)
|
||||||
|
|
||||||
|
$(TAR_FILE): $(shell find $(SRC_DIR) -type f)
|
||||||
|
@echo 'Creating compiler package $@'
|
||||||
|
cd $(dir $(SRC_DIR)) && tar -czf $@ $(notdir $(SRC_DIR))/*
|
||||||
|
touch $@
|
||||||
|
|
||||||
|
.PHONY: default tars
|
@ -51,9 +51,9 @@ endif
|
|||||||
|
|
||||||
$(info ARCH=$(ARCH))
|
$(info ARCH=$(ARCH))
|
||||||
|
|
||||||
ifeq ($(BASE_OS), OEL6)
|
ifeq ($(BASE_OS), OL)
|
||||||
BASE_URL := http://yum.oracle.com/repo/OracleLinux/OL6/4/base/$(ARCH)/
|
BASE_URL := http://yum.oracle.com/repo/OracleLinux/OL6/4/base/$(ARCH)/
|
||||||
LINUX_VERSION := OEL6.4
|
LINUX_VERSION := OL6.4
|
||||||
else ifeq ($(BASE_OS), Fedora)
|
else ifeq ($(BASE_OS), Fedora)
|
||||||
DEFAULT_OS_VERSION := 27
|
DEFAULT_OS_VERSION := 27
|
||||||
ifeq ($(BASE_OS_VERSION), )
|
ifeq ($(BASE_OS_VERSION), )
|
||||||
@ -79,8 +79,17 @@ endif
|
|||||||
# Define external dependencies
|
# Define external dependencies
|
||||||
|
|
||||||
# Latest that could be made to work.
|
# Latest that could be made to work.
|
||||||
GCC_VER := 7.3.0
|
GCC_VER := 8.2.0
|
||||||
ifeq ($(GCC_VER), 7.3.0)
|
ifeq ($(GCC_VER), 8.2.0)
|
||||||
|
gcc_ver := gcc-8.2.0
|
||||||
|
binutils_ver := binutils-2.30
|
||||||
|
ccache_ver := ccache-3.5.1a
|
||||||
|
CCACHE_DIRNAME := ccache-3.5.1
|
||||||
|
mpfr_ver := mpfr-3.1.5
|
||||||
|
gmp_ver := gmp-6.1.2
|
||||||
|
mpc_ver := mpc-1.0.3
|
||||||
|
gdb_ver := gdb-8.2.1
|
||||||
|
else ifeq ($(GCC_VER), 7.3.0)
|
||||||
gcc_ver := gcc-7.3.0
|
gcc_ver := gcc-7.3.0
|
||||||
binutils_ver := binutils-2.30
|
binutils_ver := binutils-2.30
|
||||||
ccache_ver := ccache-3.3.6
|
ccache_ver := ccache-3.3.6
|
||||||
@ -174,14 +183,16 @@ download-rpms:
|
|||||||
|
|
||||||
# Generate downloading + unpacking of sources.
|
# Generate downloading + unpacking of sources.
|
||||||
define Download
|
define Download
|
||||||
$(1)_DIR = $(abspath $(SRCDIR)/$(basename $(basename $(notdir $($(1))))))
|
# Allow override
|
||||||
|
$(1)_DIRNAME ?= $(basename $(basename $(notdir $($(1)))))
|
||||||
|
$(1)_DIR = $(abspath $(SRCDIR)/$$($(1)_DIRNAME))
|
||||||
$(1)_CFG = $$($(1)_DIR)/configure
|
$(1)_CFG = $$($(1)_DIR)/configure
|
||||||
$(1)_FILE = $(DOWNLOAD)/$(notdir $($(1)))
|
$(1)_FILE = $(DOWNLOAD)/$(notdir $($(1)))
|
||||||
|
|
||||||
$$($(1)_CFG) : $$($(1)_FILE)
|
$$($(1)_CFG) : $$($(1)_FILE)
|
||||||
mkdir -p $$(SRCDIR)
|
mkdir -p $$(SRCDIR)
|
||||||
tar -C $$(SRCDIR) -xf $$<
|
tar -C $$(SRCDIR) -xf $$<
|
||||||
$$(foreach p,$$(abspath $$(wildcard $$(notdir $$($(1)_DIR)).patch)), \
|
$$(foreach p,$$(abspath $$(wildcard patches/$$(notdir $$($(1)_DIR)).patch)), \
|
||||||
echo PATCHING $$(p) ; \
|
echo PATCHING $$(p) ; \
|
||||||
patch -d $$($(1)_DIR) -p1 -i $$(p) ; \
|
patch -d $$($(1)_DIR) -p1 -i $$(p) ; \
|
||||||
)
|
)
|
||||||
@ -370,7 +381,7 @@ $(BUILDDIR)/$(binutils_ver)/Makefile \
|
|||||||
--disable-nls \
|
--disable-nls \
|
||||||
--program-prefix=$(TARGET)- \
|
--program-prefix=$(TARGET)- \
|
||||||
--enable-multilib \
|
--enable-multilib \
|
||||||
--enable-gold \
|
--enable-gold=default \
|
||||||
--enable-threads \
|
--enable-threads \
|
||||||
--enable-plugins \
|
--enable-plugins \
|
||||||
) > $(@D)/log.config 2>&1
|
) > $(@D)/log.config 2>&1
|
||||||
|
Loading…
x
Reference in New Issue
Block a user