Bug 1851754 - Upgrade minimum supported Clang version to 8. r=firefox-build-system-reviewers,ahochheiden

Differential Revision: https://phabricator.services.mozilla.com/D188898
This commit is contained in:
Mike Hommey 2023-09-22 02:34:51 +00:00
parent a6de9f8d22
commit 53765a27b9
8 changed files with 97 additions and 57 deletions

View file

@ -1,5 +0,0 @@
{
"cc": "/usr/bin/gcc",
"cxx": "/usr/bin/g++",
"as": "/usr/bin/gcc"
}

View file

@ -0,0 +1,8 @@
{
"cc": "/usr/bin/gcc",
"cxx": "/usr/bin/g++",
"as": "/usr/bin/gcc",
"patches": [
"llvmorg-10-init-136-gb288d90b39f4.patch"
]
}

View file

@ -0,0 +1,37 @@
From 79e6696d121b978b4482ce74119c6bbc7a9ce30f Mon Sep 17 00:00:00 2001
From: Than McIntosh <thanm@google.com>
Date: Fri, 19 Jul 2019 13:13:54 +0000
Subject: [PATCH] [NFC] include cstdint/string prior to using uint8_t/string
Summary: include proper header prior to use of uint8_t typedef
and std::string.
Subscribers: llvm-commits
Reviewers: cherry
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D64937
llvm-svn: 366572
---
llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h b/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h
index 9e3478e9fd29..efd55339418b 100644
--- a/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h
+++ b/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h
@@ -4,6 +4,8 @@
#include "llvm/Demangle/Compiler.h"
#include "llvm/Demangle/StringView.h"
#include <array>
+#include <cstdint>
+#include <string>
class OutputStream;
--
2.41.0.3.g1cb8d410ac

View file

@ -1414,9 +1414,9 @@ def compiler(
# If you want to bump the version check here ensure the version # If you want to bump the version check here ensure the version
# is known for Xcode in get_compiler_info. # is known for Xcode in get_compiler_info.
if info.type == "clang" and info.version < "7.0": if info.type == "clang" and info.version < "8.0":
raise FatalCheckError( raise FatalCheckError(
"Only clang/llvm 7.0 or newer is supported (found version %s)." "Only clang/llvm 8.0 or newer is supported (found version %s)."
% info.version % info.version
) )

View file

@ -44,7 +44,7 @@ list of acceptable features is given below:
- -
* - Current minimal requirement * - Current minimal requirement
- 8.1 - 8.1
- 7.0 - 8.0
- -
* - Feature * - Feature
- GCC - GCC

View file

@ -173,8 +173,8 @@ CLANG_3_3 = CLANG("3.3.0") + DEFAULT_C99
CLANGXX_3_3 = CLANGXX("3.3.0") CLANGXX_3_3 = CLANGXX("3.3.0")
CLANG_4_0 = CLANG("4.0.2") + DEFAULT_C11 CLANG_4_0 = CLANG("4.0.2") + DEFAULT_C11
CLANGXX_4_0 = CLANGXX("4.0.2") + SUPPORTS_GNUXX1Z CLANGXX_4_0 = CLANGXX("4.0.2") + SUPPORTS_GNUXX1Z
CLANG_7_0 = CLANG("7.0.0") + DEFAULT_C11 CLANG_8_0 = CLANG("8.0.0") + DEFAULT_C11
CLANGXX_7_0 = CLANGXX("7.0.0") + DEFAULT_CXX_14 + SUPPORTS_GNUXX17 CLANGXX_8_0 = CLANGXX("8.0.0") + DEFAULT_CXX_14 + SUPPORTS_GNUXX17
XCODE_CLANG_3_3 = ( XCODE_CLANG_3_3 = (
CLANG("5.0") CLANG("5.0")
+ DEFAULT_C99 + DEFAULT_C99
@ -188,12 +188,12 @@ XCODE_CLANG_4_0 = CLANG("9.0.0") + DEFAULT_C11 + {"__apple_build_version__": "1"
XCODE_CLANGXX_4_0 = ( XCODE_CLANGXX_4_0 = (
CLANGXX("9.0.0") + SUPPORTS_GNUXX1Z + {"__apple_build_version__": "1"} CLANGXX("9.0.0") + SUPPORTS_GNUXX1Z + {"__apple_build_version__": "1"}
) )
XCODE_CLANG_7_0 = CLANG("10.0.1") + DEFAULT_C11 + {"__apple_build_version__": "1"} XCODE_CLANG_8_0 = CLANG("11.0.1") + DEFAULT_C11 + {"__apple_build_version__": "1"}
XCODE_CLANGXX_7_0 = ( XCODE_CLANGXX_8_0 = (
CLANGXX("10.0.1") + SUPPORTS_GNUXX17 + {"__apple_build_version__": "1"} CLANGXX("11.0.1") + SUPPORTS_GNUXX17 + {"__apple_build_version__": "1"}
) )
DEFAULT_CLANG = CLANG_7_0 DEFAULT_CLANG = CLANG_8_0
DEFAULT_CLANGXX = CLANGXX_7_0 DEFAULT_CLANGXX = CLANGXX_8_0
def CLANG_PLATFORM(gcc_platform): def CLANG_PLATFORM(gcc_platform):
@ -445,8 +445,8 @@ class LinuxToolchainTest(BaseToolchainTest):
"/usr/bin/g++-10": GXX_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_CLANG + CLANG_PLATFORM_X86_64_LINUX,
"/usr/bin/clang++": DEFAULT_CLANGXX + 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, "/usr/bin/clang-8.0": CLANG_8_0 + CLANG_PLATFORM_X86_64_LINUX,
"/usr/bin/clang++-7.0": CLANGXX_7_0 + CLANG_PLATFORM_X86_64_LINUX, "/usr/bin/clang++-8.0": CLANGXX_8_0 + CLANG_PLATFORM_X86_64_LINUX,
"/usr/bin/clang-4.0": CLANG_4_0 + CLANG_PLATFORM_X86_64_LINUX, "/usr/bin/clang-4.0": CLANG_4_0 + CLANG_PLATFORM_X86_64_LINUX,
"/usr/bin/clang++-4.0": CLANGXX_4_0 + CLANG_PLATFORM_X86_64_LINUX, "/usr/bin/clang++-4.0": CLANGXX_4_0 + CLANG_PLATFORM_X86_64_LINUX,
"/usr/bin/clang-3.3": CLANG_3_3 + CLANG_PLATFORM_X86_64_LINUX, "/usr/bin/clang-3.3": CLANG_3_3 + CLANG_PLATFORM_X86_64_LINUX,
@ -481,33 +481,33 @@ class LinuxToolchainTest(BaseToolchainTest):
DEFAULT_GXX_RESULT = GXX_8_RESULT + {"compiler": "/usr/bin/g++"} DEFAULT_GXX_RESULT = GXX_8_RESULT + {"compiler": "/usr/bin/g++"}
CLANG_3_3_RESULT = ( CLANG_3_3_RESULT = (
"Only clang/llvm 7.0 or newer is supported (found version 3.3.0)." "Only clang/llvm 8.0 or newer is supported (found version 3.3.0)."
) )
CLANGXX_3_3_RESULT = ( CLANGXX_3_3_RESULT = (
"Only clang/llvm 7.0 or newer is supported (found version 3.3.0)." "Only clang/llvm 8.0 or newer is supported (found version 3.3.0)."
) )
CLANG_4_0_RESULT = ( CLANG_4_0_RESULT = (
"Only clang/llvm 7.0 or newer is supported (found version 4.0.2)." "Only clang/llvm 8.0 or newer is supported (found version 4.0.2)."
) )
CLANGXX_4_0_RESULT = ( CLANGXX_4_0_RESULT = (
"Only clang/llvm 7.0 or newer is supported (found version 4.0.2)." "Only clang/llvm 8.0 or newer is supported (found version 4.0.2)."
) )
CLANG_7_0_RESULT = CompilerResult( CLANG_8_0_RESULT = CompilerResult(
flags=["-std=gnu99"], flags=["-std=gnu99"],
version="7.0.0", version="8.0.0",
type="clang", type="clang",
compiler="/usr/bin/clang-7.0", compiler="/usr/bin/clang-8.0",
language="C", language="C",
) )
CLANGXX_7_0_RESULT = CompilerResult( CLANGXX_8_0_RESULT = CompilerResult(
flags=["-std=gnu++17"], flags=["-std=gnu++17"],
version="7.0.0", version="8.0.0",
type="clang", type="clang",
compiler="/usr/bin/clang++-7.0", compiler="/usr/bin/clang++-8.0",
language="C++", language="C++",
) )
DEFAULT_CLANG_RESULT = CLANG_7_0_RESULT + {"compiler": "/usr/bin/clang"} DEFAULT_CLANG_RESULT = CLANG_8_0_RESULT + {"compiler": "/usr/bin/clang"}
DEFAULT_CLANGXX_RESULT = CLANGXX_7_0_RESULT + {"compiler": "/usr/bin/clang++"} DEFAULT_CLANGXX_RESULT = CLANGXX_8_0_RESULT + {"compiler": "/usr/bin/clang++"}
def test_default(self): def test_default(self):
# We'll try clang and gcc, and find clang first. # We'll try clang and gcc, and find clang first.
@ -657,10 +657,10 @@ class LinuxToolchainTest(BaseToolchainTest):
self.do_toolchain_test( self.do_toolchain_test(
self.PATHS, self.PATHS,
{ {
"c_compiler": self.CLANG_7_0_RESULT, "c_compiler": self.CLANG_8_0_RESULT,
"cxx_compiler": self.CLANGXX_7_0_RESULT, "cxx_compiler": self.CLANGXX_8_0_RESULT,
}, },
environ={"CC": "clang-7.0"}, environ={"CC": "clang-8.0"},
) )
def test_unsupported_clang(self): def test_unsupported_clang(self):
@ -845,8 +845,8 @@ class OSXToolchainTest(BaseToolchainTest):
"/usr/bin/g++-5": GXX_5 + GCC_PLATFORM_X86_64_OSX, "/usr/bin/g++-5": GXX_5 + GCC_PLATFORM_X86_64_OSX,
"/usr/bin/gcc-8": GCC_8 + 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/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_CLANG_8_0 + CLANG_PLATFORM_X86_64_OSX,
"/usr/bin/clang++": XCODE_CLANGXX_7_0 + CLANG_PLATFORM_X86_64_OSX, "/usr/bin/clang++": XCODE_CLANGXX_8_0 + CLANG_PLATFORM_X86_64_OSX,
"/usr/bin/clang-4.0": XCODE_CLANG_4_0 + CLANG_PLATFORM_X86_64_OSX, "/usr/bin/clang-4.0": XCODE_CLANG_4_0 + CLANG_PLATFORM_X86_64_OSX,
"/usr/bin/clang++-4.0": XCODE_CLANGXX_4_0 + CLANG_PLATFORM_X86_64_OSX, "/usr/bin/clang++-4.0": XCODE_CLANGXX_4_0 + CLANG_PLATFORM_X86_64_OSX,
"/usr/bin/clang-3.3": XCODE_CLANG_3_3 + CLANG_PLATFORM_X86_64_OSX, "/usr/bin/clang-3.3": XCODE_CLANG_3_3 + CLANG_PLATFORM_X86_64_OSX,
@ -854,27 +854,27 @@ class OSXToolchainTest(BaseToolchainTest):
"/usr/bin/xcrun": xcrun, "/usr/bin/xcrun": xcrun,
} }
CLANG_3_3_RESULT = ( CLANG_3_3_RESULT = (
"Only clang/llvm 7.0 or newer is supported (found version 4.0.0.or.less)." "Only clang/llvm 8.0 or newer is supported (found version 4.0.0.or.less)."
) )
CLANGXX_3_3_RESULT = ( CLANGXX_3_3_RESULT = (
"Only clang/llvm 7.0 or newer is supported (found version 4.0.0.or.less)." "Only clang/llvm 8.0 or newer is supported (found version 4.0.0.or.less)."
) )
CLANG_4_0_RESULT = ( CLANG_4_0_RESULT = (
"Only clang/llvm 7.0 or newer is supported (found version 4.0.0.or.less)." "Only clang/llvm 8.0 or newer is supported (found version 4.0.0.or.less)."
) )
CLANGXX_4_0_RESULT = ( CLANGXX_4_0_RESULT = (
"Only clang/llvm 7.0 or newer is supported (found version 4.0.0.or.less)." "Only clang/llvm 8.0 or newer is supported (found version 4.0.0.or.less)."
) )
DEFAULT_CLANG_RESULT = CompilerResult( DEFAULT_CLANG_RESULT = CompilerResult(
flags=["-std=gnu99"], flags=["-std=gnu99"],
version="7.0.0", version="8.0.0",
type="clang", type="clang",
compiler="/usr/bin/clang", compiler="/usr/bin/clang",
language="C", language="C",
) )
DEFAULT_CLANGXX_RESULT = CompilerResult( DEFAULT_CLANGXX_RESULT = CompilerResult(
flags=["-stdlib=libc++", "-std=gnu++17"], flags=["-stdlib=libc++", "-std=gnu++17"],
version="7.0.0", version="8.0.0",
type="clang", type="clang",
compiler="/usr/bin/clang++", compiler="/usr/bin/clang++",
language="C++", language="C++",
@ -973,8 +973,8 @@ class MingwToolchainTest(BaseToolchainTest):
"/usr/bin/g++-7": GXX_7 + GCC_PLATFORM_X86_WIN + MINGW32, "/usr/bin/g++-7": GXX_7 + GCC_PLATFORM_X86_WIN + MINGW32,
"/usr/bin/clang": DEFAULT_CLANG + CLANG_PLATFORM_X86_WIN, "/usr/bin/clang": DEFAULT_CLANG + CLANG_PLATFORM_X86_WIN,
"/usr/bin/clang++": DEFAULT_CLANGXX + CLANG_PLATFORM_X86_WIN, "/usr/bin/clang++": DEFAULT_CLANGXX + CLANG_PLATFORM_X86_WIN,
"/usr/bin/clang-7.0": CLANG_7_0 + CLANG_PLATFORM_X86_WIN, "/usr/bin/clang-8.0": CLANG_8_0 + CLANG_PLATFORM_X86_WIN,
"/usr/bin/clang++-7.0": CLANGXX_7_0 + CLANG_PLATFORM_X86_WIN, "/usr/bin/clang++-8.0": CLANGXX_8_0 + CLANG_PLATFORM_X86_WIN,
"/usr/bin/clang-4.0": CLANG_4_0 + CLANG_PLATFORM_X86_WIN, "/usr/bin/clang-4.0": CLANG_4_0 + CLANG_PLATFORM_X86_WIN,
"/usr/bin/clang++-4.0": CLANGXX_4_0 + CLANG_PLATFORM_X86_WIN, "/usr/bin/clang++-4.0": CLANGXX_4_0 + CLANG_PLATFORM_X86_WIN,
"/usr/bin/clang-3.3": CLANG_3_3 + CLANG_PLATFORM_X86_WIN, "/usr/bin/clang-3.3": CLANG_3_3 + CLANG_PLATFORM_X86_WIN,
@ -1111,8 +1111,8 @@ class Mingw64ToolchainTest(MingwToolchainTest):
"/usr/bin/g++-7": GXX_7 + GCC_PLATFORM_X86_64_WIN + MINGW32, "/usr/bin/g++-7": GXX_7 + GCC_PLATFORM_X86_64_WIN + MINGW32,
"/usr/bin/clang": DEFAULT_CLANG + CLANG_PLATFORM_X86_64_WIN, "/usr/bin/clang": DEFAULT_CLANG + CLANG_PLATFORM_X86_64_WIN,
"/usr/bin/clang++": DEFAULT_CLANGXX + CLANG_PLATFORM_X86_64_WIN, "/usr/bin/clang++": DEFAULT_CLANGXX + CLANG_PLATFORM_X86_64_WIN,
"/usr/bin/clang-7.0": CLANG_7_0 + CLANG_PLATFORM_X86_64_WIN, "/usr/bin/clang-8.0": CLANG_8_0 + CLANG_PLATFORM_X86_64_WIN,
"/usr/bin/clang++-7.0": CLANGXX_7_0 + CLANG_PLATFORM_X86_64_WIN, "/usr/bin/clang++-8.0": CLANGXX_8_0 + CLANG_PLATFORM_X86_64_WIN,
"/usr/bin/clang-4.0": CLANG_4_0 + CLANG_PLATFORM_X86_64_WIN, "/usr/bin/clang-4.0": CLANG_4_0 + CLANG_PLATFORM_X86_64_WIN,
"/usr/bin/clang++-4.0": CLANGXX_4_0 + CLANG_PLATFORM_X86_64_WIN, "/usr/bin/clang++-4.0": CLANGXX_4_0 + CLANG_PLATFORM_X86_64_WIN,
"/usr/bin/clang-3.3": CLANG_3_3 + CLANG_PLATFORM_X86_64_WIN, "/usr/bin/clang-3.3": CLANG_3_3 + CLANG_PLATFORM_X86_64_WIN,
@ -1561,20 +1561,20 @@ class OSXCrossToolchainTest(BaseToolchainTest):
PATHS = dict(LinuxToolchainTest.PATHS) PATHS = dict(LinuxToolchainTest.PATHS)
PATHS.update( PATHS.update(
{ {
"/usr/bin/clang": CLANG_7_0 + CLANG_PLATFORM_X86_64_LINUX, "/usr/bin/clang": CLANG_8_0 + CLANG_PLATFORM_X86_64_LINUX,
"/usr/bin/clang++": CLANGXX_7_0 + CLANG_PLATFORM_X86_64_LINUX, "/usr/bin/clang++": CLANGXX_8_0 + CLANG_PLATFORM_X86_64_LINUX,
} }
) )
DEFAULT_CLANG_RESULT = CompilerResult( DEFAULT_CLANG_RESULT = CompilerResult(
flags=["-std=gnu99"], flags=["-std=gnu99"],
version="7.0.0", version="8.0.0",
type="clang", type="clang",
compiler="/usr/bin/clang", compiler="/usr/bin/clang",
language="C", language="C",
) )
DEFAULT_CLANGXX_RESULT = CompilerResult( DEFAULT_CLANGXX_RESULT = CompilerResult(
flags=["-std=gnu++17"], flags=["-std=gnu++17"],
version="7.0.0", version="8.0.0",
type="clang", type="clang",
compiler="/usr/bin/clang++", compiler="/usr/bin/clang++",
language="C++", language="C++",

View file

@ -340,12 +340,12 @@ android-ndk-rs:
repo: https://github.com/jamienicol/android-ndk-rs repo: https://github.com/jamienicol/android-ndk-rs
revision: 595f4e14a78371e3ab59b12f7bd8131f2ec5b4a1 revision: 595f4e14a78371e3ab59b12f7bd8131f2ec5b4a1
clang-7.0: clang-8.0:
description: clang 7.0.0 source code description: clang 8.0.0 source code
fetch: fetch:
type: git type: git
repo: https://github.com/llvm/llvm-project repo: https://github.com/llvm/llvm-project
revision: 00b161b8971bc6d3cb55f13502288b8fe0dbaa42 revision: d2298e74235598f15594fe2c99bbac870a507c59
clang-14: clang-14:
description: clang 14.0.5 source code description: clang 14.0.5 source code

View file

@ -10,26 +10,26 @@ job-defaults:
resources: resources:
- 'build/build-clang/build-clang.py' - 'build/build-clang/build-clang.py'
linux64-clang-7.0: linux64-clang-8.0:
description: "Clang 7.0 toolchain build" description: "Clang 8.0 toolchain build"
treeherder: treeherder:
symbol: TL(clang-7.0) symbol: TL(clang-8.0)
worker-type: b-linux-large-gcp worker-type: b-linux-large-gcp
run: run:
script: build-clang.sh script: build-clang.sh
arguments: arguments:
- 'build/build-clang/linux64.json' - 'build/build-clang/linux64.json'
- 'build/build-clang/clang-7.0.json' - 'build/build-clang/clang-8.0.json'
- 'build/build-clang/2stages.json' - 'build/build-clang/2stages.json'
resources: resources:
- 'build/build-clang/linux64.json' - 'build/build-clang/linux64.json'
- 'build/build-clang/clang-7.0.json' - 'build/build-clang/clang-8.0.json'
- 'build/build-clang/2stages.json' - 'build/build-clang/2stages.json'
toolchain-artifact: public/build/clang.tar.zst toolchain-artifact: public/build/clang.tar.zst
toolchain-alias: linux64-clang-base toolchain-alias: linux64-clang-base
fetches: fetches:
fetch: fetch:
- clang-7.0 - clang-8.0
toolchain: toolchain:
- linux64-toolchain-sysroot - linux64-toolchain-sysroot