Merge changes from topic "crt_cflags"
* changes: Remove no_default_compiler_flags property Move -fomit-frame-pointer to armCflags Consolidate ldflags that are used on all devices Remove -Wl,--gc-sections from target flags Consolidate cflags that are set on all devices Consolidate global cflags
This commit is contained in:
commit
5c9cf6eb84
9
cc/cc.go
9
cc/cc.go
|
@ -159,10 +159,6 @@ type BaseProperties struct {
|
|||
// Minimum sdk version supported when compiling against the ndk
|
||||
Sdk_version string
|
||||
|
||||
// don't insert default compiler flags into asflags, cflags,
|
||||
// cppflags, conlyflags, ldflags, or include_dirs
|
||||
No_default_compiler_flags *bool
|
||||
|
||||
AndroidMkSharedLibs []string `blueprint:"mutated"`
|
||||
HideFromMake bool `blueprint:"mutated"`
|
||||
PreventInstall bool `blueprint:"mutated"`
|
||||
|
@ -199,7 +195,6 @@ type ModuleContextIntf interface {
|
|||
staticBinary() bool
|
||||
clang() bool
|
||||
toolchain() config.Toolchain
|
||||
noDefaultCompilerFlags() bool
|
||||
useSdk() bool
|
||||
sdkVersion() string
|
||||
useVndk() bool
|
||||
|
@ -452,10 +447,6 @@ func (ctx *moduleContextImpl) staticBinary() bool {
|
|||
return false
|
||||
}
|
||||
|
||||
func (ctx *moduleContextImpl) noDefaultCompilerFlags() bool {
|
||||
return Bool(ctx.mod.Properties.No_default_compiler_flags)
|
||||
}
|
||||
|
||||
func (ctx *moduleContextImpl) useSdk() bool {
|
||||
if ctx.ctx.Device() && !ctx.useVndk() {
|
||||
return ctx.mod.Properties.Sdk_version != ""
|
||||
|
|
|
@ -232,16 +232,14 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags) Flag
|
|||
flags.YasmFlags = append(flags.YasmFlags, f)
|
||||
}
|
||||
|
||||
if !ctx.noDefaultCompilerFlags() {
|
||||
flags.GlobalFlags = append(flags.GlobalFlags, "-I"+android.PathForModuleSrc(ctx).String())
|
||||
flags.YasmFlags = append(flags.YasmFlags, "-I"+android.PathForModuleSrc(ctx).String())
|
||||
flags.GlobalFlags = append(flags.GlobalFlags, "-I"+android.PathForModuleSrc(ctx).String())
|
||||
flags.YasmFlags = append(flags.YasmFlags, "-I"+android.PathForModuleSrc(ctx).String())
|
||||
|
||||
if !(ctx.useSdk() || ctx.useVndk()) || ctx.Host() {
|
||||
flags.SystemIncludeFlags = append(flags.SystemIncludeFlags,
|
||||
"${config.CommonGlobalIncludes}",
|
||||
tc.IncludeFlags(),
|
||||
"${config.CommonNativehelperInclude}")
|
||||
}
|
||||
if !(ctx.useSdk() || ctx.useVndk()) || ctx.Host() {
|
||||
flags.SystemIncludeFlags = append(flags.SystemIncludeFlags,
|
||||
"${config.CommonGlobalIncludes}",
|
||||
tc.IncludeFlags(),
|
||||
"${config.CommonNativehelperInclude}")
|
||||
}
|
||||
|
||||
if ctx.useSdk() {
|
||||
|
@ -318,48 +316,46 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags) Flag
|
|||
hod = "Device"
|
||||
}
|
||||
|
||||
if !ctx.noDefaultCompilerFlags() {
|
||||
flags.GlobalFlags = append(flags.GlobalFlags, instructionSetFlags)
|
||||
flags.ConlyFlags = append([]string{"${config.CommonGlobalConlyflags}"}, flags.ConlyFlags...)
|
||||
flags.GlobalFlags = append(flags.GlobalFlags, instructionSetFlags)
|
||||
flags.ConlyFlags = append([]string{"${config.CommonGlobalConlyflags}"}, flags.ConlyFlags...)
|
||||
|
||||
if flags.Clang {
|
||||
flags.AsFlags = append(flags.AsFlags, tc.ClangAsflags())
|
||||
flags.CppFlags = append([]string{"${config.CommonClangGlobalCppflags}"}, flags.CppFlags...)
|
||||
flags.GlobalFlags = append(flags.GlobalFlags,
|
||||
tc.ClangCflags(),
|
||||
"${config.CommonClangGlobalCflags}",
|
||||
fmt.Sprintf("${config.%sClangGlobalCflags}", hod))
|
||||
} else {
|
||||
flags.CppFlags = append([]string{"${config.CommonGlobalCppflags}"}, flags.CppFlags...)
|
||||
flags.GlobalFlags = append(flags.GlobalFlags,
|
||||
tc.Cflags(),
|
||||
"${config.CommonGlobalCflags}",
|
||||
fmt.Sprintf("${config.%sGlobalCflags}", hod))
|
||||
}
|
||||
|
||||
if Bool(ctx.AConfig().ProductVariables.Brillo) {
|
||||
flags.GlobalFlags = append(flags.GlobalFlags, "-D__BRILLO__")
|
||||
}
|
||||
|
||||
if ctx.Device() {
|
||||
if Bool(compiler.Properties.Rtti) {
|
||||
flags.CppFlags = append(flags.CppFlags, "-frtti")
|
||||
} else {
|
||||
flags.CppFlags = append(flags.CppFlags, "-fno-rtti")
|
||||
}
|
||||
}
|
||||
|
||||
flags.AsFlags = append(flags.AsFlags, "-D__ASSEMBLY__")
|
||||
|
||||
if flags.Clang {
|
||||
flags.CppFlags = append(flags.CppFlags, tc.ClangCppflags())
|
||||
} else {
|
||||
flags.CppFlags = append(flags.CppFlags, tc.Cppflags())
|
||||
}
|
||||
|
||||
flags.YasmFlags = append(flags.YasmFlags, tc.YasmFlags())
|
||||
if flags.Clang {
|
||||
flags.AsFlags = append(flags.AsFlags, tc.ClangAsflags())
|
||||
flags.CppFlags = append([]string{"${config.CommonClangGlobalCppflags}"}, flags.CppFlags...)
|
||||
flags.GlobalFlags = append(flags.GlobalFlags,
|
||||
tc.ClangCflags(),
|
||||
"${config.CommonClangGlobalCflags}",
|
||||
fmt.Sprintf("${config.%sClangGlobalCflags}", hod))
|
||||
} else {
|
||||
flags.CppFlags = append([]string{"${config.CommonGlobalCppflags}"}, flags.CppFlags...)
|
||||
flags.GlobalFlags = append(flags.GlobalFlags,
|
||||
tc.Cflags(),
|
||||
"${config.CommonGlobalCflags}",
|
||||
fmt.Sprintf("${config.%sGlobalCflags}", hod))
|
||||
}
|
||||
|
||||
if Bool(ctx.AConfig().ProductVariables.Brillo) {
|
||||
flags.GlobalFlags = append(flags.GlobalFlags, "-D__BRILLO__")
|
||||
}
|
||||
|
||||
if ctx.Device() {
|
||||
if Bool(compiler.Properties.Rtti) {
|
||||
flags.CppFlags = append(flags.CppFlags, "-frtti")
|
||||
} else {
|
||||
flags.CppFlags = append(flags.CppFlags, "-fno-rtti")
|
||||
}
|
||||
}
|
||||
|
||||
flags.AsFlags = append(flags.AsFlags, "-D__ASSEMBLY__")
|
||||
|
||||
if flags.Clang {
|
||||
flags.CppFlags = append(flags.CppFlags, tc.ClangCppflags())
|
||||
} else {
|
||||
flags.CppFlags = append(flags.CppFlags, tc.Cppflags())
|
||||
}
|
||||
|
||||
flags.YasmFlags = append(flags.YasmFlags, tc.YasmFlags())
|
||||
|
||||
if flags.Clang {
|
||||
flags.GlobalFlags = append(flags.GlobalFlags, tc.ToolchainClangCflags())
|
||||
} else {
|
||||
|
|
|
@ -23,49 +23,26 @@ import (
|
|||
|
||||
var (
|
||||
arm64Cflags = []string{
|
||||
"-fno-exceptions", // from build/core/combo/select.mk
|
||||
"-Wno-multichar", // from build/core/combo/select.mk
|
||||
"-fno-strict-aliasing",
|
||||
"-fstack-protector-strong",
|
||||
"-ffunction-sections",
|
||||
"-fdata-sections",
|
||||
"-funwind-tables",
|
||||
"-Wa,--noexecstack",
|
||||
"-Werror=format-security",
|
||||
"-D_FORTIFY_SOURCE=2",
|
||||
"-fno-short-enums",
|
||||
"-no-canonical-prefixes",
|
||||
"-fno-canonical-system-headers",
|
||||
|
||||
// Help catch common 32/64-bit errors.
|
||||
"-Werror=pointer-to-int-cast",
|
||||
"-Werror=int-to-pointer-cast",
|
||||
"-Werror=implicit-function-declaration",
|
||||
|
||||
"-fno-strict-volatile-bitfields",
|
||||
|
||||
// TARGET_RELEASE_CFLAGS
|
||||
"-DNDEBUG",
|
||||
"-O2 -g",
|
||||
"-Wstrict-aliasing=2",
|
||||
"-fgcse-after-reload",
|
||||
"-frerun-cse-after-loop",
|
||||
"-frename-registers",
|
||||
}
|
||||
|
||||
arm64Ldflags = []string{
|
||||
"-Wl,-z,noexecstack",
|
||||
"-Wl,-z,relro",
|
||||
"-Wl,-z,now",
|
||||
"-Wl,--build-id=md5",
|
||||
"-Wl,--warn-shared-textrel",
|
||||
"-Wl,--fatal-warnings",
|
||||
"-Wl,-m,aarch64_elf64_le_vec",
|
||||
"-Wl,--hash-style=gnu",
|
||||
"-Wl,--fix-cortex-a53-843419",
|
||||
"-fuse-ld=gold",
|
||||
"-Wl,--icf=safe",
|
||||
"-Wl,--no-undefined-version",
|
||||
}
|
||||
|
||||
arm64Cppflags = []string{
|
||||
|
|
|
@ -28,29 +28,18 @@ var (
|
|||
}
|
||||
|
||||
armCflags = []string{
|
||||
"-fno-exceptions", // from build/core/combo/select.mk
|
||||
"-Wno-multichar", // from build/core/combo/select.mk
|
||||
"-ffunction-sections",
|
||||
"-fdata-sections",
|
||||
"-funwind-tables",
|
||||
"-fstack-protector-strong",
|
||||
"-Wa,--noexecstack",
|
||||
"-Werror=format-security",
|
||||
"-D_FORTIFY_SOURCE=2",
|
||||
"-fno-short-enums",
|
||||
"-no-canonical-prefixes",
|
||||
"-fno-canonical-system-headers",
|
||||
|
||||
"-fno-builtin-sin",
|
||||
"-fno-strict-volatile-bitfields",
|
||||
|
||||
// TARGET_RELEASE_CFLAGS
|
||||
"-DNDEBUG",
|
||||
"-g",
|
||||
"-Wstrict-aliasing=2",
|
||||
"-fgcse-after-reload",
|
||||
"-frerun-cse-after-loop",
|
||||
"-frename-registers",
|
||||
|
||||
"-fomit-frame-pointer",
|
||||
}
|
||||
|
||||
armCppflags = []string{
|
||||
|
@ -58,21 +47,12 @@ var (
|
|||
}
|
||||
|
||||
armLdflags = []string{
|
||||
"-Wl,-z,noexecstack",
|
||||
"-Wl,-z,relro",
|
||||
"-Wl,-z,now",
|
||||
"-Wl,--build-id=md5",
|
||||
"-Wl,--warn-shared-textrel",
|
||||
"-Wl,--fatal-warnings",
|
||||
"-Wl,--icf=safe",
|
||||
"-Wl,--hash-style=gnu",
|
||||
"-Wl,--no-undefined-version",
|
||||
"-Wl,-m,armelf",
|
||||
}
|
||||
|
||||
armArmCflags = []string{
|
||||
"-O2",
|
||||
"-fomit-frame-pointer",
|
||||
"-fstrict-aliasing",
|
||||
"-funswitch-loops",
|
||||
}
|
||||
|
@ -80,8 +60,6 @@ var (
|
|||
armThumbCflags = []string{
|
||||
"-mthumb",
|
||||
"-Os",
|
||||
"-fomit-frame-pointer",
|
||||
"-fno-strict-aliasing",
|
||||
}
|
||||
|
||||
armArchVariantCflags = map[string][]string{
|
||||
|
|
|
@ -34,9 +34,19 @@ var (
|
|||
"-Winit-self",
|
||||
"-Wpointer-arith",
|
||||
|
||||
// COMMON_RELEASE_CFLAGS
|
||||
// Make paths in deps files relative
|
||||
"-no-canonical-prefixes",
|
||||
|
||||
"-DNDEBUG",
|
||||
"-UDEBUG",
|
||||
|
||||
"-fno-exceptions",
|
||||
"-Wno-multichar",
|
||||
|
||||
"-O2",
|
||||
"-g",
|
||||
|
||||
"-fno-strict-aliasing",
|
||||
}
|
||||
|
||||
commonGlobalConlyflags = []string{}
|
||||
|
@ -44,16 +54,37 @@ var (
|
|||
deviceGlobalCflags = []string{
|
||||
"-fdiagnostics-color",
|
||||
|
||||
// TARGET_ERROR_FLAGS
|
||||
"-fno-canonical-system-headers",
|
||||
"-ffunction-sections",
|
||||
"-funwind-tables",
|
||||
"-fstack-protector-strong",
|
||||
"-Wa,--noexecstack",
|
||||
"-D_FORTIFY_SOURCE=2",
|
||||
|
||||
"-Wstrict-aliasing=2",
|
||||
|
||||
"-Werror=return-type",
|
||||
"-Werror=non-virtual-dtor",
|
||||
"-Werror=address",
|
||||
"-Werror=sequence-point",
|
||||
"-Werror=date-time",
|
||||
"-Werror=format-security",
|
||||
}
|
||||
|
||||
deviceGlobalLdflags = []string{
|
||||
"-Wl,-z,noexecstack",
|
||||
"-Wl,-z,relro",
|
||||
"-Wl,-z,now",
|
||||
"-Wl,--build-id=md5",
|
||||
"-Wl,--warn-shared-textrel",
|
||||
"-Wl,--fatal-warnings",
|
||||
"-Wl,--no-undefined-version",
|
||||
}
|
||||
|
||||
hostGlobalCflags = []string{}
|
||||
|
||||
hostGlobalLdflags = []string{}
|
||||
|
||||
commonGlobalCppflags = []string{
|
||||
"-Wsign-promo",
|
||||
}
|
||||
|
@ -91,7 +122,9 @@ func init() {
|
|||
pctx.StaticVariable("CommonGlobalCflags", strings.Join(commonGlobalCflags, " "))
|
||||
pctx.StaticVariable("CommonGlobalConlyflags", strings.Join(commonGlobalConlyflags, " "))
|
||||
pctx.StaticVariable("DeviceGlobalCflags", strings.Join(deviceGlobalCflags, " "))
|
||||
pctx.StaticVariable("DeviceGlobalLdflags", strings.Join(deviceGlobalLdflags, " "))
|
||||
pctx.StaticVariable("HostGlobalCflags", strings.Join(hostGlobalCflags, " "))
|
||||
pctx.StaticVariable("HostGlobalLdflags", strings.Join(hostGlobalLdflags, " "))
|
||||
pctx.StaticVariable("NoOverrideGlobalCflags", strings.Join(noOverrideGlobalCflags, " "))
|
||||
|
||||
pctx.StaticVariable("CommonGlobalCppflags", strings.Join(commonGlobalCppflags, " "))
|
||||
|
|
|
@ -22,32 +22,15 @@ import (
|
|||
|
||||
var (
|
||||
mips64Cflags = []string{
|
||||
"-fno-exceptions", // from build/core/combo/select.mk
|
||||
"-Wno-multichar", // from build/core/combo/select.mk
|
||||
"-O2",
|
||||
"-fomit-frame-pointer",
|
||||
"-fno-strict-aliasing",
|
||||
"-funswitch-loops",
|
||||
"-Umips",
|
||||
"-ffunction-sections",
|
||||
"-fdata-sections",
|
||||
"-funwind-tables",
|
||||
"-fstack-protector-strong",
|
||||
"-Wa,--noexecstack",
|
||||
"-Werror=format-security",
|
||||
"-D_FORTIFY_SOURCE=2",
|
||||
"-no-canonical-prefixes",
|
||||
"-fno-canonical-system-headers",
|
||||
|
||||
// Help catch common 32/64-bit errors.
|
||||
"-Werror=pointer-to-int-cast",
|
||||
"-Werror=int-to-pointer-cast",
|
||||
"-Werror=implicit-function-declaration",
|
||||
|
||||
// TARGET_RELEASE_CFLAGS
|
||||
"-DNDEBUG",
|
||||
"-g",
|
||||
"-Wstrict-aliasing=2",
|
||||
"-fgcse-after-reload",
|
||||
"-frerun-cse-after-loop",
|
||||
"-frename-registers",
|
||||
|
@ -62,14 +45,7 @@ var (
|
|||
}
|
||||
|
||||
mips64Ldflags = []string{
|
||||
"-Wl,-z,noexecstack",
|
||||
"-Wl,-z,relro",
|
||||
"-Wl,-z,now",
|
||||
"-Wl,--build-id=md5",
|
||||
"-Wl,--warn-shared-textrel",
|
||||
"-Wl,--fatal-warnings",
|
||||
"-Wl,--allow-shlib-undefined",
|
||||
"-Wl,--no-undefined-version",
|
||||
}
|
||||
|
||||
mips64ArchVariantCflags = map[string][]string{
|
||||
|
|
|
@ -22,27 +22,12 @@ import (
|
|||
|
||||
var (
|
||||
mipsCflags = []string{
|
||||
"-fno-exceptions", // from build/core/combo/select.mk
|
||||
"-Wno-multichar", // from build/core/combo/select.mk
|
||||
"-O2",
|
||||
"-fomit-frame-pointer",
|
||||
"-fno-strict-aliasing",
|
||||
"-funswitch-loops",
|
||||
"-Umips",
|
||||
"-ffunction-sections",
|
||||
"-fdata-sections",
|
||||
"-funwind-tables",
|
||||
"-fstack-protector-strong",
|
||||
"-Wa,--noexecstack",
|
||||
"-Werror=format-security",
|
||||
"-D_FORTIFY_SOURCE=2",
|
||||
"-no-canonical-prefixes",
|
||||
"-fno-canonical-system-headers",
|
||||
|
||||
// TARGET_RELEASE_CFLAGS
|
||||
"-DNDEBUG",
|
||||
"-g",
|
||||
"-Wstrict-aliasing=2",
|
||||
"-fgcse-after-reload",
|
||||
"-frerun-cse-after-loop",
|
||||
"-frename-registers",
|
||||
|
@ -58,14 +43,7 @@ var (
|
|||
}
|
||||
|
||||
mipsLdflags = []string{
|
||||
"-Wl,-z,noexecstack",
|
||||
"-Wl,-z,relro",
|
||||
"-Wl,-z,now",
|
||||
"-Wl,--build-id=md5",
|
||||
"-Wl,--warn-shared-textrel",
|
||||
"-Wl,--fatal-warnings",
|
||||
"-Wl,--allow-shlib-undefined",
|
||||
"-Wl,--no-undefined-version",
|
||||
}
|
||||
|
||||
mipsToolchainLdflags = []string{
|
||||
|
|
|
@ -22,47 +22,19 @@ import (
|
|||
|
||||
var (
|
||||
x86_64Cflags = []string{
|
||||
"-fno-exceptions", // from build/core/combo/select.mk
|
||||
"-Wno-multichar", // from build/core/combo/select.mk
|
||||
"-O2",
|
||||
"-Wa,--noexecstack",
|
||||
"-Werror=format-security",
|
||||
"-D_FORTIFY_SOURCE=2",
|
||||
"-Wstrict-aliasing=2",
|
||||
"-ffunction-sections",
|
||||
"-finline-functions",
|
||||
"-finline-limit=300",
|
||||
"-fno-short-enums",
|
||||
"-fstrict-aliasing",
|
||||
"-funswitch-loops",
|
||||
"-funwind-tables",
|
||||
"-fstack-protector-strong",
|
||||
"-no-canonical-prefixes",
|
||||
"-fno-canonical-system-headers",
|
||||
|
||||
// Help catch common 32/64-bit errors.
|
||||
"-Werror=pointer-to-int-cast",
|
||||
"-Werror=int-to-pointer-cast",
|
||||
"-Werror=implicit-function-declaration",
|
||||
|
||||
// TARGET_RELEASE_CFLAGS from build/core/combo/select.mk
|
||||
"-O2",
|
||||
"-g",
|
||||
"-fno-strict-aliasing",
|
||||
}
|
||||
|
||||
x86_64Cppflags = []string{}
|
||||
|
||||
x86_64Ldflags = []string{
|
||||
"-Wl,-z,noexecstack",
|
||||
"-Wl,-z,relro",
|
||||
"-Wl,-z,now",
|
||||
"-Wl,--build-id=md5",
|
||||
"-Wl,--warn-shared-textrel",
|
||||
"-Wl,--fatal-warnings",
|
||||
"-Wl,--gc-sections",
|
||||
"-Wl,--hash-style=gnu",
|
||||
"-Wl,--no-undefined-version",
|
||||
}
|
||||
|
||||
x86_64ArchVariantCflags = map[string][]string{
|
||||
|
|
|
@ -25,9 +25,6 @@ import (
|
|||
|
||||
var (
|
||||
darwinCflags = []string{
|
||||
"-fno-exceptions", // from build/core/combo/select.mk
|
||||
"-Wno-multichar", // from build/core/combo/select.mk
|
||||
|
||||
"-fdiagnostics-color",
|
||||
|
||||
"-fPIC",
|
||||
|
@ -38,10 +35,6 @@ var (
|
|||
"-D__STDC_FORMAT_MACROS",
|
||||
"-D__STDC_CONSTANT_MACROS",
|
||||
|
||||
// HOST_RELEASE_CFLAGS
|
||||
"-O2", // from build/core/combo/select.mk
|
||||
"-g", // from build/core/combo/select.mk
|
||||
"-fno-strict-aliasing", // from build/core/combo/select.mk
|
||||
"-isysroot ${macSdkRoot}",
|
||||
"-mmacosx-version-min=${macMinVersion}",
|
||||
"-DMACOSX_DEPLOYMENT_TARGET=${macMinVersion}",
|
||||
|
|
|
@ -22,28 +22,10 @@ import (
|
|||
|
||||
var (
|
||||
x86Cflags = []string{
|
||||
"-fno-exceptions", // from build/core/combo/select.mk
|
||||
"-Wno-multichar", // from build/core/combo/select.mk
|
||||
"-O2",
|
||||
"-Wa,--noexecstack",
|
||||
"-Werror=format-security",
|
||||
"-D_FORTIFY_SOURCE=2",
|
||||
"-Wstrict-aliasing=2",
|
||||
"-ffunction-sections",
|
||||
"-finline-functions",
|
||||
"-finline-limit=300",
|
||||
"-fno-short-enums",
|
||||
"-fstrict-aliasing",
|
||||
"-funswitch-loops",
|
||||
"-funwind-tables",
|
||||
"-fstack-protector-strong",
|
||||
"-no-canonical-prefixes",
|
||||
"-fno-canonical-system-headers",
|
||||
|
||||
// TARGET_RELEASE_CFLAGS from build/core/combo/select.mk
|
||||
"-O2",
|
||||
"-g",
|
||||
"-fno-strict-aliasing",
|
||||
}
|
||||
|
||||
x86ClangCflags = append(x86Cflags, []string{
|
||||
|
@ -58,15 +40,7 @@ var (
|
|||
x86Cppflags = []string{}
|
||||
|
||||
x86Ldflags = []string{
|
||||
"-Wl,-z,noexecstack",
|
||||
"-Wl,-z,relro",
|
||||
"-Wl,-z,now",
|
||||
"-Wl,--build-id=md5",
|
||||
"-Wl,--warn-shared-textrel",
|
||||
"-Wl,--fatal-warnings",
|
||||
"-Wl,--gc-sections",
|
||||
"-Wl,--hash-style=gnu",
|
||||
"-Wl,--no-undefined-version",
|
||||
}
|
||||
|
||||
x86ArchVariantCflags = map[string][]string{
|
||||
|
|
|
@ -22,15 +22,11 @@ import (
|
|||
|
||||
var (
|
||||
linuxBionicCflags = ClangFilterUnknownCflags([]string{
|
||||
"-fno-exceptions", // from build/core/combo/select.mk
|
||||
"-Wno-multichar", // from build/core/combo/select.mk
|
||||
|
||||
"-fdiagnostics-color",
|
||||
|
||||
"-Wa,--noexecstack",
|
||||
|
||||
"-fPIC",
|
||||
"-no-canonical-prefixes",
|
||||
|
||||
"-U_FORTIFY_SOURCE",
|
||||
"-D_FORTIFY_SOURCE=2",
|
||||
|
@ -43,14 +39,8 @@ var (
|
|||
"-fno-short-enums",
|
||||
"-funswitch-loops",
|
||||
"-funwind-tables",
|
||||
"-no-canonical-prefixes",
|
||||
"-fno-canonical-system-headers",
|
||||
|
||||
// HOST_RELEASE_CFLAGS
|
||||
"-O2", // from build/core/combo/select.mk
|
||||
"-g", // from build/core/combo/select.mk
|
||||
"-fno-strict-aliasing", // from build/core/combo/select.mk
|
||||
|
||||
// Tell clang where the gcc toolchain is
|
||||
"--gcc-toolchain=${LinuxBionicGccRoot}",
|
||||
|
||||
|
@ -65,7 +55,6 @@ var (
|
|||
"-Wl,--build-id=md5",
|
||||
"-Wl,--warn-shared-textrel",
|
||||
"-Wl,--fatal-warnings",
|
||||
"-Wl,--gc-sections",
|
||||
"-Wl,--hash-style=gnu",
|
||||
"-Wl,--no-undefined-version",
|
||||
|
||||
|
|
|
@ -22,15 +22,11 @@ import (
|
|||
|
||||
var (
|
||||
linuxCflags = []string{
|
||||
"-fno-exceptions", // from build/core/combo/select.mk
|
||||
"-Wno-multichar", // from build/core/combo/select.mk
|
||||
|
||||
"-fdiagnostics-color",
|
||||
|
||||
"-Wa,--noexecstack",
|
||||
|
||||
"-fPIC",
|
||||
"-no-canonical-prefixes",
|
||||
|
||||
"-U_FORTIFY_SOURCE",
|
||||
"-D_FORTIFY_SOURCE=2",
|
||||
|
@ -40,11 +36,6 @@ var (
|
|||
//See bug 12708004.
|
||||
"-D__STDC_FORMAT_MACROS",
|
||||
"-D__STDC_CONSTANT_MACROS",
|
||||
|
||||
// HOST_RELEASE_CFLAGS
|
||||
"-O2", // from build/core/combo/select.mk
|
||||
"-g", // from build/core/combo/select.mk
|
||||
"-fno-strict-aliasing", // from build/core/combo/select.mk
|
||||
}
|
||||
|
||||
linuxLdflags = []string{
|
||||
|
|
|
@ -22,9 +22,6 @@ import (
|
|||
|
||||
var (
|
||||
windowsCflags = []string{
|
||||
"-fno-exceptions", // from build/core/combo/select.mk
|
||||
"-Wno-multichar", // from build/core/combo/select.mk
|
||||
|
||||
"-DUSE_MINGW",
|
||||
"-DWIN32_LEAN_AND_MEAN",
|
||||
"-Wno-unused-parameter",
|
||||
|
@ -43,11 +40,6 @@ var (
|
|||
"-D_FILE_OFFSET_BITS=64",
|
||||
|
||||
"--sysroot ${WindowsGccRoot}/${WindowsGccTriple}",
|
||||
|
||||
// HOST_RELEASE_CFLAGS
|
||||
"-O2", // from build/core/combo/select.mk
|
||||
"-g", // from build/core/combo/select.mk
|
||||
"-fno-strict-aliasing", // from build/core/combo/select.mk
|
||||
}
|
||||
|
||||
windowsIncludeFlags = []string{
|
||||
|
|
58
cc/linker.go
58
cc/linker.go
|
@ -196,38 +196,42 @@ func (linker *baseLinker) linkerDeps(ctx BaseModuleContext, deps Deps) Deps {
|
|||
func (linker *baseLinker) linkerFlags(ctx ModuleContext, flags Flags) Flags {
|
||||
toolchain := ctx.toolchain()
|
||||
|
||||
if !ctx.noDefaultCompilerFlags() {
|
||||
if Bool(linker.Properties.Allow_undefined_symbols) {
|
||||
if ctx.Darwin() {
|
||||
// darwin defaults to treating undefined symbols as errors
|
||||
flags.LdFlags = append(flags.LdFlags, "-Wl,-undefined,dynamic_lookup")
|
||||
}
|
||||
} else if !ctx.Darwin() {
|
||||
flags.LdFlags = append(flags.LdFlags, "-Wl,--no-undefined")
|
||||
hod := "Host"
|
||||
if ctx.Os().Class == android.Device {
|
||||
hod = "Device"
|
||||
}
|
||||
|
||||
flags.LdFlags = append(flags.LdFlags, fmt.Sprintf("${config.%sGlobalLdflags}", hod))
|
||||
if Bool(linker.Properties.Allow_undefined_symbols) {
|
||||
if ctx.Darwin() {
|
||||
// darwin defaults to treating undefined symbols as errors
|
||||
flags.LdFlags = append(flags.LdFlags, "-Wl,-undefined,dynamic_lookup")
|
||||
}
|
||||
} else if !ctx.Darwin() {
|
||||
flags.LdFlags = append(flags.LdFlags, "-Wl,--no-undefined")
|
||||
}
|
||||
|
||||
if flags.Clang {
|
||||
flags.LdFlags = append(flags.LdFlags, toolchain.ClangLdflags())
|
||||
} else {
|
||||
flags.LdFlags = append(flags.LdFlags, toolchain.Ldflags())
|
||||
}
|
||||
if flags.Clang {
|
||||
flags.LdFlags = append(flags.LdFlags, toolchain.ClangLdflags())
|
||||
} else {
|
||||
flags.LdFlags = append(flags.LdFlags, toolchain.Ldflags())
|
||||
}
|
||||
|
||||
if !ctx.toolchain().Bionic() {
|
||||
CheckBadHostLdlibs(ctx, "host_ldlibs", linker.Properties.Host_ldlibs)
|
||||
if !ctx.toolchain().Bionic() {
|
||||
CheckBadHostLdlibs(ctx, "host_ldlibs", linker.Properties.Host_ldlibs)
|
||||
|
||||
flags.LdFlags = append(flags.LdFlags, linker.Properties.Host_ldlibs...)
|
||||
flags.LdFlags = append(flags.LdFlags, linker.Properties.Host_ldlibs...)
|
||||
|
||||
if !ctx.Windows() {
|
||||
// Add -ldl, -lpthread, -lm and -lrt to host builds to match the default behavior of device
|
||||
// builds
|
||||
flags.LdFlags = append(flags.LdFlags,
|
||||
"-ldl",
|
||||
"-lpthread",
|
||||
"-lm",
|
||||
)
|
||||
if !ctx.Darwin() {
|
||||
flags.LdFlags = append(flags.LdFlags, "-lrt")
|
||||
}
|
||||
if !ctx.Windows() {
|
||||
// Add -ldl, -lpthread, -lm and -lrt to host builds to match the default behavior of device
|
||||
// builds
|
||||
flags.LdFlags = append(flags.LdFlags,
|
||||
"-ldl",
|
||||
"-lpthread",
|
||||
"-lm",
|
||||
)
|
||||
if !ctx.Darwin() {
|
||||
flags.LdFlags = append(flags.LdFlags, "-lrt")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -174,6 +174,7 @@ func makeVarsToolchain(ctx android.MakeVarsContext, secondPrefix string,
|
|||
toolchain.Cppflags(),
|
||||
}, " "))
|
||||
ctx.Strict(makePrefix+"GLOBAL_LDFLAGS", strings.Join([]string{
|
||||
fmt.Sprintf("${config.%sGlobalLdflags}", hod),
|
||||
toolchain.Ldflags(),
|
||||
toolchain.ToolchainLdflags(),
|
||||
productExtraLdflags,
|
||||
|
@ -219,6 +220,7 @@ func makeVarsToolchain(ctx android.MakeVarsContext, secondPrefix string,
|
|||
toolchain.ClangCppflags(),
|
||||
}, " "))
|
||||
ctx.Strict(clangPrefix+"GLOBAL_LDFLAGS", strings.Join([]string{
|
||||
fmt.Sprintf("${config.%sGlobalLdflags}", hod),
|
||||
toolchain.ClangLdflags(),
|
||||
toolchain.ToolchainClangLdflags(),
|
||||
productExtraLdflags,
|
||||
|
|
|
@ -53,7 +53,7 @@ func (object *objectLinker) linkerProps() []interface{} {
|
|||
func (*objectLinker) linkerInit(ctx BaseModuleContext) {}
|
||||
|
||||
func (object *objectLinker) linkerDeps(ctx DepsContext, deps Deps) Deps {
|
||||
if !ctx.noDefaultCompilerFlags() && ctx.toolchain().Bionic() {
|
||||
if ctx.useVndk() && ctx.toolchain().Bionic() {
|
||||
// Needed for VNDK builds where bionic headers aren't automatically added.
|
||||
deps.LateSharedLibs = append(deps.LateSharedLibs, "libc")
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue