Block CFI on static libraries
Bug: 295805467 Test: Unit tests and inspecting generated BUILD files Change-Id: I1bbd2f48ad384e0b5b6f7cc1458b12ded2748e8f
This commit is contained in:
@@ -30,6 +30,7 @@ bootstrap_go_package {
|
||||
"cc.go",
|
||||
"ccdeps.go",
|
||||
"check.go",
|
||||
"constants.go",
|
||||
"coverage.go",
|
||||
"gen.go",
|
||||
"generated_cc_library.go",
|
||||
|
@@ -1953,9 +1953,9 @@ func bp2buildSanitizerFeatures(ctx android.BazelConversionPathContext, m *Module
|
||||
sanitizerCompilerInputs.SetSelectValue(bazel.SanitizersEnabledAxis, bazel.SanitizersEnabled, bazel.MakeLabelListFromTargetNames([]string{*blocklist}))
|
||||
}
|
||||
if sanitizerProps.Sanitize.Cfi != nil && !proptools.Bool(sanitizerProps.Sanitize.Cfi) {
|
||||
features = append(features, "-android_cfi")
|
||||
features = append(features, "-"+cfiFeatureName)
|
||||
} else if proptools.Bool(sanitizerProps.Sanitize.Cfi) {
|
||||
features = append(features, "android_cfi")
|
||||
features = append(features, cfiFeatureName)
|
||||
if proptools.Bool(sanitizerProps.Sanitize.Config.Cfi_assembly_support) {
|
||||
features = append(features, "android_cfi_assembly_support")
|
||||
}
|
||||
|
19
cc/constants.go
Normal file
19
cc/constants.go
Normal file
@@ -0,0 +1,19 @@
|
||||
// Copyright 2016 Google Inc. All rights reserved.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package cc
|
||||
|
||||
var (
|
||||
cfiFeatureName = "android_cfi"
|
||||
)
|
@@ -331,6 +331,7 @@ func libraryBp2Build(ctx android.TopDownMutatorContext, m *Module) {
|
||||
sharedFeatures.DeduplicateAxesFromBase()
|
||||
staticFeatures := baseAttributes.features.Clone().Append(staticAttrs.Features)
|
||||
staticFeatures.DeduplicateAxesFromBase()
|
||||
staticFeatures.RemoveFromAllConfigs(cfiFeatureName)
|
||||
|
||||
staticCommonAttrs := staticOrSharedAttributes{
|
||||
Srcs: *srcs.Clone().Append(staticAttrs.Srcs),
|
||||
@@ -2946,6 +2947,9 @@ func sharedOrStaticLibraryBp2Build(ctx android.TopDownMutatorContext, module *Mo
|
||||
|
||||
features := baseAttributes.features.Clone().Append(libSharedOrStaticAttrs.Features)
|
||||
features.DeduplicateAxesFromBase()
|
||||
if isStatic {
|
||||
features.RemoveFromAllConfigs(cfiFeatureName)
|
||||
}
|
||||
|
||||
commonAttrs := staticOrSharedAttributes{
|
||||
Srcs: compilerAttrs.srcs,
|
||||
|
Reference in New Issue
Block a user