9c709a1d6b
Approved by: rene (mentor) Differential Revision: https://reviews.freebsd.org/D39769
213 lines
7.2 KiB
Text
213 lines
7.2 KiB
Text
--- build/config/compiler/BUILD.gn.orig 2023-04-22 17:45:15 UTC
|
|
+++ build/config/compiler/BUILD.gn
|
|
@@ -237,13 +237,16 @@ config("default_include_dirs") {
|
|
# Compiler instrumentation can introduce dependencies in DSOs to symbols in
|
|
# the executable they are loaded into, so they are unresolved at link-time.
|
|
config("no_unresolved_symbols") {
|
|
- if (!using_sanitizer &&
|
|
+ if (!using_sanitizer && !is_bsd &&
|
|
(is_linux || is_chromeos || is_android || is_fuchsia)) {
|
|
ldflags = [
|
|
"-Wl,-z,defs",
|
|
"-Wl,--as-needed",
|
|
]
|
|
}
|
|
+ if (current_cpu == "x86" && is_openbsd) {
|
|
+ ldflags = [ "-Wl,-z,notext" ]
|
|
+ }
|
|
}
|
|
|
|
# compiler ---------------------------------------------------------------------
|
|
@@ -289,7 +292,9 @@ config("compiler") {
|
|
|
|
configs += [
|
|
# See the definitions below.
|
|
+ ":clang_revision",
|
|
":rustc_revision",
|
|
+ ":compiler_cpu_abi",
|
|
":compiler_codegen",
|
|
":compiler_deterministic",
|
|
]
|
|
@@ -465,6 +470,10 @@ config("compiler") {
|
|
}
|
|
}
|
|
|
|
+ if (is_openbsd) {
|
|
+ ldflags += [ "-Wl,-z,wxneeded" ]
|
|
+ }
|
|
+
|
|
# Linux-specific compiler flags setup.
|
|
# ------------------------------------
|
|
if (use_gold) {
|
|
@@ -964,7 +973,7 @@ config("compiler_cpu_abi") {
|
|
]
|
|
}
|
|
} else if (current_cpu == "arm") {
|
|
- if (is_clang && !is_android && !is_nacl &&
|
|
+ if (is_clang && !is_android && !is_nacl && !is_bsd &&
|
|
!(is_chromeos_lacros && is_chromeos_device)) {
|
|
cflags += [ "--target=arm-linux-gnueabihf" ]
|
|
ldflags += [ "--target=arm-linux-gnueabihf" ]
|
|
@@ -979,7 +988,7 @@ config("compiler_cpu_abi") {
|
|
cflags += [ "-mtune=$arm_tune" ]
|
|
}
|
|
} else if (current_cpu == "arm64") {
|
|
- if (is_clang && !is_android && !is_nacl && !is_fuchsia &&
|
|
+ if (is_clang && !is_android && !is_nacl && !is_fuchsia && !is_bsd &&
|
|
!(is_chromeos_lacros && is_chromeos_device)) {
|
|
cflags += [ "--target=aarch64-linux-gnu" ]
|
|
ldflags += [ "--target=aarch64-linux-gnu" ]
|
|
@@ -1325,6 +1334,27 @@ config("compiler_deterministic") {
|
|
}
|
|
}
|
|
|
|
+config("clang_revision") {
|
|
+ if (is_clang && !is_bsd && clang_base_path == default_clang_base_path) {
|
|
+ update_args = [
|
|
+ "--print-revision",
|
|
+ "--verify-version=$clang_version",
|
|
+ ]
|
|
+ if (llvm_force_head_revision) {
|
|
+ update_args += [ "--llvm-force-head-revision" ]
|
|
+ }
|
|
+ clang_revision = exec_script("//tools/clang/scripts/update.py",
|
|
+ update_args,
|
|
+ "trim string")
|
|
+
|
|
+ # This is here so that all files get recompiled after a clang roll and
|
|
+ # when turning clang on or off. (defines are passed via the command line,
|
|
+ # and build system rebuild things when their commandline changes). Nothing
|
|
+ # should ever read this define.
|
|
+ defines = [ "CR_CLANG_REVISION=\"$clang_revision\"" ]
|
|
+ }
|
|
+}
|
|
+
|
|
config("rustc_revision") {
|
|
if (rustc_revision != "") {
|
|
# Similar to the above config, this is here so that all files get recompiled
|
|
@@ -1543,7 +1573,7 @@ config("default_warnings") {
|
|
"-Wno-ignored-pragma-optimize",
|
|
]
|
|
|
|
- if (!is_nacl) {
|
|
+ if (!is_nacl && !is_bsd) {
|
|
cflags += [
|
|
# TODO(crbug.com/1343975) Evaluate and possibly enable.
|
|
"-Wno-deprecated-builtins",
|
|
@@ -1711,7 +1741,7 @@ config("no_chromium_code") {
|
|
# third-party libraries.
|
|
"-Wno-c++11-narrowing",
|
|
]
|
|
- if (!is_nacl) {
|
|
+ if (!is_nacl && !is_freebsd) {
|
|
cflags += [
|
|
# Disabled for similar reasons as -Wunused-variable.
|
|
"-Wno-unused-but-set-variable",
|
|
@@ -1995,8 +2025,7 @@ config("default_stack_frames") {
|
|
}
|
|
|
|
# Default "optimization on" config.
|
|
-config("optimize") { }
|
|
-config("xoptimize") {
|
|
+config("optimize") {
|
|
if (is_win) {
|
|
if (chrome_pgo_phase != 2) {
|
|
# Favor size over speed, /O1 must be before the common flags.
|
|
@@ -2055,8 +2084,7 @@ config("xoptimize") {
|
|
}
|
|
|
|
# Turn off optimizations.
|
|
-config("no_optimize") { }
|
|
-config("xno_optimize") {
|
|
+config("no_optimize") {
|
|
if (is_win) {
|
|
cflags = [
|
|
"/Od", # Disable optimization.
|
|
@@ -2096,8 +2124,7 @@ config("xno_optimize") {
|
|
# Turns up the optimization level. On Windows, this implies whole program
|
|
# optimization and link-time code generation which is very expensive and should
|
|
# be used sparingly.
|
|
-config("optimize_max") { }
|
|
-config("xoptimize_max") {
|
|
+config("optimize_max") {
|
|
if (is_nacl && is_nacl_irt) {
|
|
# The NaCl IRT is a special case and always wants its own config.
|
|
# Various components do:
|
|
@@ -2130,8 +2157,7 @@ config("xoptimize_max") {
|
|
#
|
|
# TODO(crbug.com/621335) - rework how all of these configs are related
|
|
# so that we don't need this disclaimer.
|
|
-config("optimize_speed") { }
|
|
-config("xoptimize_speed") {
|
|
+config("optimize_speed") {
|
|
if (is_nacl && is_nacl_irt) {
|
|
# The NaCl IRT is a special case and always wants its own config.
|
|
# Various components do:
|
|
@@ -2157,8 +2183,7 @@ config("xoptimize_speed") {
|
|
}
|
|
}
|
|
|
|
-config("optimize_fuzzing") { }
|
|
-config("xoptimize_fuzzing") {
|
|
+config("optimize_fuzzing") {
|
|
cflags = [ "-O1" ] + common_optimize_on_cflags
|
|
rustflags = [ "-Copt-level=1" ]
|
|
ldflags = common_optimize_on_ldflags
|
|
@@ -2224,7 +2249,7 @@ config("afdo_optimize_size") {
|
|
# There are some targeted places that AFDO regresses, so we provide a separate
|
|
# config to allow AFDO to be disabled per-target.
|
|
config("afdo") {
|
|
- if (is_clang) {
|
|
+ if (is_clang && !is_bsd) {
|
|
cflags = []
|
|
if (clang_emit_debug_info_for_profiling) {
|
|
# Add the following flags to generate debug info for profiling.
|
|
@@ -2243,7 +2268,7 @@ config("afdo") {
|
|
}
|
|
inputs = [ _clang_sample_profile ]
|
|
}
|
|
- } else if (auto_profile_path != "" && is_a_target_toolchain) {
|
|
+ } else if (auto_profile_path != "" && is_a_target_toolchain && !is_bsd) {
|
|
cflags = [ "-fauto-profile=${auto_profile_path}" ]
|
|
inputs = [ auto_profile_path ]
|
|
}
|
|
@@ -2281,8 +2306,7 @@ config("win_pdbaltpath") {
|
|
}
|
|
|
|
# Full symbols.
|
|
-config("symbols") { }
|
|
-config("xsymbols") {
|
|
+config("symbols") {
|
|
if (is_win) {
|
|
if (is_clang) {
|
|
cflags = [
|
|
@@ -2399,7 +2423,8 @@ config("xsymbols") {
|
|
configs += [ "//build/config:compress_debug_sections" ]
|
|
}
|
|
|
|
- if (is_clang && (!is_nacl || is_nacl_saigo) && current_os != "zos") {
|
|
+ if (is_clang && (!is_nacl || is_nacl_saigo) && current_os != "zos" &&
|
|
+ !is_bsd) {
|
|
if (is_apple) {
|
|
# TODO(https://crbug.com/1050118): Investigate missing debug info on mac.
|
|
# Make sure we don't use constructor homing on mac.
|
|
@@ -2422,8 +2447,7 @@ config("xsymbols") {
|
|
# Minimal symbols.
|
|
# This config guarantees to hold symbol for stack trace which are shown to user
|
|
# when crash happens in unittests running on buildbot.
|
|
-config("minimal_symbols") { }
|
|
-config("xminimal_symbols") {
|
|
+config("minimal_symbols") {
|
|
if (is_win) {
|
|
# Functions, files, and line tables only.
|
|
cflags = []
|
|
@@ -2497,8 +2521,7 @@ config("xminimal_symbols") {
|
|
# This configuration contains function names only. That is, the compiler is
|
|
# told to not generate debug information and the linker then just puts function
|
|
# names in the final debug information.
|
|
-config("no_symbols") { }
|
|
-config("xno_symbols") {
|
|
+config("no_symbols") {
|
|
if (is_win) {
|
|
ldflags = [ "/DEBUG" ]
|
|
|