Merge changes from topic "musl_clang_runtimes" am: 0f2a718ce4

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1980450

Change-Id: I89cabdde43dea0e5b2505f09d80d67356484433e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Colin Cross
2022-03-30 04:11:59 +00:00
committed by Automerger Merge Worker

View File

@@ -480,8 +480,8 @@ func (sanitize *sanitize) begin(ctx BaseModuleContext) {
s.Diag.Cfi = nil s.Diag.Cfi = nil
} }
// Disable sanitizers that depend on the UBSan runtime for windows/darwin/musl builds. // Disable sanitizers that depend on the UBSan runtime for windows/darwin builds.
if !ctx.Os().Linux() || ctx.Os() == android.LinuxMusl { if !ctx.Os().Linux() {
s.Cfi = nil s.Cfi = nil
s.Diag.Cfi = nil s.Diag.Cfi = nil
s.Misc_undefined = nil s.Misc_undefined = nil
@@ -490,6 +490,12 @@ func (sanitize *sanitize) begin(ctx BaseModuleContext) {
s.Integer_overflow = nil s.Integer_overflow = nil
} }
// Disable CFI for musl
if ctx.toolchain().Musl() {
s.Cfi = nil
s.Diag.Cfi = nil
}
// Also disable CFI for VNDK variants of components // Also disable CFI for VNDK variants of components
if ctx.isVndk() && ctx.useVndk() { if ctx.isVndk() && ctx.useVndk() {
if ctx.static() { if ctx.static() {
@@ -702,10 +708,10 @@ func (sanitize *sanitize) flags(ctx ModuleContext, flags Flags) Flags {
flags.Local.AsFlags = append(flags.Local.AsFlags, sanitizeArg) flags.Local.AsFlags = append(flags.Local.AsFlags, sanitizeArg)
flags.Local.LdFlags = append(flags.Local.LdFlags, sanitizeArg) flags.Local.LdFlags = append(flags.Local.LdFlags, sanitizeArg)
if ctx.toolchain().Bionic() { if ctx.toolchain().Bionic() || ctx.toolchain().Musl() {
// Bionic sanitizer runtimes have already been added as dependencies so that // Bionic and musl sanitizer runtimes have already been added as dependencies so that
// the right variant of the runtime will be used (with the "-android" // the right variant of the runtime will be used (with the "-android" or "-musl"
// suffix), so don't let clang the runtime library. // suffixes), so don't let clang the runtime library.
flags.Local.LdFlags = append(flags.Local.LdFlags, "-fno-sanitize-link-runtime") flags.Local.LdFlags = append(flags.Local.LdFlags, "-fno-sanitize-link-runtime")
} else { } else {
// Host sanitizers only link symbols in the final executable, so // Host sanitizers only link symbols in the final executable, so
@@ -1217,7 +1223,7 @@ func sanitizerRuntimeMutator(mctx android.BottomUpMutatorContext) {
addStaticDeps(config.BuiltinsRuntimeLibrary(toolchain)) addStaticDeps(config.BuiltinsRuntimeLibrary(toolchain))
} }
if runtimeLibrary != "" && (toolchain.Bionic() || c.sanitize.Properties.UbsanRuntimeDep) { if runtimeLibrary != "" && (toolchain.Bionic() || toolchain.Musl() || c.sanitize.Properties.UbsanRuntimeDep) {
// UBSan is supported on non-bionic linux host builds as well // UBSan is supported on non-bionic linux host builds as well
// Adding dependency to the runtime library. We are using *FarVariation* // Adding dependency to the runtime library. We are using *FarVariation*