blob: 6c9f1d4dd16287b714545894876403a5e8f7f8de [file] [log] [blame]
bootstrap_go_package {
name: "soong-art",
pkgPath: "android/soong/art",
deps: [
"blueprint",
"blueprint-pathtools",
"soong",
"soong-android",
"soong-cc",
],
srcs: [
"art.go",
"codegen.go",
"makevars.go",
],
pluginFor: ["soong_build"],
}
art_global_defaults {
// Additional flags are computed by art.go
name: "art_defaults",
clang: true,
cflags: [
// Base set of cflags used by all things ART.
"-fno-rtti",
"-ggdb3",
"-Wall",
"-Werror",
"-Wextra",
"-Wstrict-aliasing",
"-fstrict-aliasing",
"-Wunreachable-code",
"-Wredundant-decls",
"-Wshadow",
"-Wunused",
"-fvisibility=protected",
// Warn about thread safety violations with clang.
"-Wthread-safety",
"-Wthread-safety-negative",
// Warn if switch fallthroughs aren't annotated.
"-Wimplicit-fallthrough",
// Enable float equality warnings.
"-Wfloat-equal",
// Enable warning of converting ints to void*.
"-Wint-to-void-pointer-cast",
// Enable warning of wrong unused annotations.
"-Wused-but-marked-unused",
// Enable warning for deprecated language features.
"-Wdeprecated",
// Enable warning for unreachable break & return.
"-Wunreachable-code-break",
"-Wunreachable-code-return",
// Bug: http://b/29823425 Disable -Wconstant-conversion and
// -Wundefined-var-template for Clang update to r271374
"-Wno-constant-conversion",
"-Wno-undefined-var-template",
"-DART_STACK_OVERFLOW_GAP_arm=8192",
"-DART_STACK_OVERFLOW_GAP_arm64=8192",
"-DART_STACK_OVERFLOW_GAP_mips=16384",
"-DART_STACK_OVERFLOW_GAP_mips64=16384",
"-DART_STACK_OVERFLOW_GAP_x86=8192",
"-DART_STACK_OVERFLOW_GAP_x86_64=8192",
// Enable thread annotations for std::mutex, etc.
"-D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS",
],
target: {
android: {
cflags: [
"-DART_TARGET",
// Enable missing-noreturn only on non-Mac. As lots of things are not implemented
// for Apple, it's a pain.
"-Wmissing-noreturn",
// To use oprofile_android --callgraph, uncomment this and recompile with
// mmma -j art
// "-fno-omit-frame-pointer",
// "-marm",
// "-mapcs",
],
include_dirs: [
// We optimize Thread::Current() with a direct TLS access. This requires access to a
// private Bionic header.
"bionic/libc/private",
],
},
linux: {
cflags: [
// Enable missing-noreturn only on non-Mac. As lots of things are not implemented for
// Apple, it's a pain.
"-Wmissing-noreturn",
],
host_ldlibs: [
"-lrt",
],
},
host: {
cflags: [
// Bug: 15446488. We don't omit the frame pointer to work around
// clang/libunwind bugs that cause SEGVs in run-test-004-ThreadStress.
"-fno-omit-frame-pointer",
],
host_ldlibs: [
"-ldl",
"-lpthread",
],
},
},
codegen: {
arm: {
cflags: ["-DART_ENABLE_CODEGEN_arm"],
},
arm64: {
cflags: ["-DART_ENABLE_CODEGEN_arm64"],
},
mips: {
cflags: ["-DART_ENABLE_CODEGEN_mips"],
},
mips64: {
cflags: ["-DART_ENABLE_CODEGEN_mips64"],
},
x86: {
cflags: ["-DART_ENABLE_CODEGEN_x86"],
},
x86_64: {
cflags: ["-DART_ENABLE_CODEGEN_x86_64"],
},
},
include_dirs: [
"external/icu/icu4c/source/common",
"external/lz4/lib",
"external/valgrind/include",
"external/valgrind",
"external/vixl/src",
"external/zlib",
"libnativehelper/platform_include"
],
tidy_checks: [
"-google-default-arguments",
],
}
art_debug_defaults {
name: "art_debug_defaults",
cflags: [
"-DDYNAMIC_ANNOTATIONS_ENABLED=1",
"-DVIXL_DEBUG",
"-UNDEBUG",
],
asflags: [
"-UNDEBUG",
],
target: {
// This has to be duplicated for android and host to make sure it
// comes after the -Wframe-larger-than warnings inserted by art.go
// target-specific properties
android: {
cflags: ["-Wno-frame-larger-than="],
},
host: {
cflags: ["-Wno-frame-larger-than="],
},
},
}