blob: 1db487c49eb926d34f3922e5afe6afbb136750a4 [file] [log] [blame]
# Copyright 2019 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
config("visibility_hidden") {
cflags = [ "-fvisibility=hidden" ]
cflags_cc = [ "-fvisibility-inlines-hidden" ]
}
config("static-libc++") {
if (is_fuchsia) {
configs = [ "//build/config/fuchsia:static_cpp_standard_library" ]
}
}
config("default_include_dirs") {
# Note: this include directory is also provided by the sysroot, but it is
# needed when compiling some libraries in the host toolchain.
include_dirs = [ "//zircon/system/public" ]
}
# These warnings were picked up from the ZN build.
# TODO(3203): that list should converge with regular compilation settings in the GN build.
config("default_warnings") {
cflags = [
"-Wall",
"-Wextra",
"-Wno-multichar",
"-Wno-unused-parameter",
"-Wno-unused-function",
"-Werror=unused-label",
"-Werror=return-type",
"-Wno-address-of-packed-member",
]
cflags_c = [
"-Werror=implicit-function-declaration",
"-Wstrict-prototypes",
"-Wwrite-strings",
"-Wno-absolute-value",
]
cflags_cc = [
"-Wconversion",
"-Wno-sign-conversion",
"-Wextra-semi",
]
}
config("user") {
defines = [ "_ALL_SOURCE" ]
}
config("freestanding") {
cflags = [ "-ffreestanding" ]
# In Clang -fasynchronous-unwind-tables is the default for *-fuchsia
# targets. But -ffreestanding defeats that (in target-independent logic
# in the Clang driver). So add it back explicitly. For GCC, it's
# already added explicitly in :compiler regardless so don't double it.
cflags += [ "-fasynchronous-unwind-tables" ]
ldflags = cflags
}
config("no_stack_protector") {
cflags = [ "-fno-stack-protector" ]
}
config("no_sanitizers") {
cflags = [
"-fno-sanitize=all",
"-fsanitize-coverage=0",
]
configs = [ ":no_stack_protector" ]
}
config("no-shadow-call-stack") {
if (current_cpu == "arm64") {
cflags = [ "-fno-sanitize=shadow-call-stack" ]
}
}
# TODO(TC-539) Remove this once the warning with fit::variant/fit::optional is addressed.
config("no_maybe_uninitialized") {
}
config("no_safestack") {
cflags = [ "-fno-sanitize=safe-stack" ]
configs = [ ":no_stack_protector" ]
}