Merge changes I29bf144b,Id2879453
* changes: Remove more clang indirection without affecting command lines Remove clang indirection without affecting build.ninja
This commit is contained in:
@@ -392,7 +392,7 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags, deps
|
||||
if flags.RequiredInstructionSet != "" {
|
||||
instructionSet = flags.RequiredInstructionSet
|
||||
}
|
||||
instructionSetFlags, err := tc.ClangInstructionSetFlags(instructionSet)
|
||||
instructionSetFlags, err := tc.InstructionSetFlags(instructionSet)
|
||||
if err != nil {
|
||||
ctx.ModuleErrorf("%s", err)
|
||||
}
|
||||
@@ -437,10 +437,10 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags, deps
|
||||
flags.Global.ConlyFlags = append([]string{"${config.CommonGlobalConlyflags}"}, flags.Global.ConlyFlags...)
|
||||
flags.Global.CppFlags = append([]string{fmt.Sprintf("${config.%sGlobalCppflags}", hod)}, flags.Global.CppFlags...)
|
||||
|
||||
flags.Global.AsFlags = append(flags.Global.AsFlags, tc.ClangAsflags())
|
||||
flags.Global.AsFlags = append(flags.Global.AsFlags, tc.Asflags())
|
||||
flags.Global.CppFlags = append([]string{"${config.CommonClangGlobalCppflags}"}, flags.Global.CppFlags...)
|
||||
flags.Global.CommonFlags = append(flags.Global.CommonFlags,
|
||||
tc.ClangCflags(),
|
||||
tc.Cflags(),
|
||||
"${config.CommonClangGlobalCflags}",
|
||||
fmt.Sprintf("${config.%sClangGlobalCflags}", hod))
|
||||
|
||||
@@ -458,11 +458,11 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags, deps
|
||||
|
||||
flags.Global.AsFlags = append(flags.Global.AsFlags, "-D__ASSEMBLY__")
|
||||
|
||||
flags.Global.CppFlags = append(flags.Global.CppFlags, tc.ClangCppflags())
|
||||
flags.Global.CppFlags = append(flags.Global.CppFlags, tc.Cppflags())
|
||||
|
||||
flags.Global.YasmFlags = append(flags.Global.YasmFlags, tc.YasmFlags())
|
||||
|
||||
flags.Global.CommonFlags = append(flags.Global.CommonFlags, tc.ToolchainClangCflags())
|
||||
flags.Global.CommonFlags = append(flags.Global.CommonFlags, tc.ToolchainCflags())
|
||||
|
||||
cStd := config.CStdVersion
|
||||
if String(compiler.Properties.C_std) == "experimental" {
|
||||
|
@@ -48,12 +48,12 @@ var (
|
||||
"-Wl,-z,separate-code",
|
||||
}
|
||||
|
||||
arm64Lldflags = append(ClangFilterUnknownLldflags(arm64Ldflags),
|
||||
arm64Lldflags = append(arm64Ldflags,
|
||||
"-Wl,-z,max-page-size=4096")
|
||||
|
||||
arm64Cppflags = []string{}
|
||||
|
||||
arm64ClangCpuVariantCflags = map[string][]string{
|
||||
arm64CpuVariantCflags = map[string][]string{
|
||||
"cortex-a53": []string{
|
||||
"-mcpu=cortex-a53",
|
||||
},
|
||||
@@ -99,10 +99,8 @@ func init() {
|
||||
pctx.StaticVariable("Arm64Ldflags", strings.Join(arm64Ldflags, " "))
|
||||
pctx.StaticVariable("Arm64Lldflags", strings.Join(arm64Lldflags, " "))
|
||||
|
||||
pctx.StaticVariable("Arm64ClangCflags", strings.Join(ClangFilterUnknownCflags(arm64Cflags), " "))
|
||||
pctx.StaticVariable("Arm64ClangLdflags", strings.Join(ClangFilterUnknownCflags(arm64Ldflags), " "))
|
||||
pctx.StaticVariable("Arm64ClangLldflags", strings.Join(ClangFilterUnknownCflags(arm64Lldflags), " "))
|
||||
pctx.StaticVariable("Arm64ClangCppflags", strings.Join(ClangFilterUnknownCflags(arm64Cppflags), " "))
|
||||
pctx.StaticVariable("Arm64ClangCflags", strings.Join(arm64Cflags, " "))
|
||||
pctx.StaticVariable("Arm64ClangCppflags", strings.Join(arm64Cppflags, " "))
|
||||
|
||||
pctx.StaticVariable("Arm64ClangArmv8ACflags", strings.Join(arm64ArchVariantCflags["armv8-a"], " "))
|
||||
pctx.StaticVariable("Arm64ClangArmv8ABranchProtCflags", strings.Join(arm64ArchVariantCflags["armv8-a-branchprot"], " "))
|
||||
@@ -110,30 +108,30 @@ func init() {
|
||||
pctx.StaticVariable("Arm64ClangArmv82ADotprodCflags", strings.Join(arm64ArchVariantCflags["armv8-2a-dotprod"], " "))
|
||||
|
||||
pctx.StaticVariable("Arm64ClangCortexA53Cflags",
|
||||
strings.Join(arm64ClangCpuVariantCflags["cortex-a53"], " "))
|
||||
strings.Join(arm64CpuVariantCflags["cortex-a53"], " "))
|
||||
|
||||
pctx.StaticVariable("Arm64ClangCortexA55Cflags",
|
||||
strings.Join(arm64ClangCpuVariantCflags["cortex-a55"], " "))
|
||||
strings.Join(arm64CpuVariantCflags["cortex-a55"], " "))
|
||||
|
||||
pctx.StaticVariable("Arm64ClangKryoCflags",
|
||||
strings.Join(arm64ClangCpuVariantCflags["kryo"], " "))
|
||||
strings.Join(arm64CpuVariantCflags["kryo"], " "))
|
||||
|
||||
pctx.StaticVariable("Arm64ClangExynosM1Cflags",
|
||||
strings.Join(arm64ClangCpuVariantCflags["exynos-m1"], " "))
|
||||
strings.Join(arm64CpuVariantCflags["exynos-m1"], " "))
|
||||
|
||||
pctx.StaticVariable("Arm64ClangExynosM2Cflags",
|
||||
strings.Join(arm64ClangCpuVariantCflags["exynos-m2"], " "))
|
||||
strings.Join(arm64CpuVariantCflags["exynos-m2"], " "))
|
||||
}
|
||||
|
||||
var (
|
||||
arm64ClangArchVariantCflagsVar = map[string]string{
|
||||
arm64ArchVariantCflagsVar = map[string]string{
|
||||
"armv8-a": "${config.Arm64ClangArmv8ACflags}",
|
||||
"armv8-a-branchprot": "${config.Arm64ClangArmv8ABranchProtCflags}",
|
||||
"armv8-2a": "${config.Arm64ClangArmv82ACflags}",
|
||||
"armv8-2a-dotprod": "${config.Arm64ClangArmv82ADotprodCflags}",
|
||||
}
|
||||
|
||||
arm64ClangCpuVariantCflagsVar = map[string]string{
|
||||
arm64CpuVariantCflagsVar = map[string]string{
|
||||
"": "",
|
||||
"cortex-a53": "${config.Arm64ClangCortexA53Cflags}",
|
||||
"cortex-a55": "${config.Arm64ClangCortexA55Cflags}",
|
||||
@@ -152,9 +150,9 @@ type toolchainArm64 struct {
|
||||
toolchainBionic
|
||||
toolchain64Bit
|
||||
|
||||
ldflags string
|
||||
lldflags string
|
||||
toolchainClangCflags string
|
||||
ldflags string
|
||||
lldflags string
|
||||
toolchainCflags string
|
||||
}
|
||||
|
||||
func (t *toolchainArm64) Name() string {
|
||||
@@ -181,24 +179,24 @@ func (t *toolchainArm64) ClangTriple() string {
|
||||
return t.GccTriple()
|
||||
}
|
||||
|
||||
func (t *toolchainArm64) ClangCflags() string {
|
||||
func (t *toolchainArm64) Cflags() string {
|
||||
return "${config.Arm64ClangCflags}"
|
||||
}
|
||||
|
||||
func (t *toolchainArm64) ClangCppflags() string {
|
||||
func (t *toolchainArm64) Cppflags() string {
|
||||
return "${config.Arm64ClangCppflags}"
|
||||
}
|
||||
|
||||
func (t *toolchainArm64) ClangLdflags() string {
|
||||
func (t *toolchainArm64) Ldflags() string {
|
||||
return t.ldflags
|
||||
}
|
||||
|
||||
func (t *toolchainArm64) ClangLldflags() string {
|
||||
func (t *toolchainArm64) Lldflags() string {
|
||||
return t.lldflags
|
||||
}
|
||||
|
||||
func (t *toolchainArm64) ToolchainClangCflags() string {
|
||||
return t.toolchainClangCflags
|
||||
func (t *toolchainArm64) ToolchainCflags() string {
|
||||
return t.toolchainCflags
|
||||
}
|
||||
|
||||
func (toolchainArm64) LibclangRuntimeLibraryArch() string {
|
||||
@@ -216,9 +214,9 @@ func arm64ToolchainFactory(arch android.Arch) Toolchain {
|
||||
panic(fmt.Sprintf("Unknown ARM architecture version: %q", arch.ArchVariant))
|
||||
}
|
||||
|
||||
toolchainClangCflags := []string{arm64ClangArchVariantCflagsVar[arch.ArchVariant]}
|
||||
toolchainClangCflags = append(toolchainClangCflags,
|
||||
variantOrDefault(arm64ClangCpuVariantCflagsVar, arch.CpuVariant))
|
||||
toolchainCflags := []string{arm64ArchVariantCflagsVar[arch.ArchVariant]}
|
||||
toolchainCflags = append(toolchainCflags,
|
||||
variantOrDefault(arm64CpuVariantCflagsVar, arch.CpuVariant))
|
||||
|
||||
var extraLdflags string
|
||||
switch arch.CpuVariant {
|
||||
@@ -235,7 +233,7 @@ func arm64ToolchainFactory(arch android.Arch) Toolchain {
|
||||
"${config.Arm64Lldflags}",
|
||||
extraLdflags,
|
||||
}, " "),
|
||||
toolchainClangCflags: strings.Join(toolchainClangCflags, " "),
|
||||
toolchainCflags: strings.Join(toolchainCflags, " "),
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -42,47 +42,31 @@ func (t *toolchainFuchsiaArm64) GccVersion() string {
|
||||
return arm64GccVersion
|
||||
}
|
||||
|
||||
func (t *toolchainFuchsiaArm64) Cflags() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (t *toolchainFuchsiaArm64) Cppflags() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (t *toolchainFuchsiaArm64) Ldflags() string {
|
||||
return "-Wl,--fix-cortex-a53-843419"
|
||||
}
|
||||
|
||||
func (t *toolchainFuchsiaArm64) IncludeFlags() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (t *toolchainFuchsiaArm64) ToolchainCflags() string {
|
||||
return "-mcpu=cortex-a53"
|
||||
}
|
||||
|
||||
func (t *toolchainFuchsiaArm64) ClangTriple() string {
|
||||
return "arm64-fuchsia-android"
|
||||
}
|
||||
|
||||
func (t *toolchainFuchsiaArm64) ClangCppflags() string {
|
||||
func (t *toolchainFuchsiaArm64) Cppflags() string {
|
||||
return "-Wno-error=deprecated-declarations"
|
||||
}
|
||||
|
||||
func (t *toolchainFuchsiaArm64) ClangLdflags() string {
|
||||
func (t *toolchainFuchsiaArm64) Ldflags() string {
|
||||
return "--target=arm64-fuchsia --sysroot=" + fuchsiaArm64SysRoot + " -L" + fuchsiaArm64PrebuiltLibsRoot + "/aarch64-fuchsia/lib " + "-Lprebuilts/fuchsia_sdk/arch/arm64/dist/"
|
||||
}
|
||||
|
||||
func (t *toolchainFuchsiaArm64) ClangLldflags() string {
|
||||
func (t *toolchainFuchsiaArm64) Lldflags() string {
|
||||
return "--target=arm64-fuchsia --sysroot=" + fuchsiaArm64SysRoot + " -L" + fuchsiaArm64PrebuiltLibsRoot + "/aarch64-fuchsia/lib " + "-Lprebuilts/fuchsia_sdk/arch/arm64/dist/"
|
||||
}
|
||||
|
||||
func (t *toolchainFuchsiaArm64) ClangCflags() string {
|
||||
func (t *toolchainFuchsiaArm64) Cflags() string {
|
||||
return "--target=arm64-fuchsia --sysroot=" + fuchsiaArm64SysRoot + " -I" + fuchsiaArm64SysRoot + "/include"
|
||||
}
|
||||
|
||||
func (t *toolchainFuchsiaArm64) ToolchainClangCflags() string {
|
||||
func (t *toolchainFuchsiaArm64) ToolchainCflags() string {
|
||||
return "-march=armv8-a"
|
||||
}
|
||||
|
||||
|
@@ -15,14 +15,15 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"android/soong/android"
|
||||
"strings"
|
||||
|
||||
"android/soong/android"
|
||||
)
|
||||
|
||||
var (
|
||||
// This is a host toolchain but flags for device toolchain are required
|
||||
// as the flags are actually for Bionic-based builds.
|
||||
linuxCrossCflags = ClangFilterUnknownCflags(append(deviceGlobalCflags,
|
||||
linuxCrossCflags = append(deviceGlobalCflags,
|
||||
// clang by default enables PIC when the clang triple is set to *-android.
|
||||
// See toolchain/llvm-project/clang/lib/Driver/ToolChains/CommonArgs.cpp#920.
|
||||
// However, for this host target, we don't set "-android" to avoid __ANDROID__ macro
|
||||
@@ -33,9 +34,9 @@ var (
|
||||
// This is normally in ClangExtraTargetCflags, but that's for device and we need
|
||||
// the same for host
|
||||
"-nostdlibinc",
|
||||
))
|
||||
)
|
||||
|
||||
linuxCrossLdflags = ClangFilterUnknownCflags([]string{
|
||||
linuxCrossLdflags = []string{
|
||||
"-Wl,-z,noexecstack",
|
||||
"-Wl,-z,relro",
|
||||
"-Wl,-z,now",
|
||||
@@ -44,7 +45,7 @@ var (
|
||||
"-Wl,--fatal-warnings",
|
||||
"-Wl,--hash-style=gnu",
|
||||
"-Wl,--no-undefined-version",
|
||||
})
|
||||
}
|
||||
|
||||
// Embed the linker into host bionic binaries. This is needed to support host bionic,
|
||||
// as the linux kernel requires that the ELF interpreter referenced by PT_INTERP be
|
||||
@@ -73,7 +74,7 @@ func (toolchainLinuxArm64) ClangTriple() string {
|
||||
return "aarch64-linux"
|
||||
}
|
||||
|
||||
func (toolchainLinuxArm64) ClangCflags() string {
|
||||
func (toolchainLinuxArm64) Cflags() string {
|
||||
// The inherited flags + extra flags
|
||||
return "${config.Arm64ClangCflags} ${config.LinuxBionicArm64Cflags}"
|
||||
}
|
||||
@@ -84,7 +85,7 @@ func (toolchainLinuxArm64) CrtBeginSharedBinary() []string {
|
||||
|
||||
func linuxArm64ToolchainFactory(arch android.Arch) Toolchain {
|
||||
archVariant := "armv8-a" // for host, default to armv8-a
|
||||
toolchainClangCflags := []string{arm64ClangArchVariantCflagsVar[archVariant]}
|
||||
toolchainCflags := []string{arm64ArchVariantCflagsVar[archVariant]}
|
||||
|
||||
// We don't specify CPU architecture for host. Conservatively assume
|
||||
// the host CPU needs the fix
|
||||
@@ -103,7 +104,7 @@ func linuxArm64ToolchainFactory(arch android.Arch) Toolchain {
|
||||
"${config.LinuxBionicArm64Ldflags}",
|
||||
extraLdflags,
|
||||
}, " ")
|
||||
ret.toolchainArm64.toolchainClangCflags = strings.Join(toolchainClangCflags, " ")
|
||||
ret.toolchainArm64.toolchainCflags = strings.Join(toolchainCflags, " ")
|
||||
return &ret
|
||||
}
|
||||
|
||||
|
@@ -23,7 +23,6 @@ import (
|
||||
|
||||
var (
|
||||
armToolchainCflags = []string{
|
||||
"-mthumb-interwork",
|
||||
"-msoft-float",
|
||||
}
|
||||
|
||||
@@ -38,7 +37,7 @@ var (
|
||||
"-Wl,-m,armelf",
|
||||
}
|
||||
|
||||
armLldflags = ClangFilterUnknownLldflags(armLdflags)
|
||||
armLldflags = armLdflags
|
||||
|
||||
armArmCflags = []string{
|
||||
"-fstrict-aliasing",
|
||||
@@ -49,7 +48,7 @@ var (
|
||||
"-Os",
|
||||
}
|
||||
|
||||
armClangArchVariantCflags = map[string][]string{
|
||||
armArchVariantCflags = map[string][]string{
|
||||
"armv7-a": []string{
|
||||
"-march=armv7-a",
|
||||
"-mfloat-abi=softfp",
|
||||
@@ -72,7 +71,7 @@ var (
|
||||
},
|
||||
}
|
||||
|
||||
armClangCpuVariantCflags = map[string][]string{
|
||||
armCpuVariantCflags = map[string][]string{
|
||||
"cortex-a7": []string{
|
||||
"-mcpu=cortex-a7",
|
||||
"-mfpu=neon-vfpv4",
|
||||
@@ -181,42 +180,40 @@ func init() {
|
||||
exportStringListStaticVariable("ArmLldflags", armLldflags)
|
||||
|
||||
// Clang cflags
|
||||
exportStringListStaticVariable("ArmToolchainClangCflags", ClangFilterUnknownCflags(armToolchainCflags))
|
||||
exportStringListStaticVariable("ArmClangCflags", ClangFilterUnknownCflags(armCflags))
|
||||
exportStringListStaticVariable("ArmClangLdflags", ClangFilterUnknownCflags(armLdflags))
|
||||
exportStringListStaticVariable("ArmClangLldflags", ClangFilterUnknownCflags(armLldflags))
|
||||
exportStringListStaticVariable("ArmClangCppflags", ClangFilterUnknownCflags(armCppflags))
|
||||
exportStringListStaticVariable("ArmToolchainClangCflags", armToolchainCflags)
|
||||
exportStringListStaticVariable("ArmClangCflags", armCflags)
|
||||
exportStringListStaticVariable("ArmClangCppflags", armCppflags)
|
||||
|
||||
// Clang ARM vs. Thumb instruction set cflags
|
||||
exportStringListStaticVariable("ArmClangArmCflags", ClangFilterUnknownCflags(armArmCflags))
|
||||
exportStringListStaticVariable("ArmClangThumbCflags", ClangFilterUnknownCflags(armThumbCflags))
|
||||
exportStringListStaticVariable("ArmClangArmCflags", armArmCflags)
|
||||
exportStringListStaticVariable("ArmClangThumbCflags", armThumbCflags)
|
||||
|
||||
// Clang arch variant cflags
|
||||
exportStringListStaticVariable("ArmClangArmv7ACflags", armClangArchVariantCflags["armv7-a"])
|
||||
exportStringListStaticVariable("ArmClangArmv7ANeonCflags", armClangArchVariantCflags["armv7-a-neon"])
|
||||
exportStringListStaticVariable("ArmClangArmv8ACflags", armClangArchVariantCflags["armv8-a"])
|
||||
exportStringListStaticVariable("ArmClangArmv82ACflags", armClangArchVariantCflags["armv8-2a"])
|
||||
exportStringListStaticVariable("ArmClangArmv7ACflags", armArchVariantCflags["armv7-a"])
|
||||
exportStringListStaticVariable("ArmClangArmv7ANeonCflags", armArchVariantCflags["armv7-a-neon"])
|
||||
exportStringListStaticVariable("ArmClangArmv8ACflags", armArchVariantCflags["armv8-a"])
|
||||
exportStringListStaticVariable("ArmClangArmv82ACflags", armArchVariantCflags["armv8-2a"])
|
||||
|
||||
// Clang cpu variant cflags
|
||||
exportStringListStaticVariable("ArmClangGenericCflags", armClangCpuVariantCflags[""])
|
||||
exportStringListStaticVariable("ArmClangCortexA7Cflags", armClangCpuVariantCflags["cortex-a7"])
|
||||
exportStringListStaticVariable("ArmClangCortexA8Cflags", armClangCpuVariantCflags["cortex-a8"])
|
||||
exportStringListStaticVariable("ArmClangCortexA15Cflags", armClangCpuVariantCflags["cortex-a15"])
|
||||
exportStringListStaticVariable("ArmClangCortexA53Cflags", armClangCpuVariantCflags["cortex-a53"])
|
||||
exportStringListStaticVariable("ArmClangCortexA55Cflags", armClangCpuVariantCflags["cortex-a55"])
|
||||
exportStringListStaticVariable("ArmClangKraitCflags", armClangCpuVariantCflags["krait"])
|
||||
exportStringListStaticVariable("ArmClangKryoCflags", armClangCpuVariantCflags["kryo"])
|
||||
exportStringListStaticVariable("ArmClangGenericCflags", armCpuVariantCflags[""])
|
||||
exportStringListStaticVariable("ArmClangCortexA7Cflags", armCpuVariantCflags["cortex-a7"])
|
||||
exportStringListStaticVariable("ArmClangCortexA8Cflags", armCpuVariantCflags["cortex-a8"])
|
||||
exportStringListStaticVariable("ArmClangCortexA15Cflags", armCpuVariantCflags["cortex-a15"])
|
||||
exportStringListStaticVariable("ArmClangCortexA53Cflags", armCpuVariantCflags["cortex-a53"])
|
||||
exportStringListStaticVariable("ArmClangCortexA55Cflags", armCpuVariantCflags["cortex-a55"])
|
||||
exportStringListStaticVariable("ArmClangKraitCflags", armCpuVariantCflags["krait"])
|
||||
exportStringListStaticVariable("ArmClangKryoCflags", armCpuVariantCflags["kryo"])
|
||||
}
|
||||
|
||||
var (
|
||||
armClangArchVariantCflagsVar = map[string]string{
|
||||
armArchVariantCflagsVar = map[string]string{
|
||||
"armv7-a": "${config.ArmClangArmv7ACflags}",
|
||||
"armv7-a-neon": "${config.ArmClangArmv7ANeonCflags}",
|
||||
"armv8-a": "${config.ArmClangArmv8ACflags}",
|
||||
"armv8-2a": "${config.ArmClangArmv82ACflags}",
|
||||
}
|
||||
|
||||
armClangCpuVariantCflagsVar = map[string]string{
|
||||
armCpuVariantCflagsVar = map[string]string{
|
||||
"": "${config.ArmClangGenericCflags}",
|
||||
"cortex-a7": "${config.ArmClangCortexA7Cflags}",
|
||||
"cortex-a8": "${config.ArmClangCortexA8Cflags}",
|
||||
@@ -239,9 +236,9 @@ var (
|
||||
type toolchainArm struct {
|
||||
toolchainBionic
|
||||
toolchain32Bit
|
||||
ldflags string
|
||||
lldflags string
|
||||
toolchainClangCflags string
|
||||
ldflags string
|
||||
lldflags string
|
||||
toolchainCflags string
|
||||
}
|
||||
|
||||
func (t *toolchainArm) Name() string {
|
||||
@@ -274,34 +271,34 @@ func (t *toolchainArm) ndkTriple() string {
|
||||
return t.GccTriple()
|
||||
}
|
||||
|
||||
func (t *toolchainArm) ToolchainClangCflags() string {
|
||||
return t.toolchainClangCflags
|
||||
func (t *toolchainArm) ToolchainCflags() string {
|
||||
return t.toolchainCflags
|
||||
}
|
||||
|
||||
func (t *toolchainArm) ClangCflags() string {
|
||||
func (t *toolchainArm) Cflags() string {
|
||||
return "${config.ArmClangCflags}"
|
||||
}
|
||||
|
||||
func (t *toolchainArm) ClangCppflags() string {
|
||||
func (t *toolchainArm) Cppflags() string {
|
||||
return "${config.ArmClangCppflags}"
|
||||
}
|
||||
|
||||
func (t *toolchainArm) ClangLdflags() string {
|
||||
func (t *toolchainArm) Ldflags() string {
|
||||
return t.ldflags
|
||||
}
|
||||
|
||||
func (t *toolchainArm) ClangLldflags() string {
|
||||
func (t *toolchainArm) Lldflags() string {
|
||||
return t.lldflags // TODO: handle V8 cases
|
||||
}
|
||||
|
||||
func (t *toolchainArm) ClangInstructionSetFlags(isa string) (string, error) {
|
||||
func (t *toolchainArm) InstructionSetFlags(isa string) (string, error) {
|
||||
switch isa {
|
||||
case "arm":
|
||||
return "${config.ArmClangArmCflags}", nil
|
||||
case "thumb", "":
|
||||
return "${config.ArmClangThumbCflags}", nil
|
||||
default:
|
||||
return t.toolchainBase.ClangInstructionSetFlags(isa)
|
||||
return t.toolchainBase.InstructionSetFlags(isa)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -311,13 +308,13 @@ func (toolchainArm) LibclangRuntimeLibraryArch() string {
|
||||
|
||||
func armToolchainFactory(arch android.Arch) Toolchain {
|
||||
var fixCortexA8 string
|
||||
toolchainClangCflags := make([]string, 2, 3)
|
||||
toolchainCflags := make([]string, 2, 3)
|
||||
|
||||
toolchainClangCflags[0] = "${config.ArmToolchainClangCflags}"
|
||||
toolchainClangCflags[1] = armClangArchVariantCflagsVar[arch.ArchVariant]
|
||||
toolchainCflags[0] = "${config.ArmToolchainClangCflags}"
|
||||
toolchainCflags[1] = armArchVariantCflagsVar[arch.ArchVariant]
|
||||
|
||||
toolchainClangCflags = append(toolchainClangCflags,
|
||||
variantOrDefault(armClangCpuVariantCflagsVar, arch.CpuVariant))
|
||||
toolchainCflags = append(toolchainCflags,
|
||||
variantOrDefault(armCpuVariantCflagsVar, arch.CpuVariant))
|
||||
|
||||
switch arch.ArchVariant {
|
||||
case "armv7-a-neon":
|
||||
@@ -341,8 +338,8 @@ func armToolchainFactory(arch android.Arch) Toolchain {
|
||||
"${config.ArmLdflags}",
|
||||
fixCortexA8,
|
||||
}, " "),
|
||||
lldflags: "${config.ArmLldflags}",
|
||||
toolchainClangCflags: strings.Join(toolchainClangCflags, " "),
|
||||
lldflags: "${config.ArmLldflags}",
|
||||
toolchainCflags: strings.Join(toolchainCflags, " "),
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -15,9 +15,10 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"android/soong/android"
|
||||
"sort"
|
||||
"strings"
|
||||
|
||||
"android/soong/android"
|
||||
)
|
||||
|
||||
// Cflags that should be filtered out when compiling with clang
|
||||
@@ -80,12 +81,6 @@ var ClangUnknownCflags = sorted([]string{
|
||||
"--enable-stdcall-fixup",
|
||||
})
|
||||
|
||||
// Ldflags that should be filtered out when linking with clang lld
|
||||
var ClangUnknownLldflags = sorted([]string{
|
||||
"-Wl,--fix-cortex-a8",
|
||||
"-Wl,--no-fix-cortex-a8",
|
||||
})
|
||||
|
||||
var ClangLibToolingUnknownCflags = sorted([]string{})
|
||||
|
||||
// List of tidy checks that should be disabled globally. When the compiler is
|
||||
@@ -153,80 +148,6 @@ func init() {
|
||||
"-D__ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__",
|
||||
})
|
||||
|
||||
exportStringListStaticVariable("ClangExtraCppflags", []string{
|
||||
// -Wimplicit-fallthrough is not enabled by -Wall.
|
||||
"-Wimplicit-fallthrough",
|
||||
|
||||
// Enable clang's thread-safety annotations in libcxx.
|
||||
"-D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS",
|
||||
|
||||
// libc++'s math.h has an #include_next outside of system_headers.
|
||||
"-Wno-gnu-include-next",
|
||||
})
|
||||
|
||||
exportStringListStaticVariable("ClangExtraTargetCflags", []string{"-nostdlibinc"})
|
||||
|
||||
exportStringListStaticVariable("ClangExtraNoOverrideCflags", []string{
|
||||
"-Werror=address-of-temporary",
|
||||
// Bug: http://b/29823425 Disable -Wnull-dereference until the
|
||||
// new cases detected by this warning in Clang r271374 are
|
||||
// fixed.
|
||||
//"-Werror=null-dereference",
|
||||
"-Werror=return-type",
|
||||
|
||||
// http://b/72331526 Disable -Wtautological-* until the instances detected by these
|
||||
// new warnings are fixed.
|
||||
"-Wno-tautological-constant-compare",
|
||||
"-Wno-tautological-type-limit-compare",
|
||||
// http://b/145210666
|
||||
"-Wno-reorder-init-list",
|
||||
// http://b/145211066
|
||||
"-Wno-implicit-int-float-conversion",
|
||||
// New warnings to be fixed after clang-r377782.
|
||||
"-Wno-int-in-bool-context", // http://b/148287349
|
||||
"-Wno-sizeof-array-div", // http://b/148815709
|
||||
"-Wno-tautological-overlap-compare", // http://b/148815696
|
||||
// New warnings to be fixed after clang-r383902.
|
||||
"-Wno-deprecated-copy", // http://b/153746672
|
||||
"-Wno-range-loop-construct", // http://b/153747076
|
||||
"-Wno-misleading-indentation", // http://b/153746954
|
||||
"-Wno-zero-as-null-pointer-constant", // http://b/68236239
|
||||
"-Wno-deprecated-anon-enum-enum-conversion", // http://b/153746485
|
||||
"-Wno-deprecated-enum-enum-conversion", // http://b/153746563
|
||||
"-Wno-string-compare", // http://b/153764102
|
||||
"-Wno-enum-enum-conversion", // http://b/154138986
|
||||
"-Wno-enum-float-conversion", // http://b/154255917
|
||||
"-Wno-pessimizing-move", // http://b/154270751
|
||||
// New warnings to be fixed after clang-r399163
|
||||
"-Wno-non-c-typedef-for-linkage", // http://b/161304145
|
||||
// New warnings to be fixed after clang-r407598
|
||||
"-Wno-string-concatenation", // http://b/175068488
|
||||
})
|
||||
|
||||
// Extra cflags for external third-party projects to disable warnings that
|
||||
// are infeasible to fix in all the external projects and their upstream repos.
|
||||
exportStringListStaticVariable("ClangExtraExternalCflags", []string{
|
||||
"-Wno-enum-compare",
|
||||
"-Wno-enum-compare-switch",
|
||||
|
||||
// http://b/72331524 Allow null pointer arithmetic until the instances detected by
|
||||
// this new warning are fixed.
|
||||
"-Wno-null-pointer-arithmetic",
|
||||
|
||||
// Bug: http://b/29823425 Disable -Wnull-dereference until the
|
||||
// new instances detected by this warning are fixed.
|
||||
"-Wno-null-dereference",
|
||||
|
||||
// http://b/145211477
|
||||
"-Wno-pointer-compare",
|
||||
// http://b/145211022
|
||||
"-Wno-xor-used-as-pow",
|
||||
// http://b/145211022
|
||||
"-Wno-final-dtor-non-final-class",
|
||||
|
||||
// http://b/165945989
|
||||
"-Wno-psabi",
|
||||
})
|
||||
}
|
||||
|
||||
func ClangFilterUnknownCflags(cflags []string) []string {
|
||||
@@ -255,26 +176,10 @@ func ClangRewriteTidyChecks(checks []string) []string {
|
||||
return result
|
||||
}
|
||||
|
||||
func ClangFilterUnknownLldflags(lldflags []string) []string {
|
||||
result, _ := android.FilterList(lldflags, ClangUnknownLldflags)
|
||||
return result
|
||||
}
|
||||
|
||||
func ClangLibToolingFilterUnknownCflags(libToolingFlags []string) []string {
|
||||
return android.RemoveListFromList(libToolingFlags, ClangLibToolingUnknownCflags)
|
||||
}
|
||||
|
||||
func inListSorted(s string, list []string) bool {
|
||||
for _, l := range list {
|
||||
if s == l {
|
||||
return true
|
||||
} else if s < l {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func sorted(list []string) []string {
|
||||
sort.Strings(list)
|
||||
return list
|
||||
|
@@ -36,7 +36,6 @@ var (
|
||||
|
||||
// Make paths in deps files relative
|
||||
"-no-canonical-prefixes",
|
||||
"-fno-canonical-system-headers",
|
||||
|
||||
"-DNDEBUG",
|
||||
"-UDEBUG",
|
||||
@@ -61,8 +60,6 @@ var (
|
||||
commonGlobalConlyflags = []string{}
|
||||
|
||||
deviceGlobalCflags = []string{
|
||||
"-fdiagnostics-color",
|
||||
|
||||
"-ffunction-sections",
|
||||
"-fdata-sections",
|
||||
"-fno-short-enums",
|
||||
@@ -78,6 +75,7 @@ var (
|
||||
"-Werror=address",
|
||||
"-Werror=sequence-point",
|
||||
"-Werror=format-security",
|
||||
"-nostdlibinc",
|
||||
}
|
||||
|
||||
deviceGlobalCppflags = []string{
|
||||
@@ -101,7 +99,7 @@ var (
|
||||
"-Wl,--icf=safe",
|
||||
}
|
||||
|
||||
deviceGlobalLldflags = append(ClangFilterUnknownLldflags(deviceGlobalLdflags),
|
||||
deviceGlobalLldflags = append(deviceGlobalLdflags,
|
||||
[]string{
|
||||
"-fuse-ld=lld",
|
||||
}...)
|
||||
@@ -116,6 +114,15 @@ var (
|
||||
|
||||
commonGlobalCppflags = []string{
|
||||
"-Wsign-promo",
|
||||
|
||||
// -Wimplicit-fallthrough is not enabled by -Wall.
|
||||
"-Wimplicit-fallthrough",
|
||||
|
||||
// Enable clang's thread-safety annotations in libcxx.
|
||||
"-D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS",
|
||||
|
||||
// libc++'s math.h has an #include_next outside of system_headers.
|
||||
"-Wno-gnu-include-next",
|
||||
}
|
||||
|
||||
noOverrideGlobalCflags = []string{
|
||||
@@ -133,6 +140,66 @@ var (
|
||||
// http://b/161386391 for -Wno-pointer-to-int-cast
|
||||
"-Wno-pointer-to-int-cast",
|
||||
"-Werror=fortify-source",
|
||||
|
||||
"-Werror=address-of-temporary",
|
||||
// Bug: http://b/29823425 Disable -Wnull-dereference until the
|
||||
// new cases detected by this warning in Clang r271374 are
|
||||
// fixed.
|
||||
//"-Werror=null-dereference",
|
||||
"-Werror=return-type",
|
||||
|
||||
// http://b/72331526 Disable -Wtautological-* until the instances detected by these
|
||||
// new warnings are fixed.
|
||||
"-Wno-tautological-constant-compare",
|
||||
"-Wno-tautological-type-limit-compare",
|
||||
// http://b/145210666
|
||||
"-Wno-reorder-init-list",
|
||||
// http://b/145211066
|
||||
"-Wno-implicit-int-float-conversion",
|
||||
// New warnings to be fixed after clang-r377782.
|
||||
"-Wno-int-in-bool-context", // http://b/148287349
|
||||
"-Wno-sizeof-array-div", // http://b/148815709
|
||||
"-Wno-tautological-overlap-compare", // http://b/148815696
|
||||
// New warnings to be fixed after clang-r383902.
|
||||
"-Wno-deprecated-copy", // http://b/153746672
|
||||
"-Wno-range-loop-construct", // http://b/153747076
|
||||
"-Wno-misleading-indentation", // http://b/153746954
|
||||
"-Wno-zero-as-null-pointer-constant", // http://b/68236239
|
||||
"-Wno-deprecated-anon-enum-enum-conversion", // http://b/153746485
|
||||
"-Wno-deprecated-enum-enum-conversion", // http://b/153746563
|
||||
"-Wno-string-compare", // http://b/153764102
|
||||
"-Wno-enum-enum-conversion", // http://b/154138986
|
||||
"-Wno-enum-float-conversion", // http://b/154255917
|
||||
"-Wno-pessimizing-move", // http://b/154270751
|
||||
// New warnings to be fixed after clang-r399163
|
||||
"-Wno-non-c-typedef-for-linkage", // http://b/161304145
|
||||
// New warnings to be fixed after clang-r407598
|
||||
"-Wno-string-concatenation", // http://b/175068488
|
||||
}
|
||||
|
||||
// Extra cflags for external third-party projects to disable warnings that
|
||||
// are infeasible to fix in all the external projects and their upstream repos.
|
||||
extraExternalCflags = []string{
|
||||
"-Wno-enum-compare",
|
||||
"-Wno-enum-compare-switch",
|
||||
|
||||
// http://b/72331524 Allow null pointer arithmetic until the instances detected by
|
||||
// this new warning are fixed.
|
||||
"-Wno-null-pointer-arithmetic",
|
||||
|
||||
// Bug: http://b/29823425 Disable -Wnull-dereference until the
|
||||
// new instances detected by this warning are fixed.
|
||||
"-Wno-null-dereference",
|
||||
|
||||
// http://b/145211477
|
||||
"-Wno-pointer-compare",
|
||||
// http://b/145211022
|
||||
"-Wno-xor-used-as-pow",
|
||||
// http://b/145211022
|
||||
"-Wno-final-dtor-non-final-class",
|
||||
|
||||
// http://b/165945989
|
||||
"-Wno-psabi",
|
||||
}
|
||||
|
||||
IllegalFlags = []string{
|
||||
@@ -177,7 +244,7 @@ func init() {
|
||||
// Export the static default CommonClangGlobalCflags to Bazel.
|
||||
// TODO(187086342): handle cflags that are set in VariableFuncs.
|
||||
commonClangGlobalCFlags := append(
|
||||
ClangFilterUnknownCflags(commonGlobalCflags),
|
||||
commonGlobalCflags,
|
||||
[]string{
|
||||
"${ClangExtraCflags}",
|
||||
// Default to zero initialization.
|
||||
@@ -187,7 +254,7 @@ func init() {
|
||||
exportedStringListVars.Set("CommonClangGlobalCflags", commonClangGlobalCFlags)
|
||||
|
||||
pctx.VariableFunc("CommonClangGlobalCflags", func(ctx android.PackageVarContext) string {
|
||||
flags := ClangFilterUnknownCflags(commonGlobalCflags)
|
||||
flags := commonGlobalCflags
|
||||
flags = append(flags, "${ClangExtraCflags}")
|
||||
|
||||
// http://b/131390872
|
||||
@@ -208,21 +275,16 @@ func init() {
|
||||
|
||||
// Export the static default DeviceClangGlobalCflags to Bazel.
|
||||
// TODO(187086342): handle cflags that are set in VariableFuncs.
|
||||
deviceClangGlobalCflags := append(ClangFilterUnknownCflags(deviceGlobalCflags), "${ClangExtraTargetCflags}")
|
||||
exportedStringListVars.Set("DeviceClangGlobalCflags", deviceClangGlobalCflags)
|
||||
exportedStringListVars.Set("DeviceClangGlobalCflags", deviceGlobalCflags)
|
||||
|
||||
pctx.VariableFunc("DeviceClangGlobalCflags", func(ctx android.PackageVarContext) string {
|
||||
if ctx.Config().Fuchsia() {
|
||||
return strings.Join(ClangFilterUnknownCflags(deviceGlobalCflags), " ")
|
||||
} else {
|
||||
return strings.Join(deviceClangGlobalCflags, " ")
|
||||
}
|
||||
return strings.Join(deviceGlobalCflags, " ")
|
||||
})
|
||||
|
||||
exportStringListStaticVariable("HostClangGlobalCflags", ClangFilterUnknownCflags(hostGlobalCflags))
|
||||
exportStringListStaticVariable("NoOverrideClangGlobalCflags", append(ClangFilterUnknownCflags(noOverrideGlobalCflags), "${ClangExtraNoOverrideCflags}"))
|
||||
exportStringListStaticVariable("CommonClangGlobalCppflags", append(ClangFilterUnknownCflags(commonGlobalCppflags), "${ClangExtraCppflags}"))
|
||||
exportStringListStaticVariable("ClangExternalCflags", []string{"${ClangExtraExternalCflags}"})
|
||||
exportStringListStaticVariable("HostClangGlobalCflags", hostGlobalCflags)
|
||||
exportStringListStaticVariable("NoOverrideClangGlobalCflags", noOverrideGlobalCflags)
|
||||
exportStringListStaticVariable("CommonClangGlobalCppflags", commonGlobalCppflags)
|
||||
exportStringListStaticVariable("ClangExternalCflags", extraExternalCflags)
|
||||
|
||||
// Everything in these lists is a crime against abstraction and dependency tracking.
|
||||
// Do not add anything to this list.
|
||||
|
@@ -82,14 +82,14 @@ type Toolchain interface {
|
||||
IncludeFlags() string
|
||||
|
||||
ClangTriple() string
|
||||
ToolchainClangCflags() string
|
||||
ToolchainClangLdflags() string
|
||||
ClangAsflags() string
|
||||
ClangCflags() string
|
||||
ClangCppflags() string
|
||||
ClangLdflags() string
|
||||
ClangLldflags() string
|
||||
ClangInstructionSetFlags(string) (string, error)
|
||||
ToolchainCflags() string
|
||||
ToolchainLdflags() string
|
||||
Asflags() string
|
||||
Cflags() string
|
||||
Cppflags() string
|
||||
Ldflags() string
|
||||
Lldflags() string
|
||||
InstructionSetFlags(string) (string, error)
|
||||
|
||||
ndkTriple() string
|
||||
|
||||
@@ -136,18 +136,18 @@ func NDKTriple(toolchain Toolchain) string {
|
||||
return triple
|
||||
}
|
||||
|
||||
func (toolchainBase) ClangInstructionSetFlags(s string) (string, error) {
|
||||
func (toolchainBase) InstructionSetFlags(s string) (string, error) {
|
||||
if s != "" {
|
||||
return "", fmt.Errorf("instruction_set: %s is not a supported instruction set", s)
|
||||
}
|
||||
return "", nil
|
||||
}
|
||||
|
||||
func (toolchainBase) ToolchainClangCflags() string {
|
||||
func (toolchainBase) ToolchainCflags() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (toolchainBase) ToolchainClangLdflags() string {
|
||||
func (toolchainBase) ToolchainLdflags() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -159,7 +159,7 @@ func (toolchainBase) ExecutableSuffix() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (toolchainBase) ClangAsflags() string {
|
||||
func (toolchainBase) Asflags() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
|
@@ -32,8 +32,6 @@ var (
|
||||
"-Wl,--hash-style=gnu",
|
||||
}
|
||||
|
||||
x86_64Lldflags = ClangFilterUnknownLldflags(x86_64Ldflags)
|
||||
|
||||
x86_64ArchVariantCflags = map[string][]string{
|
||||
"": []string{
|
||||
"-march=x86-64",
|
||||
@@ -102,13 +100,11 @@ func init() {
|
||||
pctx.StaticVariable("X86_64ToolchainLdflags", "-m64")
|
||||
|
||||
pctx.StaticVariable("X86_64Ldflags", strings.Join(x86_64Ldflags, " "))
|
||||
pctx.StaticVariable("X86_64Lldflags", strings.Join(x86_64Lldflags, " "))
|
||||
pctx.StaticVariable("X86_64Lldflags", strings.Join(x86_64Ldflags, " "))
|
||||
|
||||
// Clang cflags
|
||||
pctx.StaticVariable("X86_64ClangCflags", strings.Join(ClangFilterUnknownCflags(x86_64Cflags), " "))
|
||||
pctx.StaticVariable("X86_64ClangLdflags", strings.Join(ClangFilterUnknownCflags(x86_64Ldflags), " "))
|
||||
pctx.StaticVariable("X86_64ClangLldflags", strings.Join(ClangFilterUnknownCflags(x86_64Lldflags), " "))
|
||||
pctx.StaticVariable("X86_64ClangCppflags", strings.Join(ClangFilterUnknownCflags(x86_64Cppflags), " "))
|
||||
pctx.StaticVariable("X86_64ClangCflags", strings.Join(x86_64Cflags, " "))
|
||||
pctx.StaticVariable("X86_64ClangCppflags", strings.Join(x86_64Cppflags, " "))
|
||||
|
||||
// Yasm flags
|
||||
pctx.StaticVariable("X86_64YasmFlags", "-f elf64 -m amd64")
|
||||
@@ -118,14 +114,14 @@ func init() {
|
||||
// Architecture variant cflags
|
||||
for variant, cflags := range x86_64ArchVariantCflags {
|
||||
pctx.StaticVariable("X86_64"+variant+"VariantClangCflags",
|
||||
strings.Join(ClangFilterUnknownCflags(cflags), " "))
|
||||
strings.Join(cflags, " "))
|
||||
}
|
||||
}
|
||||
|
||||
type toolchainX86_64 struct {
|
||||
toolchainBionic
|
||||
toolchain64Bit
|
||||
toolchainClangCflags string
|
||||
toolchainCflags string
|
||||
}
|
||||
|
||||
func (t *toolchainX86_64) Name() string {
|
||||
@@ -152,27 +148,27 @@ func (t *toolchainX86_64) ClangTriple() string {
|
||||
return t.GccTriple()
|
||||
}
|
||||
|
||||
func (t *toolchainX86_64) ToolchainClangLdflags() string {
|
||||
func (t *toolchainX86_64) ToolchainLdflags() string {
|
||||
return "${config.X86_64ToolchainLdflags}"
|
||||
}
|
||||
|
||||
func (t *toolchainX86_64) ToolchainClangCflags() string {
|
||||
return t.toolchainClangCflags
|
||||
func (t *toolchainX86_64) ToolchainCflags() string {
|
||||
return t.toolchainCflags
|
||||
}
|
||||
|
||||
func (t *toolchainX86_64) ClangCflags() string {
|
||||
func (t *toolchainX86_64) Cflags() string {
|
||||
return "${config.X86_64ClangCflags}"
|
||||
}
|
||||
|
||||
func (t *toolchainX86_64) ClangCppflags() string {
|
||||
func (t *toolchainX86_64) Cppflags() string {
|
||||
return "${config.X86_64ClangCppflags}"
|
||||
}
|
||||
|
||||
func (t *toolchainX86_64) ClangLdflags() string {
|
||||
func (t *toolchainX86_64) Ldflags() string {
|
||||
return "${config.X86_64Ldflags}"
|
||||
}
|
||||
|
||||
func (t *toolchainX86_64) ClangLldflags() string {
|
||||
func (t *toolchainX86_64) Lldflags() string {
|
||||
return "${config.X86_64Lldflags}"
|
||||
}
|
||||
|
||||
@@ -185,17 +181,17 @@ func (toolchainX86_64) LibclangRuntimeLibraryArch() string {
|
||||
}
|
||||
|
||||
func x86_64ToolchainFactory(arch android.Arch) Toolchain {
|
||||
toolchainClangCflags := []string{
|
||||
toolchainCflags := []string{
|
||||
"${config.X86_64ToolchainCflags}",
|
||||
"${config.X86_64" + arch.ArchVariant + "VariantClangCflags}",
|
||||
}
|
||||
|
||||
for _, feature := range arch.ArchFeatures {
|
||||
toolchainClangCflags = append(toolchainClangCflags, x86_64ArchFeatureCflags[feature]...)
|
||||
toolchainCflags = append(toolchainCflags, x86_64ArchFeatureCflags[feature]...)
|
||||
}
|
||||
|
||||
return &toolchainX86_64{
|
||||
toolchainClangCflags: strings.Join(toolchainClangCflags, " "),
|
||||
toolchainCflags: strings.Join(toolchainCflags, " "),
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -46,18 +46,6 @@ func (t *toolchainFuchsiaX8664) GccVersion() string {
|
||||
return x86_64GccVersion
|
||||
}
|
||||
|
||||
func (t *toolchainFuchsiaX8664) Cflags() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (t *toolchainFuchsiaX8664) Cppflags() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (t *toolchainFuchsiaX8664) Ldflags() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (t *toolchainFuchsiaX8664) IncludeFlags() string {
|
||||
return ""
|
||||
}
|
||||
@@ -66,20 +54,20 @@ func (t *toolchainFuchsiaX8664) ClangTriple() string {
|
||||
return "x86_64-fuchsia-android"
|
||||
}
|
||||
|
||||
func (t *toolchainFuchsiaX8664) ClangCppflags() string {
|
||||
func (t *toolchainFuchsiaX8664) Cppflags() string {
|
||||
return "-Wno-error=deprecated-declarations"
|
||||
}
|
||||
|
||||
func (t *toolchainFuchsiaX8664) ClangLdflags() string {
|
||||
func (t *toolchainFuchsiaX8664) Ldflags() string {
|
||||
return "--target=x86_64-fuchsia --sysroot=" + fuchsiaSysRoot + " -L" + fuchsiaPrebuiltLibsRoot + "/x86_64-fuchsia/lib " + "-Lprebuilts/fuchsia_sdk/arch/x64/dist/"
|
||||
|
||||
}
|
||||
|
||||
func (t *toolchainFuchsiaX8664) ClangLldflags() string {
|
||||
func (t *toolchainFuchsiaX8664) Lldflags() string {
|
||||
return "--target=x86_64-fuchsia --sysroot=" + fuchsiaSysRoot + " -L" + fuchsiaPrebuiltLibsRoot + "/x86_64-fuchsia/lib " + "-Lprebuilts/fuchsia_sdk/arch/x64/dist/"
|
||||
}
|
||||
|
||||
func (t *toolchainFuchsiaX8664) ClangCflags() string {
|
||||
func (t *toolchainFuchsiaX8664) Cflags() string {
|
||||
return "--target=x86_64-fuchsia --sysroot=" + fuchsiaSysRoot + " -I" + fuchsiaSysRoot + "/include"
|
||||
}
|
||||
|
||||
@@ -87,7 +75,7 @@ func (t *toolchainFuchsiaX8664) YasmFlags() string {
|
||||
return "-f elf64 -m amd64"
|
||||
}
|
||||
|
||||
func (t *toolchainFuchsiaX8664) ToolchainClangCflags() string {
|
||||
func (t *toolchainFuchsiaX8664) ToolchainCflags() string {
|
||||
return "-mssse3"
|
||||
}
|
||||
|
||||
|
@@ -26,8 +26,6 @@ import (
|
||||
|
||||
var (
|
||||
darwinCflags = []string{
|
||||
"-fdiagnostics-color",
|
||||
|
||||
"-fPIC",
|
||||
"-funwind-tables",
|
||||
|
||||
@@ -41,6 +39,9 @@ var (
|
||||
"-DMACOSX_DEPLOYMENT_TARGET=${macMinVersion}",
|
||||
|
||||
"-m64",
|
||||
|
||||
"-integrated-as",
|
||||
"-fstack-protector-strong",
|
||||
}
|
||||
|
||||
darwinLdflags = []string{
|
||||
@@ -50,15 +51,6 @@ var (
|
||||
"-m64",
|
||||
}
|
||||
|
||||
darwinClangCflags = append(ClangFilterUnknownCflags(darwinCflags), []string{
|
||||
"-integrated-as",
|
||||
"-fstack-protector-strong",
|
||||
}...)
|
||||
|
||||
darwinClangLdflags = ClangFilterUnknownCflags(darwinLdflags)
|
||||
|
||||
darwinClangLldflags = ClangFilterUnknownLldflags(darwinClangLdflags)
|
||||
|
||||
darwinSupportedSdkVersions = []string{
|
||||
"10.10",
|
||||
"10.11",
|
||||
@@ -115,9 +107,9 @@ func init() {
|
||||
|
||||
pctx.StaticVariable("DarwinGccTriple", "i686-apple-darwin11")
|
||||
|
||||
pctx.StaticVariable("DarwinClangCflags", strings.Join(darwinClangCflags, " "))
|
||||
pctx.StaticVariable("DarwinClangLdflags", strings.Join(darwinClangLdflags, " "))
|
||||
pctx.StaticVariable("DarwinClangLldflags", strings.Join(darwinClangLldflags, " "))
|
||||
pctx.StaticVariable("DarwinClangCflags", strings.Join(darwinCflags, " "))
|
||||
pctx.StaticVariable("DarwinClangLdflags", strings.Join(darwinLdflags, " "))
|
||||
pctx.StaticVariable("DarwinClangLldflags", strings.Join(darwinLdflags, " "))
|
||||
|
||||
pctx.StaticVariable("DarwinYasmFlags", "-f macho -m amd64")
|
||||
}
|
||||
@@ -213,19 +205,19 @@ func (t *toolchainDarwin) ClangTriple() string {
|
||||
return "x86_64-apple-darwin"
|
||||
}
|
||||
|
||||
func (t *toolchainDarwin) ClangCflags() string {
|
||||
func (t *toolchainDarwin) Cflags() string {
|
||||
return "${config.DarwinClangCflags}"
|
||||
}
|
||||
|
||||
func (t *toolchainDarwin) ClangCppflags() string {
|
||||
func (t *toolchainDarwin) Cppflags() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (t *toolchainDarwin) ClangLdflags() string {
|
||||
func (t *toolchainDarwin) Ldflags() string {
|
||||
return "${config.DarwinClangLdflags}"
|
||||
}
|
||||
|
||||
func (t *toolchainDarwin) ClangLldflags() string {
|
||||
func (t *toolchainDarwin) Lldflags() string {
|
||||
return "${config.DarwinClangLldflags}"
|
||||
}
|
||||
|
||||
|
@@ -21,16 +21,14 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
x86Cflags = []string{}
|
||||
|
||||
x86ClangCflags = append(x86Cflags, []string{
|
||||
x86Cflags = []string{
|
||||
"-msse3",
|
||||
|
||||
// -mstackrealign is needed to realign stack in native code
|
||||
// that could be called from JNI, so that movaps instruction
|
||||
// will work on assumed stack aligned local variables.
|
||||
"-mstackrealign",
|
||||
}...)
|
||||
}
|
||||
|
||||
x86Cppflags = []string{}
|
||||
|
||||
@@ -38,8 +36,6 @@ var (
|
||||
"-Wl,--hash-style=gnu",
|
||||
}
|
||||
|
||||
x86Lldflags = ClangFilterUnknownLldflags(x86Ldflags)
|
||||
|
||||
x86ArchVariantCflags = map[string][]string{
|
||||
"": []string{
|
||||
"-march=prescott",
|
||||
@@ -49,35 +45,27 @@ var (
|
||||
},
|
||||
"atom": []string{
|
||||
"-march=atom",
|
||||
"-mfpmath=sse",
|
||||
},
|
||||
"broadwell": []string{
|
||||
"-march=broadwell",
|
||||
"-mfpmath=sse",
|
||||
},
|
||||
"haswell": []string{
|
||||
"-march=core-avx2",
|
||||
"-mfpmath=sse",
|
||||
},
|
||||
"ivybridge": []string{
|
||||
"-march=core-avx-i",
|
||||
"-mfpmath=sse",
|
||||
},
|
||||
"sandybridge": []string{
|
||||
"-march=corei7",
|
||||
"-mfpmath=sse",
|
||||
},
|
||||
"silvermont": []string{
|
||||
"-march=slm",
|
||||
"-mfpmath=sse",
|
||||
},
|
||||
"skylake": []string{
|
||||
"-march=skylake",
|
||||
"-mfpmath=sse",
|
||||
},
|
||||
"stoneyridge": []string{
|
||||
"-march=bdver4",
|
||||
"-mfpmath=sse",
|
||||
},
|
||||
}
|
||||
|
||||
@@ -113,13 +101,12 @@ func init() {
|
||||
pctx.StaticVariable("X86ToolchainLdflags", "-m32")
|
||||
|
||||
pctx.StaticVariable("X86Ldflags", strings.Join(x86Ldflags, " "))
|
||||
pctx.StaticVariable("X86Lldflags", strings.Join(x86Lldflags, " "))
|
||||
pctx.StaticVariable("X86Lldflags", strings.Join(x86Ldflags, " "))
|
||||
|
||||
// Clang cflags
|
||||
pctx.StaticVariable("X86ClangCflags", strings.Join(ClangFilterUnknownCflags(x86ClangCflags), " "))
|
||||
pctx.StaticVariable("X86ClangLdflags", strings.Join(ClangFilterUnknownCflags(x86Ldflags), " "))
|
||||
pctx.StaticVariable("X86ClangLldflags", strings.Join(ClangFilterUnknownCflags(x86Lldflags), " "))
|
||||
pctx.StaticVariable("X86ClangCppflags", strings.Join(ClangFilterUnknownCflags(x86Cppflags), " "))
|
||||
pctx.StaticVariable("X86ClangLldflags", strings.Join(x86Ldflags, " "))
|
||||
pctx.StaticVariable("X86ClangCflags", strings.Join(x86Cflags, " "))
|
||||
pctx.StaticVariable("X86ClangCppflags", strings.Join(x86Cppflags, " "))
|
||||
|
||||
// Yasm flags
|
||||
pctx.StaticVariable("X86YasmFlags", "-f elf32 -m x86")
|
||||
@@ -129,14 +116,14 @@ func init() {
|
||||
// Architecture variant cflags
|
||||
for variant, cflags := range x86ArchVariantCflags {
|
||||
pctx.StaticVariable("X86"+variant+"VariantClangCflags",
|
||||
strings.Join(ClangFilterUnknownCflags(cflags), " "))
|
||||
strings.Join(cflags, " "))
|
||||
}
|
||||
}
|
||||
|
||||
type toolchainX86 struct {
|
||||
toolchainBionic
|
||||
toolchain32Bit
|
||||
toolchainClangCflags string
|
||||
toolchainCflags string
|
||||
}
|
||||
|
||||
func (t *toolchainX86) Name() string {
|
||||
@@ -163,27 +150,27 @@ func (t *toolchainX86) ClangTriple() string {
|
||||
return "i686-linux-android"
|
||||
}
|
||||
|
||||
func (t *toolchainX86) ToolchainClangLdflags() string {
|
||||
func (t *toolchainX86) ToolchainLdflags() string {
|
||||
return "${config.X86ToolchainLdflags}"
|
||||
}
|
||||
|
||||
func (t *toolchainX86) ToolchainClangCflags() string {
|
||||
return t.toolchainClangCflags
|
||||
func (t *toolchainX86) ToolchainCflags() string {
|
||||
return t.toolchainCflags
|
||||
}
|
||||
|
||||
func (t *toolchainX86) ClangCflags() string {
|
||||
func (t *toolchainX86) Cflags() string {
|
||||
return "${config.X86ClangCflags}"
|
||||
}
|
||||
|
||||
func (t *toolchainX86) ClangCppflags() string {
|
||||
func (t *toolchainX86) Cppflags() string {
|
||||
return "${config.X86ClangCppflags}"
|
||||
}
|
||||
|
||||
func (t *toolchainX86) ClangLdflags() string {
|
||||
func (t *toolchainX86) Ldflags() string {
|
||||
return "${config.X86Ldflags}"
|
||||
}
|
||||
|
||||
func (t *toolchainX86) ClangLldflags() string {
|
||||
func (t *toolchainX86) Lldflags() string {
|
||||
return "${config.X86Lldflags}"
|
||||
}
|
||||
|
||||
@@ -196,17 +183,17 @@ func (toolchainX86) LibclangRuntimeLibraryArch() string {
|
||||
}
|
||||
|
||||
func x86ToolchainFactory(arch android.Arch) Toolchain {
|
||||
toolchainClangCflags := []string{
|
||||
toolchainCflags := []string{
|
||||
"${config.X86ToolchainCflags}",
|
||||
"${config.X86" + arch.ArchVariant + "VariantClangCflags}",
|
||||
}
|
||||
|
||||
for _, feature := range arch.ArchFeatures {
|
||||
toolchainClangCflags = append(toolchainClangCflags, x86ArchFeatureCflags[feature]...)
|
||||
toolchainCflags = append(toolchainCflags, x86ArchFeatureCflags[feature]...)
|
||||
}
|
||||
|
||||
return &toolchainX86{
|
||||
toolchainClangCflags: strings.Join(toolchainClangCflags, " "),
|
||||
toolchainCflags: strings.Join(toolchainCflags, " "),
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -21,9 +21,7 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
linuxBionicCflags = ClangFilterUnknownCflags([]string{
|
||||
"-fdiagnostics-color",
|
||||
|
||||
linuxBionicCflags = []string{
|
||||
"-Wa,--noexecstack",
|
||||
|
||||
"-fPIC",
|
||||
@@ -34,21 +32,17 @@ var (
|
||||
|
||||
// From x86_64_device
|
||||
"-ffunction-sections",
|
||||
"-finline-functions",
|
||||
"-finline-limit=300",
|
||||
"-fno-short-enums",
|
||||
"-funswitch-loops",
|
||||
"-funwind-tables",
|
||||
"-fno-canonical-system-headers",
|
||||
|
||||
// Tell clang where the gcc toolchain is
|
||||
"--gcc-toolchain=${LinuxBionicGccRoot}",
|
||||
|
||||
// This is normally in ClangExtraTargetCflags, but this is considered host
|
||||
"-nostdlibinc",
|
||||
})
|
||||
}
|
||||
|
||||
linuxBionicLdflags = ClangFilterUnknownCflags([]string{
|
||||
linuxBionicLdflags = []string{
|
||||
"-Wl,-z,noexecstack",
|
||||
"-Wl,-z,relro",
|
||||
"-Wl,-z,now",
|
||||
@@ -60,9 +54,7 @@ var (
|
||||
|
||||
// Use the device gcc toolchain
|
||||
"--gcc-toolchain=${LinuxBionicGccRoot}",
|
||||
})
|
||||
|
||||
linuxBionicLldflags = ClangFilterUnknownLldflags(linuxBionicLdflags)
|
||||
}
|
||||
|
||||
// Embed the linker into host bionic binaries. This is needed to support host bionic,
|
||||
// as the linux kernel requires that the ELF interpreter referenced by PT_INTERP be
|
||||
@@ -78,7 +70,7 @@ var (
|
||||
func init() {
|
||||
pctx.StaticVariable("LinuxBionicCflags", strings.Join(linuxBionicCflags, " "))
|
||||
pctx.StaticVariable("LinuxBionicLdflags", strings.Join(linuxBionicLdflags, " "))
|
||||
pctx.StaticVariable("LinuxBionicLldflags", strings.Join(linuxBionicLldflags, " "))
|
||||
pctx.StaticVariable("LinuxBionicLldflags", strings.Join(linuxBionicLdflags, " "))
|
||||
|
||||
// Use the device gcc toolchain for now
|
||||
pctx.StaticVariable("LinuxBionicGccRoot", "${X86_64GccRoot}")
|
||||
@@ -114,29 +106,29 @@ func (t *toolchainLinuxBionic) ClangTriple() string {
|
||||
return "x86_64-linux-android"
|
||||
}
|
||||
|
||||
func (t *toolchainLinuxBionic) ClangCflags() string {
|
||||
func (t *toolchainLinuxBionic) Cflags() string {
|
||||
return "${config.LinuxBionicCflags}"
|
||||
}
|
||||
|
||||
func (t *toolchainLinuxBionic) ClangCppflags() string {
|
||||
func (t *toolchainLinuxBionic) Cppflags() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (t *toolchainLinuxBionic) ClangLdflags() string {
|
||||
func (t *toolchainLinuxBionic) Ldflags() string {
|
||||
return "${config.LinuxBionicLdflags}"
|
||||
}
|
||||
|
||||
func (t *toolchainLinuxBionic) ClangLldflags() string {
|
||||
func (t *toolchainLinuxBionic) Lldflags() string {
|
||||
return "${config.LinuxBionicLldflags}"
|
||||
}
|
||||
|
||||
func (t *toolchainLinuxBionic) ToolchainClangCflags() string {
|
||||
func (t *toolchainLinuxBionic) ToolchainCflags() string {
|
||||
return "-m64 -march=x86-64" +
|
||||
// TODO: We're not really android, but we don't have a triple yet b/31393676
|
||||
" -U__ANDROID__"
|
||||
}
|
||||
|
||||
func (t *toolchainLinuxBionic) ToolchainClangLdflags() string {
|
||||
func (t *toolchainLinuxBionic) ToolchainLdflags() string {
|
||||
return "-m64"
|
||||
}
|
||||
|
||||
|
@@ -22,8 +22,6 @@ import (
|
||||
|
||||
var (
|
||||
linuxCflags = []string{
|
||||
"-fdiagnostics-color",
|
||||
|
||||
"-Wa,--noexecstack",
|
||||
|
||||
"-fPIC",
|
||||
@@ -36,6 +34,10 @@ var (
|
||||
//See bug 12708004.
|
||||
"-D__STDC_FORMAT_MACROS",
|
||||
"-D__STDC_CONSTANT_MACROS",
|
||||
|
||||
"--gcc-toolchain=${LinuxGccRoot}",
|
||||
"--sysroot ${LinuxGccRoot}/sysroot",
|
||||
"-fstack-protector-strong",
|
||||
}
|
||||
|
||||
linuxLdflags = []string{
|
||||
@@ -43,12 +45,14 @@ var (
|
||||
"-Wl,-z,relro",
|
||||
"-Wl,-z,now",
|
||||
"-Wl,--no-undefined-version",
|
||||
|
||||
"--gcc-toolchain=${LinuxGccRoot}",
|
||||
"--sysroot ${LinuxGccRoot}/sysroot",
|
||||
}
|
||||
|
||||
// Extended cflags
|
||||
linuxX86Cflags = []string{
|
||||
"-msse3",
|
||||
"-mfpmath=sse",
|
||||
"-m32",
|
||||
"-march=prescott",
|
||||
"-D_FILE_OFFSET_BITS=64",
|
||||
@@ -61,40 +65,17 @@ var (
|
||||
|
||||
linuxX86Ldflags = []string{
|
||||
"-m32",
|
||||
"-B${LinuxGccRoot}/lib/gcc/${LinuxGccTriple}/${LinuxGccVersion}/32",
|
||||
"-L${LinuxGccRoot}/lib/gcc/${LinuxGccTriple}/${LinuxGccVersion}/32",
|
||||
"-L${LinuxGccRoot}/${LinuxGccTriple}/lib32",
|
||||
}
|
||||
|
||||
linuxX8664Ldflags = []string{
|
||||
"-m64",
|
||||
}
|
||||
|
||||
linuxClangCflags = append(ClangFilterUnknownCflags(linuxCflags), []string{
|
||||
"--gcc-toolchain=${LinuxGccRoot}",
|
||||
"--sysroot ${LinuxGccRoot}/sysroot",
|
||||
"-fstack-protector-strong",
|
||||
}...)
|
||||
|
||||
linuxClangLdflags = append(ClangFilterUnknownCflags(linuxLdflags), []string{
|
||||
"--gcc-toolchain=${LinuxGccRoot}",
|
||||
"--sysroot ${LinuxGccRoot}/sysroot",
|
||||
}...)
|
||||
|
||||
linuxClangLldflags = ClangFilterUnknownLldflags(linuxClangLdflags)
|
||||
|
||||
linuxX86ClangLdflags = append(ClangFilterUnknownCflags(linuxX86Ldflags), []string{
|
||||
"-B${LinuxGccRoot}/lib/gcc/${LinuxGccTriple}/${LinuxGccVersion}/32",
|
||||
"-L${LinuxGccRoot}/lib/gcc/${LinuxGccTriple}/${LinuxGccVersion}/32",
|
||||
"-L${LinuxGccRoot}/${LinuxGccTriple}/lib32",
|
||||
}...)
|
||||
|
||||
linuxX86ClangLldflags = ClangFilterUnknownLldflags(linuxX86ClangLdflags)
|
||||
|
||||
linuxX8664ClangLdflags = append(ClangFilterUnknownCflags(linuxX8664Ldflags), []string{
|
||||
"-B${LinuxGccRoot}/lib/gcc/${LinuxGccTriple}/${LinuxGccVersion}",
|
||||
"-L${LinuxGccRoot}/lib/gcc/${LinuxGccTriple}/${LinuxGccVersion}",
|
||||
"-L${LinuxGccRoot}/${LinuxGccTriple}/lib64",
|
||||
}...)
|
||||
|
||||
linuxX8664ClangLldflags = ClangFilterUnknownLldflags(linuxX8664ClangLdflags)
|
||||
}
|
||||
|
||||
linuxAvailableLibraries = addPrefix([]string{
|
||||
"c",
|
||||
@@ -130,18 +111,16 @@ func init() {
|
||||
|
||||
pctx.StaticVariable("LinuxGccTriple", "x86_64-linux")
|
||||
|
||||
pctx.StaticVariable("LinuxClangCflags", strings.Join(linuxClangCflags, " "))
|
||||
pctx.StaticVariable("LinuxClangLdflags", strings.Join(linuxClangLdflags, " "))
|
||||
pctx.StaticVariable("LinuxClangLldflags", strings.Join(linuxClangLldflags, " "))
|
||||
pctx.StaticVariable("LinuxClangCflags", strings.Join(linuxCflags, " "))
|
||||
pctx.StaticVariable("LinuxClangLdflags", strings.Join(linuxLdflags, " "))
|
||||
pctx.StaticVariable("LinuxClangLldflags", strings.Join(linuxLdflags, " "))
|
||||
|
||||
pctx.StaticVariable("LinuxX86ClangCflags",
|
||||
strings.Join(ClangFilterUnknownCflags(linuxX86Cflags), " "))
|
||||
pctx.StaticVariable("LinuxX8664ClangCflags",
|
||||
strings.Join(ClangFilterUnknownCflags(linuxX8664Cflags), " "))
|
||||
pctx.StaticVariable("LinuxX86ClangLdflags", strings.Join(linuxX86ClangLdflags, " "))
|
||||
pctx.StaticVariable("LinuxX86ClangLldflags", strings.Join(linuxX86ClangLldflags, " "))
|
||||
pctx.StaticVariable("LinuxX8664ClangLdflags", strings.Join(linuxX8664ClangLdflags, " "))
|
||||
pctx.StaticVariable("LinuxX8664ClangLldflags", strings.Join(linuxX8664ClangLldflags, " "))
|
||||
pctx.StaticVariable("LinuxX86ClangCflags", strings.Join(linuxX86Cflags, " "))
|
||||
pctx.StaticVariable("LinuxX8664ClangCflags", strings.Join(linuxX8664Cflags, " "))
|
||||
pctx.StaticVariable("LinuxX86ClangLdflags", strings.Join(linuxX86Ldflags, " "))
|
||||
pctx.StaticVariable("LinuxX86ClangLldflags", strings.Join(linuxX86Ldflags, " "))
|
||||
pctx.StaticVariable("LinuxX8664ClangLdflags", strings.Join(linuxX8664Ldflags, " "))
|
||||
pctx.StaticVariable("LinuxX8664ClangLldflags", strings.Join(linuxX8664Ldflags, " "))
|
||||
// Yasm flags
|
||||
pctx.StaticVariable("LinuxX86YasmFlags", "-f elf32 -m x86")
|
||||
pctx.StaticVariable("LinuxX8664YasmFlags", "-f elf64 -m amd64")
|
||||
@@ -189,11 +168,11 @@ func (t *toolchainLinuxX86) ClangTriple() string {
|
||||
return "i686-linux-gnu"
|
||||
}
|
||||
|
||||
func (t *toolchainLinuxX86) ClangCflags() string {
|
||||
func (t *toolchainLinuxX86) Cflags() string {
|
||||
return "${config.LinuxClangCflags} ${config.LinuxX86ClangCflags}"
|
||||
}
|
||||
|
||||
func (t *toolchainLinuxX86) ClangCppflags() string {
|
||||
func (t *toolchainLinuxX86) Cppflags() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -201,27 +180,27 @@ func (t *toolchainLinuxX8664) ClangTriple() string {
|
||||
return "x86_64-linux-gnu"
|
||||
}
|
||||
|
||||
func (t *toolchainLinuxX8664) ClangCflags() string {
|
||||
func (t *toolchainLinuxX8664) Cflags() string {
|
||||
return "${config.LinuxClangCflags} ${config.LinuxX8664ClangCflags}"
|
||||
}
|
||||
|
||||
func (t *toolchainLinuxX8664) ClangCppflags() string {
|
||||
func (t *toolchainLinuxX8664) Cppflags() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (t *toolchainLinuxX86) ClangLdflags() string {
|
||||
func (t *toolchainLinuxX86) Ldflags() string {
|
||||
return "${config.LinuxClangLdflags} ${config.LinuxX86ClangLdflags}"
|
||||
}
|
||||
|
||||
func (t *toolchainLinuxX86) ClangLldflags() string {
|
||||
func (t *toolchainLinuxX86) Lldflags() string {
|
||||
return "${config.LinuxClangLldflags} ${config.LinuxX86ClangLldflags}"
|
||||
}
|
||||
|
||||
func (t *toolchainLinuxX8664) ClangLdflags() string {
|
||||
func (t *toolchainLinuxX8664) Ldflags() string {
|
||||
return "${config.LinuxClangLdflags} ${config.LinuxX8664ClangLdflags}"
|
||||
}
|
||||
|
||||
func (t *toolchainLinuxX8664) ClangLldflags() string {
|
||||
func (t *toolchainLinuxX8664) Lldflags() string {
|
||||
return "${config.LinuxClangLldflags} ${config.LinuxX8664ClangLldflags}"
|
||||
}
|
||||
|
||||
|
@@ -44,32 +44,28 @@ var (
|
||||
|
||||
"--sysroot ${WindowsGccRoot}/${WindowsGccTriple}",
|
||||
}
|
||||
windowsClangCflags = append(ClangFilterUnknownCflags(windowsCflags), []string{}...)
|
||||
|
||||
windowsIncludeFlags = []string{
|
||||
"-isystem ${WindowsGccRoot}/${WindowsGccTriple}/include",
|
||||
}
|
||||
|
||||
windowsClangCppflags = []string{}
|
||||
windowsCppflags = []string{}
|
||||
|
||||
windowsX86ClangCppflags = []string{
|
||||
windowsX86Cppflags = []string{
|
||||
// Use SjLj exceptions for 32-bit. libgcc_eh implements SjLj
|
||||
// exception model for 32-bit.
|
||||
"-fsjlj-exceptions",
|
||||
}
|
||||
|
||||
windowsX8664ClangCppflags = []string{}
|
||||
windowsX8664Cppflags = []string{}
|
||||
|
||||
windowsLdflags = []string{
|
||||
"--enable-stdcall-fixup",
|
||||
"-Wl,--dynamicbase",
|
||||
"-Wl,--nxcompat",
|
||||
}
|
||||
windowsLldflags = []string{
|
||||
windowsLldflags = append(windowsLdflags, []string{
|
||||
"-Wl,--Xlink=-Brepro", // Enable deterministic build
|
||||
}
|
||||
windowsClangLdflags = append(ClangFilterUnknownCflags(windowsLdflags), []string{}...)
|
||||
windowsClangLldflags = append(ClangFilterUnknownLldflags(windowsClangLdflags), windowsLldflags...)
|
||||
}...)
|
||||
|
||||
windowsX86Cflags = []string{
|
||||
"-m32",
|
||||
@@ -84,28 +80,24 @@ var (
|
||||
"-Wl,--large-address-aware",
|
||||
"-L${WindowsGccRoot}/${WindowsGccTriple}/lib32",
|
||||
"-static-libgcc",
|
||||
}
|
||||
windowsX86ClangLdflags = append(ClangFilterUnknownCflags(windowsX86Ldflags), []string{
|
||||
|
||||
"-B${WindowsGccRoot}/${WindowsGccTriple}/bin",
|
||||
"-B${WindowsGccRoot}/lib/gcc/${WindowsGccTriple}/4.8.3/32",
|
||||
"-L${WindowsGccRoot}/lib/gcc/${WindowsGccTriple}/4.8.3/32",
|
||||
"-B${WindowsGccRoot}/${WindowsGccTriple}/lib32",
|
||||
}...)
|
||||
windowsX86ClangLldflags = ClangFilterUnknownLldflags(windowsX86ClangLdflags)
|
||||
}
|
||||
|
||||
windowsX8664Ldflags = []string{
|
||||
"-m64",
|
||||
"-L${WindowsGccRoot}/${WindowsGccTriple}/lib64",
|
||||
"-Wl,--high-entropy-va",
|
||||
"-static-libgcc",
|
||||
}
|
||||
windowsX8664ClangLdflags = append(ClangFilterUnknownCflags(windowsX8664Ldflags), []string{
|
||||
|
||||
"-B${WindowsGccRoot}/${WindowsGccTriple}/bin",
|
||||
"-B${WindowsGccRoot}/lib/gcc/${WindowsGccTriple}/4.8.3",
|
||||
"-L${WindowsGccRoot}/lib/gcc/${WindowsGccTriple}/4.8.3",
|
||||
"-B${WindowsGccRoot}/${WindowsGccTriple}/lib64",
|
||||
}...)
|
||||
windowsX8664ClangLldflags = ClangFilterUnknownLldflags(windowsX8664ClangLdflags)
|
||||
}
|
||||
|
||||
windowsAvailableLibraries = addPrefix([]string{
|
||||
"gdi32",
|
||||
@@ -138,21 +130,19 @@ func init() {
|
||||
|
||||
pctx.StaticVariable("WindowsGccTriple", "x86_64-w64-mingw32")
|
||||
|
||||
pctx.StaticVariable("WindowsClangCflags", strings.Join(windowsClangCflags, " "))
|
||||
pctx.StaticVariable("WindowsClangLdflags", strings.Join(windowsClangLdflags, " "))
|
||||
pctx.StaticVariable("WindowsClangLldflags", strings.Join(windowsClangLldflags, " "))
|
||||
pctx.StaticVariable("WindowsClangCppflags", strings.Join(windowsClangCppflags, " "))
|
||||
pctx.StaticVariable("WindowsClangCflags", strings.Join(windowsCflags, " "))
|
||||
pctx.StaticVariable("WindowsClangLdflags", strings.Join(windowsLdflags, " "))
|
||||
pctx.StaticVariable("WindowsClangLldflags", strings.Join(windowsLldflags, " "))
|
||||
pctx.StaticVariable("WindowsClangCppflags", strings.Join(windowsCppflags, " "))
|
||||
|
||||
pctx.StaticVariable("WindowsX86ClangCflags",
|
||||
strings.Join(ClangFilterUnknownCflags(windowsX86Cflags), " "))
|
||||
pctx.StaticVariable("WindowsX8664ClangCflags",
|
||||
strings.Join(ClangFilterUnknownCflags(windowsX8664Cflags), " "))
|
||||
pctx.StaticVariable("WindowsX86ClangLdflags", strings.Join(windowsX86ClangLdflags, " "))
|
||||
pctx.StaticVariable("WindowsX86ClangLldflags", strings.Join(windowsX86ClangLldflags, " "))
|
||||
pctx.StaticVariable("WindowsX8664ClangLdflags", strings.Join(windowsX8664ClangLdflags, " "))
|
||||
pctx.StaticVariable("WindowsX8664ClangLldflags", strings.Join(windowsX8664ClangLldflags, " "))
|
||||
pctx.StaticVariable("WindowsX86ClangCppflags", strings.Join(windowsX86ClangCppflags, " "))
|
||||
pctx.StaticVariable("WindowsX8664ClangCppflags", strings.Join(windowsX8664ClangCppflags, " "))
|
||||
pctx.StaticVariable("WindowsX86ClangCflags", strings.Join(windowsX86Cflags, " "))
|
||||
pctx.StaticVariable("WindowsX8664ClangCflags", strings.Join(windowsX8664Cflags, " "))
|
||||
pctx.StaticVariable("WindowsX86ClangLdflags", strings.Join(windowsX86Ldflags, " "))
|
||||
pctx.StaticVariable("WindowsX86ClangLldflags", strings.Join(windowsX86Ldflags, " "))
|
||||
pctx.StaticVariable("WindowsX8664ClangLdflags", strings.Join(windowsX8664Ldflags, " "))
|
||||
pctx.StaticVariable("WindowsX8664ClangLldflags", strings.Join(windowsX8664Ldflags, " "))
|
||||
pctx.StaticVariable("WindowsX86ClangCppflags", strings.Join(windowsX86Cppflags, " "))
|
||||
pctx.StaticVariable("WindowsX8664ClangCppflags", strings.Join(windowsX8664Cppflags, " "))
|
||||
|
||||
pctx.StaticVariable("WindowsIncludeFlags", strings.Join(windowsIncludeFlags, " "))
|
||||
// Yasm flags
|
||||
@@ -214,35 +204,35 @@ func (t *toolchainWindowsX8664) ClangTriple() string {
|
||||
return "x86_64-pc-windows-gnu"
|
||||
}
|
||||
|
||||
func (t *toolchainWindowsX86) ClangCflags() string {
|
||||
func (t *toolchainWindowsX86) Cflags() string {
|
||||
return "${config.WindowsClangCflags} ${config.WindowsX86ClangCflags}"
|
||||
}
|
||||
|
||||
func (t *toolchainWindowsX8664) ClangCflags() string {
|
||||
func (t *toolchainWindowsX8664) Cflags() string {
|
||||
return "${config.WindowsClangCflags} ${config.WindowsX8664ClangCflags}"
|
||||
}
|
||||
|
||||
func (t *toolchainWindowsX86) ClangCppflags() string {
|
||||
func (t *toolchainWindowsX86) Cppflags() string {
|
||||
return "${config.WindowsClangCppflags} ${config.WindowsX86ClangCppflags}"
|
||||
}
|
||||
|
||||
func (t *toolchainWindowsX8664) ClangCppflags() string {
|
||||
func (t *toolchainWindowsX8664) Cppflags() string {
|
||||
return "${config.WindowsClangCppflags} ${config.WindowsX8664ClangCppflags}"
|
||||
}
|
||||
|
||||
func (t *toolchainWindowsX86) ClangLdflags() string {
|
||||
func (t *toolchainWindowsX86) Ldflags() string {
|
||||
return "${config.WindowsClangLdflags} ${config.WindowsX86ClangLdflags}"
|
||||
}
|
||||
|
||||
func (t *toolchainWindowsX86) ClangLldflags() string {
|
||||
func (t *toolchainWindowsX86) Lldflags() string {
|
||||
return "${config.WindowsClangLldflags} ${config.WindowsX86ClangLldflags}"
|
||||
}
|
||||
|
||||
func (t *toolchainWindowsX8664) ClangLdflags() string {
|
||||
func (t *toolchainWindowsX8664) Ldflags() string {
|
||||
return "${config.WindowsClangLdflags} ${config.WindowsX8664ClangLdflags}"
|
||||
}
|
||||
|
||||
func (t *toolchainWindowsX8664) ClangLldflags() string {
|
||||
func (t *toolchainWindowsX8664) Lldflags() string {
|
||||
return "${config.WindowsClangLldflags} ${config.WindowsX8664ClangLldflags}"
|
||||
}
|
||||
|
||||
|
@@ -479,9 +479,9 @@ func (linker *baseLinker) linkerFlags(ctx ModuleContext, flags Flags) Flags {
|
||||
}
|
||||
|
||||
if linker.useClangLld(ctx) {
|
||||
flags.Global.LdFlags = append(flags.Global.LdFlags, toolchain.ClangLldflags())
|
||||
flags.Global.LdFlags = append(flags.Global.LdFlags, toolchain.Lldflags())
|
||||
} else {
|
||||
flags.Global.LdFlags = append(flags.Global.LdFlags, toolchain.ClangLdflags())
|
||||
flags.Global.LdFlags = append(flags.Global.LdFlags, toolchain.Ldflags())
|
||||
}
|
||||
|
||||
if !ctx.toolchain().Bionic() && !ctx.Fuchsia() {
|
||||
@@ -535,7 +535,7 @@ func (linker *baseLinker) linkerFlags(ctx ModuleContext, flags Flags) Flags {
|
||||
flags.Global.LdFlags = append(flags.Global.LdFlags, "-Wl,--hash-style=both")
|
||||
}
|
||||
|
||||
flags.Global.LdFlags = append(flags.Global.LdFlags, toolchain.ToolchainClangLdflags())
|
||||
flags.Global.LdFlags = append(flags.Global.LdFlags, toolchain.ToolchainLdflags())
|
||||
|
||||
if Bool(linker.Properties.Group_static_libs) {
|
||||
flags.GroupStaticLibs = true
|
||||
|
@@ -212,13 +212,13 @@ func makeVarsToolchain(ctx android.MakeVarsContext, secondPrefix string,
|
||||
ctx.StrictRaw(makePrefix+"C_SYSTEM_INCLUDES", strings.Join(systemIncludes, " "))
|
||||
|
||||
if target.Arch.ArchType == android.Arm {
|
||||
flags, err := toolchain.ClangInstructionSetFlags("arm")
|
||||
flags, err := toolchain.InstructionSetFlags("arm")
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
ctx.Strict(makePrefix+"arm_CFLAGS", flags)
|
||||
|
||||
flags, err = toolchain.ClangInstructionSetFlags("thumb")
|
||||
flags, err = toolchain.InstructionSetFlags("thumb")
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
@@ -230,29 +230,29 @@ func makeVarsToolchain(ctx android.MakeVarsContext, secondPrefix string,
|
||||
|
||||
ctx.Strict(clangPrefix+"TRIPLE", toolchain.ClangTriple())
|
||||
ctx.Strict(clangPrefix+"GLOBAL_CFLAGS", strings.Join([]string{
|
||||
toolchain.ClangCflags(),
|
||||
toolchain.Cflags(),
|
||||
"${config.CommonClangGlobalCflags}",
|
||||
fmt.Sprintf("${config.%sClangGlobalCflags}", hod),
|
||||
toolchain.ToolchainClangCflags(),
|
||||
toolchain.ToolchainCflags(),
|
||||
clangExtras,
|
||||
productExtraCflags,
|
||||
}, " "))
|
||||
ctx.Strict(clangPrefix+"GLOBAL_CPPFLAGS", strings.Join([]string{
|
||||
"${config.CommonClangGlobalCppflags}",
|
||||
fmt.Sprintf("${config.%sGlobalCppflags}", hod),
|
||||
toolchain.ClangCppflags(),
|
||||
toolchain.Cppflags(),
|
||||
}, " "))
|
||||
ctx.Strict(clangPrefix+"GLOBAL_LDFLAGS", strings.Join([]string{
|
||||
fmt.Sprintf("${config.%sGlobalLdflags}", hod),
|
||||
toolchain.ClangLdflags(),
|
||||
toolchain.ToolchainClangLdflags(),
|
||||
toolchain.Ldflags(),
|
||||
toolchain.ToolchainLdflags(),
|
||||
productExtraLdflags,
|
||||
clangExtras,
|
||||
}, " "))
|
||||
ctx.Strict(clangPrefix+"GLOBAL_LLDFLAGS", strings.Join([]string{
|
||||
fmt.Sprintf("${config.%sGlobalLldflags}", hod),
|
||||
toolchain.ClangLldflags(),
|
||||
toolchain.ToolchainClangLdflags(),
|
||||
toolchain.Lldflags(),
|
||||
toolchain.ToolchainLdflags(),
|
||||
productExtraLdflags,
|
||||
clangExtras,
|
||||
}, " "))
|
||||
|
@@ -231,7 +231,7 @@ func (object *objectLinker) linkerDeps(ctx DepsContext, deps Deps) Deps {
|
||||
}
|
||||
|
||||
func (object *objectLinker) linkerFlags(ctx ModuleContext, flags Flags) Flags {
|
||||
flags.Global.LdFlags = append(flags.Global.LdFlags, ctx.toolchain().ToolchainClangLdflags())
|
||||
flags.Global.LdFlags = append(flags.Global.LdFlags, ctx.toolchain().ToolchainLdflags())
|
||||
|
||||
if lds := android.OptionalPathForModuleSrc(ctx, object.Properties.Linker_script); lds.Valid() {
|
||||
flags.Local.LdFlags = append(flags.Local.LdFlags, "-Wl,-T,"+lds.String())
|
||||
|
@@ -144,8 +144,8 @@ func (b *bindgenDecorator) GenerateSource(ctx ModuleContext, deps PathDeps) andr
|
||||
|
||||
// Toolchain clang flags
|
||||
cflags = append(cflags, "-target "+ccToolchain.ClangTriple())
|
||||
cflags = append(cflags, strings.ReplaceAll(ccToolchain.ClangCflags(), "${config.", "${cc_config."))
|
||||
cflags = append(cflags, strings.ReplaceAll(ccToolchain.ToolchainClangCflags(), "${config.", "${cc_config."))
|
||||
cflags = append(cflags, strings.ReplaceAll(ccToolchain.Cflags(), "${config.", "${cc_config."))
|
||||
cflags = append(cflags, strings.ReplaceAll(ccToolchain.ToolchainCflags(), "${config.", "${cc_config."))
|
||||
|
||||
// Dependency clang flags and include paths
|
||||
cflags = append(cflags, deps.depClangFlags...)
|
||||
|
Reference in New Issue
Block a user