зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1834436 - Upgrade minimum supported GCC version to 8. r=firefox-build-system-reviewers,sergesanspaille
Differential Revision: https://phabricator.services.mozilla.com/D178736
This commit is contained in:
Родитель
a8f0d29cf3
Коммит
e97e5246fd
|
@ -1139,7 +1139,7 @@ host_multiarch_dir = multiarch_dir(host)
|
|||
|
||||
|
||||
def minimum_gcc_version():
|
||||
return Version("7.1.0")
|
||||
return Version("8.1.0")
|
||||
|
||||
|
||||
@template
|
||||
|
|
|
@ -64,11 +64,12 @@ cd ..
|
|||
|
||||
TARGETS="aarch64-linux-gnu arm-linux-gnueabi i686-w64-mingw32"
|
||||
|
||||
gcc_major=8
|
||||
if [ -d $MOZ_FETCHES_DIR/sysroot ]; then
|
||||
# Don't silently use a non-existing directory for C++ headers.
|
||||
[ -d $MOZ_FETCHES_DIR/sysroot/usr/include/c++/7 ] || exit 1
|
||||
[ -d $MOZ_FETCHES_DIR/sysroot/usr/include/c++/$gcc_major ] || exit 1
|
||||
export CFLAGS="-g -O2 --sysroot=$MOZ_FETCHES_DIR/sysroot"
|
||||
export CXXFLAGS="$CFLAGS -isystem $MOZ_FETCHES_DIR/sysroot/usr/include/c++/7 -isystem $MOZ_FETCHES_DIR/sysroot/usr/include/x86_64-linux-gnu/c++/7"
|
||||
export CXXFLAGS="$CFLAGS -isystem $MOZ_FETCHES_DIR/sysroot/usr/include/c++/$gcc_major -isystem $MOZ_FETCHES_DIR/sysroot/usr/include/x86_64-linux-gnu/c++/$gcc_major"
|
||||
fi
|
||||
|
||||
# Build target-specific GNU as ; build them first so that the few documentation
|
||||
|
|
|
@ -43,7 +43,7 @@ list of acceptable features is given below:
|
|||
- Clang
|
||||
-
|
||||
* - Current minimal requirement
|
||||
- 7.1
|
||||
- 8.1
|
||||
- 7.0
|
||||
-
|
||||
* - Feature
|
||||
|
|
|
@ -20,6 +20,8 @@ DEFAULT_C99 = {"__STDC_VERSION__": "199901L"}
|
|||
|
||||
DEFAULT_C11 = {"__STDC_VERSION__": "201112L"}
|
||||
|
||||
DEFAULT_C17 = {"__STDC_VERSION__": "201710L"}
|
||||
|
||||
DEFAULT_CXX_97 = {"__cplusplus": "199711L"}
|
||||
|
||||
DEFAULT_CXX_11 = {"__cplusplus": "201103L"}
|
||||
|
@ -91,9 +93,11 @@ GCC_7 = GCC("7.3.0") + DEFAULT_C11
|
|||
GXX_7 = GXX("7.3.0") + DEFAULT_CXX_14 + SUPPORTS_GNUXX17 + SUPPORTS_CXX17
|
||||
GCC_8 = GCC("8.3.0") + DEFAULT_C11
|
||||
GXX_8 = GXX("8.3.0") + DEFAULT_CXX_14 + SUPPORTS_GNUXX17 + SUPPORTS_CXX17
|
||||
GCC_10 = GCC("10.2.1") + DEFAULT_C17
|
||||
GXX_10 = GXX("10.2.1") + DEFAULT_CXX_14 + SUPPORTS_GNUXX17 + SUPPORTS_CXX17
|
||||
|
||||
DEFAULT_GCC = GCC_7
|
||||
DEFAULT_GXX = GXX_7
|
||||
DEFAULT_GCC = GCC_8
|
||||
DEFAULT_GXX = GXX_8
|
||||
|
||||
GCC_PLATFORM_LITTLE_ENDIAN = {
|
||||
"__ORDER_LITTLE_ENDIAN__": 1234,
|
||||
|
@ -420,7 +424,7 @@ class BaseToolchainTest(BaseConfigureTest):
|
|||
|
||||
|
||||
def old_gcc_message(old_ver):
|
||||
return "Only GCC 7.1 or newer is supported (found version {}).".format(old_ver)
|
||||
return "Only GCC 8.1 or newer is supported (found version {}).".format(old_ver)
|
||||
|
||||
|
||||
class LinuxToolchainTest(BaseToolchainTest):
|
||||
|
@ -437,6 +441,8 @@ class LinuxToolchainTest(BaseToolchainTest):
|
|||
"/usr/bin/g++-7": GXX_7 + GCC_PLATFORM_X86_64_LINUX,
|
||||
"/usr/bin/gcc-8": GCC_8 + GCC_PLATFORM_X86_64_LINUX,
|
||||
"/usr/bin/g++-8": GXX_8 + GCC_PLATFORM_X86_64_LINUX,
|
||||
"/usr/bin/gcc-10": GCC_10 + GCC_PLATFORM_X86_64_LINUX,
|
||||
"/usr/bin/g++-10": GXX_10 + GCC_PLATFORM_X86_64_LINUX,
|
||||
"/usr/bin/clang": DEFAULT_CLANG + CLANG_PLATFORM_X86_64_LINUX,
|
||||
"/usr/bin/clang++": DEFAULT_CLANGXX + CLANG_PLATFORM_X86_64_LINUX,
|
||||
"/usr/bin/clang-7.0": CLANG_7_0 + CLANG_PLATFORM_X86_64_LINUX,
|
||||
|
@ -455,20 +461,8 @@ class LinuxToolchainTest(BaseToolchainTest):
|
|||
GXX_5_RESULT = GCC_5_RESULT
|
||||
GCC_6_RESULT = old_gcc_message("6.4.0")
|
||||
GXX_6_RESULT = GCC_6_RESULT
|
||||
GCC_7_RESULT = CompilerResult(
|
||||
flags=["-std=gnu99"],
|
||||
version="7.3.0",
|
||||
type="gcc",
|
||||
compiler="/usr/bin/gcc-7",
|
||||
language="C",
|
||||
)
|
||||
GXX_7_RESULT = CompilerResult(
|
||||
flags=["-std=gnu++17"],
|
||||
version="7.3.0",
|
||||
type="gcc",
|
||||
compiler="/usr/bin/g++-7",
|
||||
language="C++",
|
||||
)
|
||||
GCC_7_RESULT = old_gcc_message("7.3.0")
|
||||
GXX_7_RESULT = GCC_7_RESULT
|
||||
GCC_8_RESULT = CompilerResult(
|
||||
flags=["-std=gnu99"],
|
||||
version="8.3.0",
|
||||
|
@ -483,8 +477,8 @@ class LinuxToolchainTest(BaseToolchainTest):
|
|||
compiler="/usr/bin/g++-8",
|
||||
language="C++",
|
||||
)
|
||||
DEFAULT_GCC_RESULT = GCC_7_RESULT + {"compiler": "/usr/bin/gcc"}
|
||||
DEFAULT_GXX_RESULT = GXX_7_RESULT + {"compiler": "/usr/bin/g++"}
|
||||
DEFAULT_GCC_RESULT = GCC_8_RESULT + {"compiler": "/usr/bin/gcc"}
|
||||
DEFAULT_GXX_RESULT = GXX_8_RESULT + {"compiler": "/usr/bin/g++"}
|
||||
|
||||
CLANG_3_3_RESULT = (
|
||||
"Only clang/llvm 7.0 or newer is supported (found version 3.3.0)."
|
||||
|
@ -573,12 +567,12 @@ class LinuxToolchainTest(BaseToolchainTest):
|
|||
{
|
||||
"c_compiler": self.DEFAULT_GCC_RESULT,
|
||||
"cxx_compiler": (
|
||||
"The target C compiler is version 7.3.0, while the target "
|
||||
"C++ compiler is version 8.3.0. Need to use the same compiler "
|
||||
"The target C compiler is version 8.3.0, while the target "
|
||||
"C++ compiler is version 10.2.1. Need to use the same compiler "
|
||||
"version."
|
||||
),
|
||||
},
|
||||
environ={"CC": "gcc", "CXX": "g++-8"},
|
||||
environ={"CC": "gcc", "CXX": "g++-10"},
|
||||
)
|
||||
|
||||
self.do_toolchain_test(
|
||||
|
@ -588,12 +582,12 @@ class LinuxToolchainTest(BaseToolchainTest):
|
|||
"cxx_compiler": self.DEFAULT_GXX_RESULT,
|
||||
"host_c_compiler": self.DEFAULT_GCC_RESULT,
|
||||
"host_cxx_compiler": (
|
||||
"The host C compiler is version 7.3.0, while the host "
|
||||
"C++ compiler is version 8.3.0. Need to use the same compiler "
|
||||
"The host C compiler is version 8.3.0, while the host "
|
||||
"C++ compiler is version 10.2.1. Need to use the same compiler "
|
||||
"version."
|
||||
),
|
||||
},
|
||||
environ={"CC": "gcc", "HOST_CXX": "g++-8"},
|
||||
environ={"CC": "gcc", "HOST_CXX": "g++-10"},
|
||||
)
|
||||
|
||||
def test_mismatched_compiler(self):
|
||||
|
@ -849,8 +843,8 @@ class OSXToolchainTest(BaseToolchainTest):
|
|||
PATHS = {
|
||||
"/usr/bin/gcc-5": GCC_5 + GCC_PLATFORM_X86_64_OSX,
|
||||
"/usr/bin/g++-5": GXX_5 + GCC_PLATFORM_X86_64_OSX,
|
||||
"/usr/bin/gcc-7": GCC_7 + GCC_PLATFORM_X86_64_OSX,
|
||||
"/usr/bin/g++-7": GXX_7 + GCC_PLATFORM_X86_64_OSX,
|
||||
"/usr/bin/gcc-8": GCC_8 + GCC_PLATFORM_X86_64_OSX,
|
||||
"/usr/bin/g++-8": GXX_8 + GCC_PLATFORM_X86_64_OSX,
|
||||
"/usr/bin/clang": XCODE_CLANG_7_0 + CLANG_PLATFORM_X86_64_OSX,
|
||||
"/usr/bin/clang++": XCODE_CLANGXX_7_0 + CLANG_PLATFORM_X86_64_OSX,
|
||||
"/usr/bin/clang-4.0": XCODE_CLANG_4_0 + CLANG_PLATFORM_X86_64_OSX,
|
||||
|
@ -887,8 +881,8 @@ class OSXToolchainTest(BaseToolchainTest):
|
|||
)
|
||||
GCC_5_RESULT = LinuxToolchainTest.GCC_5_RESULT
|
||||
GXX_5_RESULT = LinuxToolchainTest.GXX_5_RESULT
|
||||
GCC_7_RESULT = LinuxToolchainTest.GCC_7_RESULT
|
||||
GXX_7_RESULT = LinuxToolchainTest.GXX_7_RESULT
|
||||
GCC_8_RESULT = LinuxToolchainTest.GCC_8_RESULT
|
||||
GXX_8_RESULT = LinuxToolchainTest.GXX_8_RESULT
|
||||
SYSROOT_FLAGS = {
|
||||
"flags": PrependFlags(
|
||||
[
|
||||
|
@ -944,10 +938,10 @@ class OSXToolchainTest(BaseToolchainTest):
|
|||
self.do_toolchain_test(
|
||||
self.PATHS,
|
||||
{
|
||||
"c_compiler": self.GCC_7_RESULT + self.SYSROOT_FLAGS,
|
||||
"cxx_compiler": self.GXX_7_RESULT + self.SYSROOT_FLAGS,
|
||||
"c_compiler": self.GCC_8_RESULT + self.SYSROOT_FLAGS,
|
||||
"cxx_compiler": self.GXX_8_RESULT + self.SYSROOT_FLAGS,
|
||||
},
|
||||
environ={"CC": "gcc-7", "CXX": "g++-7"},
|
||||
environ={"CC": "gcc-8", "CXX": "g++-8"},
|
||||
)
|
||||
|
||||
def test_forced_unsupported_gcc(self):
|
||||
|
@ -1297,12 +1291,8 @@ class LinuxCrossCompileToolchainTest(BaseToolchainTest):
|
|||
ARM_DEFAULT_GXX_RESULT = LinuxToolchainTest.DEFAULT_GXX_RESULT + {
|
||||
"compiler": "/usr/bin/arm-linux-gnu-g++"
|
||||
}
|
||||
ARM_GCC_7_RESULT = LinuxToolchainTest.GCC_7_RESULT + {
|
||||
"compiler": "/usr/bin/arm-linux-gnu-gcc-7"
|
||||
}
|
||||
ARM_GXX_7_RESULT = LinuxToolchainTest.GXX_7_RESULT + {
|
||||
"compiler": "/usr/bin/arm-linux-gnu-g++-7"
|
||||
}
|
||||
ARM_GCC_7_RESULT = LinuxToolchainTest.GCC_7_RESULT
|
||||
ARM_GXX_7_RESULT = LinuxToolchainTest.GXX_7_RESULT
|
||||
DEFAULT_CLANG_RESULT = LinuxToolchainTest.DEFAULT_CLANG_RESULT
|
||||
DEFAULT_CLANGXX_RESULT = LinuxToolchainTest.DEFAULT_CLANGXX_RESULT
|
||||
DEFAULT_GCC_RESULT = LinuxToolchainTest.DEFAULT_GCC_RESULT
|
||||
|
|
|
@ -37,7 +37,7 @@ linux64-base-toolchains/opt:
|
|||
toolchain:
|
||||
- linux64-binutils-2.31.1
|
||||
- linux64-clang-base
|
||||
- linux64-gcc-7
|
||||
- linux64-gcc-base
|
||||
- linux64-rust-base
|
||||
- linux64-cbindgen
|
||||
- linux64-dump_syms
|
||||
|
@ -78,7 +78,7 @@ linux64-base-toolchains/debug:
|
|||
toolchain:
|
||||
- linux64-binutils-2.31.1
|
||||
- linux64-clang-base
|
||||
- linux64-gcc-7
|
||||
- linux64-gcc-base
|
||||
- linux64-rust-base
|
||||
- linux64-cbindgen
|
||||
- linux64-dump_syms
|
||||
|
|
|
@ -30,20 +30,6 @@ binutils-2.36.1:
|
|||
strip-components: 1
|
||||
add-prefix: binutils-source/
|
||||
|
||||
gcc-7.5.0:
|
||||
description: GCC 7.5.0 source code
|
||||
fetch:
|
||||
type: static-url
|
||||
url: https://ftp.gnu.org/gnu/gcc/gcc-7.5.0/gcc-7.5.0.tar.xz
|
||||
sha256: b81946e7f01f90528a1f7352ab08cc602b9ccc05d4e44da4bd501c5a189ee661
|
||||
size: 62783088
|
||||
gpg-signature:
|
||||
sig-url: "{url}.sig"
|
||||
key-path: build/unix/build-gcc/7F74F97C103468EE5D750B583AB00996FC26A641.key
|
||||
artifact-name: gcc-source.tar.zst
|
||||
strip-components: 1
|
||||
add-prefix: gcc-source/
|
||||
|
||||
gcc-8.5.0:
|
||||
description: GCC 8.5.0 source code
|
||||
fetch:
|
||||
|
|
|
@ -56,10 +56,10 @@ deb11-python-zstandard:
|
|||
pre-build-command: debchange -v 0.19.0-1.deb11moz --distribution bullseye "Mozilla backport for buster"
|
||||
name: python-zstandard
|
||||
|
||||
deb8-gcc-7:
|
||||
description: "gcc 7 for Debian jessie"
|
||||
deb8-gcc-8:
|
||||
description: "gcc 8 for Debian jessie"
|
||||
treeherder:
|
||||
symbol: Deb8(gcc-7)
|
||||
symbol: Deb8(gcc-8)
|
||||
worker:
|
||||
max-run-time: 3600
|
||||
env:
|
||||
|
@ -70,8 +70,8 @@ deb8-gcc-7:
|
|||
using: debian-package
|
||||
dist: jessie
|
||||
dsc:
|
||||
url: http://snapshot.debian.org/archive/debian/20200323T214010Z/pool/main/g/gcc-7/gcc-7_7.5.0-6.dsc
|
||||
sha256: 94f2c35ddcf84a62ae152f2f290be2bba1263157b3970776d0c8b43dec4e6fd5
|
||||
url: http://snapshot.debian.org/archive/debian/20210202T150504Z/pool/main/g/gcc-8/gcc-8_8.4.0-7.dsc
|
||||
sha256: b93f13bc67f5a8f16e837fbb543d00d3475d5c95777a1b0b5a448fa2310a98c5
|
||||
# autoconf2.64 and quilt necessary to run the `debian/rules control` command to
|
||||
# generate an updated debian/control.
|
||||
# uncommenting `with_common_libs` makes the packaging create the libstdc++6 package.
|
||||
|
@ -90,10 +90,10 @@ deb8-gcc-7:
|
|||
echo OFFLOAD_BUILD_DEP= >> debian/rules.conf &&
|
||||
debian/rules control NT=
|
||||
|
||||
deb8-32-gcc-7:
|
||||
description: "gcc 7 for Debian jessie"
|
||||
deb8-32-gcc-8:
|
||||
description: "gcc 8 for Debian jessie"
|
||||
treeherder:
|
||||
symbol: Deb8-32(gcc-7)
|
||||
symbol: Deb8-32(gcc-8)
|
||||
worker:
|
||||
max-run-time: 3600
|
||||
env:
|
||||
|
@ -104,8 +104,8 @@ deb8-32-gcc-7:
|
|||
using: debian-package
|
||||
dist: jessie
|
||||
dsc:
|
||||
url: http://snapshot.debian.org/archive/debian/20200323T214010Z/pool/main/g/gcc-7/gcc-7_7.5.0-6.dsc
|
||||
sha256: 94f2c35ddcf84a62ae152f2f290be2bba1263157b3970776d0c8b43dec4e6fd5
|
||||
url: http://snapshot.debian.org/archive/debian/20210202T150504Z/pool/main/g/gcc-8/gcc-8_8.4.0-7.dsc
|
||||
sha256: b93f13bc67f5a8f16e837fbb543d00d3475d5c95777a1b0b5a448fa2310a98c5
|
||||
pre-build-command: >-
|
||||
apt install autoconf2.64 quilt &&
|
||||
sed -i 's/#with_common_libs/with_common_libs/' debian/rules.defs &&
|
||||
|
|
|
@ -14,27 +14,15 @@ job-defaults:
|
|||
toolchain:
|
||||
- linux64-toolchain-sysroot
|
||||
|
||||
linux64-gcc-7:
|
||||
description: "GCC 7 toolchain build"
|
||||
treeherder:
|
||||
symbol: TL(gcc7)
|
||||
run:
|
||||
script: build-gcc-linux.sh
|
||||
toolchain-alias: linux64-gcc
|
||||
fetches:
|
||||
fetch:
|
||||
- gcc-7.5.0
|
||||
- gmp-6.1.0
|
||||
- isl-0.16.1
|
||||
- mpc-1.0.3
|
||||
- mpfr-3.1.4
|
||||
|
||||
linux64-gcc-8:
|
||||
description: "GCC 8 toolchain build"
|
||||
treeherder:
|
||||
symbol: TL(gcc8)
|
||||
run:
|
||||
script: build-gcc-linux.sh
|
||||
toolchain-alias:
|
||||
- linux64-gcc
|
||||
- linux64-gcc-base
|
||||
fetches:
|
||||
fetch:
|
||||
- gcc-8.5.0
|
||||
|
|
|
@ -21,7 +21,7 @@ linux64-binutils-2.31.1:
|
|||
- binutils-2.31.1
|
||||
toolchain:
|
||||
# C++ code in gold doesn't compile with recent versions of GCC.
|
||||
- linux64-gcc-7
|
||||
- linux64-gcc-8
|
||||
- linux64-toolchain-sysroot
|
||||
|
||||
linux64-binutils:
|
||||
|
|
|
@ -17,11 +17,11 @@ sysroot-i686-linux-gnu:
|
|||
local-toolchain: true
|
||||
worker:
|
||||
env:
|
||||
PACKAGES_TASKS: {task-reference: '<gcc-7>'}
|
||||
PACKAGES_TASKS: {task-reference: '<gcc-8>'}
|
||||
treeherder:
|
||||
symbol: TL(sysroot32)
|
||||
dependencies:
|
||||
gcc-7: packages-deb8-32-gcc-7
|
||||
gcc-8: packages-deb8-32-gcc-8
|
||||
run:
|
||||
toolchain-artifact: public/build/sysroot-i686-linux-gnu.tar.zst
|
||||
arguments:
|
||||
|
@ -33,11 +33,11 @@ sysroot-x86_64-linux-gnu:
|
|||
local-toolchain: true
|
||||
worker:
|
||||
env:
|
||||
PACKAGES_TASKS: {task-reference: '<gcc-7>'}
|
||||
PACKAGES_TASKS: {task-reference: '<gcc-8>'}
|
||||
treeherder:
|
||||
symbol: TL(sysroot64)
|
||||
dependencies:
|
||||
gcc-7: packages-deb8-gcc-7
|
||||
gcc-8: packages-deb8-gcc-8
|
||||
run:
|
||||
toolchain-artifact: public/build/sysroot-x86_64-linux-gnu.tar.zst
|
||||
arguments:
|
||||
|
@ -49,11 +49,11 @@ sysroot-x86_64-linux-gnu-x11:
|
|||
local-toolchain: true
|
||||
worker:
|
||||
env:
|
||||
PACKAGES_TASKS: {task-reference: '<gcc-7> <gtk3>'}
|
||||
PACKAGES_TASKS: {task-reference: '<gcc-8> <gtk3>'}
|
||||
treeherder:
|
||||
symbol: TL(sysroot64-x11)
|
||||
dependencies:
|
||||
gcc-7: packages-deb8-gcc-7
|
||||
gcc-8: packages-deb8-gcc-8
|
||||
gtk3: packages-deb8-gtk3
|
||||
run:
|
||||
toolchain-artifact: public/build/sysroot-x86_64-linux-gnu.tar.zst
|
||||
|
@ -117,11 +117,11 @@ linux32-toolchain-sysroot:
|
|||
description: "Sysroot for linux32 toolchain builds"
|
||||
worker:
|
||||
env:
|
||||
PACKAGES_TASKS: {task-reference: '<gcc-7>'}
|
||||
PACKAGES_TASKS: {task-reference: '<gcc-8>'}
|
||||
treeherder:
|
||||
symbol: TL(sysroot32-toolchain)
|
||||
dependencies:
|
||||
gcc-7: packages-deb8-32-gcc-7
|
||||
gcc-8: packages-deb8-32-gcc-8
|
||||
run:
|
||||
arguments:
|
||||
- i386
|
||||
|
@ -139,18 +139,18 @@ linux64-toolchain-sysroot:
|
|||
description: "Sysroot for linux64 toolchain builds"
|
||||
worker:
|
||||
env:
|
||||
PACKAGES_TASKS: {task-reference: '<gcc-7>'}
|
||||
PACKAGES_TASKS: {task-reference: '<gcc-8>'}
|
||||
treeherder:
|
||||
symbol: TL(sysroot64-toolchain)
|
||||
dependencies:
|
||||
gcc-7: packages-deb8-gcc-7
|
||||
gcc-8: packages-deb8-gcc-8
|
||||
run:
|
||||
arguments:
|
||||
- amd64
|
||||
# For clang
|
||||
- binutils-dev
|
||||
- gcc-multilib
|
||||
- lib32stdc++-7-dev
|
||||
- lib32stdc++-8-dev
|
||||
- libxml2-dev
|
||||
# For minidump-stackwalk
|
||||
- libcurl4-openssl-dev
|
||||
|
|
|
@ -20,7 +20,7 @@ case "$arch" in
|
|||
i386|amd64)
|
||||
dist=jessie
|
||||
if [ -n "$PACKAGES_TASKS" ]; then
|
||||
gcc_version=7
|
||||
gcc_version=8
|
||||
else
|
||||
gcc_version=4.9
|
||||
fi
|
||||
|
|
Загрузка…
Ссылка в новой задаче