Merge "Fix link_type checking"
am: 665cda08f0
Change-Id: I95ca55160ae6a8b3a5d05a2a2cbc653dc3855981
This commit is contained in:
@@ -1365,13 +1365,17 @@ endif
|
|||||||
####################################################
|
####################################################
|
||||||
|
|
||||||
my_link_type := $(intermediates)/link_type
|
my_link_type := $(intermediates)/link_type
|
||||||
|
all_link_types: $(my_link_type)
|
||||||
ifdef LOCAL_SDK_VERSION
|
ifdef LOCAL_SDK_VERSION
|
||||||
$(my_link_type): PRIVATE_LINK_TYPE := ndk
|
$(my_link_type): PRIVATE_LINK_TYPE := native:ndk
|
||||||
$(my_link_type): PRIVATE_ALLOWED_TYPES := ndk
|
$(my_link_type): PRIVATE_WARN_TYPES :=
|
||||||
|
$(my_link_type): PRIVATE_ALLOWED_TYPES := native:ndk
|
||||||
else
|
else
|
||||||
$(my_link_type): PRIVATE_LINK_TYPE := platform
|
$(my_link_type): PRIVATE_LINK_TYPE := native:platform
|
||||||
$(my_link_type): PRIVATE_ALLOWED_TYPES := (ndk|platform)
|
$(my_link_type): PRIVATE_WARN_TYPES :=
|
||||||
|
$(my_link_type): PRIVATE_ALLOWED_TYPES := native:ndk native:platform
|
||||||
endif
|
endif
|
||||||
|
$(eval $(call link-type-partitions,$(my_link_type)))
|
||||||
my_link_type_deps := $(strip \
|
my_link_type_deps := $(strip \
|
||||||
$(foreach l,$(my_whole_static_libraries) $(my_static_libraries), \
|
$(foreach l,$(my_whole_static_libraries) $(my_static_libraries), \
|
||||||
$(call intermediates-dir-for,STATIC_LIBRARIES,$(l),$(my_kind),,$(LOCAL_2ND_ARCH_VAR_PREFIX),$(my_host_cross))/link_type))
|
$(call intermediates-dir-for,STATIC_LIBRARIES,$(l),$(my_kind),,$(LOCAL_2ND_ARCH_VAR_PREFIX),$(my_host_cross))/link_type))
|
||||||
@@ -1383,16 +1387,9 @@ endif
|
|||||||
$(my_link_type): PRIVATE_DEPS := $(my_link_type_deps)
|
$(my_link_type): PRIVATE_DEPS := $(my_link_type_deps)
|
||||||
$(my_link_type): PRIVATE_MODULE := $(LOCAL_MODULE)
|
$(my_link_type): PRIVATE_MODULE := $(LOCAL_MODULE)
|
||||||
$(my_link_type): PRIVATE_MAKEFILE := $(LOCAL_MODULE_MAKEFILE)
|
$(my_link_type): PRIVATE_MAKEFILE := $(LOCAL_MODULE_MAKEFILE)
|
||||||
$(my_link_type): $(my_link_type_deps)
|
$(my_link_type): $(my_link_type_deps) $(CHECK_LINK_TYPE)
|
||||||
@echo Check module type: $@
|
@echo Check module type: $@
|
||||||
$(hide) mkdir -p $(dir $@) && rm -f $@
|
$(check-link-type)
|
||||||
ifdef my_link_type_deps
|
|
||||||
$(hide) for f in $(PRIVATE_DEPS); do \
|
|
||||||
grep -qE '^$(PRIVATE_ALLOWED_TYPES)$$' $$f || \
|
|
||||||
($(call echo-error,"$(PRIVATE_MAKEFILE): $(PRIVATE_MODULE) ($(PRIVATE_LINK_TYPE)) should not link to $$(basename $${f%_intermediates/link_type}) ($$(cat $$f))"); exit 1) \
|
|
||||||
done
|
|
||||||
endif
|
|
||||||
$(hide) echo $(PRIVATE_LINK_TYPE) >$@
|
|
||||||
|
|
||||||
|
|
||||||
###########################################################
|
###########################################################
|
||||||
|
@@ -571,6 +571,7 @@ TUNE2FS := $(HOST_OUT_EXECUTABLES)/tune2fs$(HOST_EXECUTABLE_SUFFIX)
|
|||||||
JARJAR := $(HOST_OUT_JAVA_LIBRARIES)/jarjar.jar
|
JARJAR := $(HOST_OUT_JAVA_LIBRARIES)/jarjar.jar
|
||||||
DATA_BINDING_COMPILER := $(HOST_OUT_JAVA_LIBRARIES)/databinding-compiler.jar
|
DATA_BINDING_COMPILER := $(HOST_OUT_JAVA_LIBRARIES)/databinding-compiler.jar
|
||||||
FAT16COPY := build/tools/fat16copy.py
|
FAT16COPY := build/tools/fat16copy.py
|
||||||
|
CHECK_LINK_TYPE := build/tools/check_link_type.py
|
||||||
|
|
||||||
ifneq ($(ANDROID_JACK_EXTRA_ARGS),)
|
ifneq ($(ANDROID_JACK_EXTRA_ARGS),)
|
||||||
JACK_DEFAULT_ARGS :=
|
JACK_DEFAULT_ARGS :=
|
||||||
|
@@ -3115,6 +3115,35 @@ $(strip $(if $(LOCAL_RECORDED_MODULE_TYPE),,
|
|||||||
$(error Invalid module type: $(1))))))
|
$(error Invalid module type: $(1))))))
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
###########################################################
|
||||||
|
# Link type checking
|
||||||
|
###########################################################
|
||||||
|
define check-link-type
|
||||||
|
$(hide) mkdir -p $(dir $@) && rm -f $@
|
||||||
|
$(hide) $(CHECK_LINK_TYPE) --makefile $(PRIVATE_MAKEFILE) --module $(PRIVATE_MODULE) \
|
||||||
|
--type "$(PRIVATE_LINK_TYPE)" $(addprefix --allowed ,$(PRIVATE_ALLOWED_TYPES)) \
|
||||||
|
$(addprefix --warn ,$(PRIVATE_WARN_TYPES)) $(PRIVATE_DEPS)
|
||||||
|
$(hide) echo "$(PRIVATE_LINK_TYPE)" >$@
|
||||||
|
endef
|
||||||
|
|
||||||
|
define link-type-partitions
|
||||||
|
ifndef LOCAL_IS_HOST_MODULE
|
||||||
|
ifeq (true,$(LOCAL_PROPRIETARY_MODULE))
|
||||||
|
$(1): PRIVATE_LINK_TYPE += partition:vendor
|
||||||
|
$(1): PRIVATE_ALLOWED_TYPES += partition:vendor partition:oem partition:odm
|
||||||
|
else ifeq (true,$(LOCAL_OEM_MODULE))
|
||||||
|
$(1): PRIVATE_LINK_TYPE += partition:oem
|
||||||
|
$(1): PRIVATE_ALLOWED_TYPES += partition:vendor partition:oem partition:odm
|
||||||
|
else ifeq (true,$(LOCAL_ODM_MODULE))
|
||||||
|
$(1): PRIVATE_LINK_TYPE += partition:odm
|
||||||
|
$(1): PRIVATE_ALLOWED_TYPES += partition:vendor partition:oem partition:odm
|
||||||
|
else
|
||||||
|
# TODO: Mark libraries in /data
|
||||||
|
$(1): PRIVATE_WARN_TYPES += partition:vendor partition:oem partition:odm
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endef
|
||||||
|
|
||||||
###########################################################
|
###########################################################
|
||||||
## Other includes
|
## Other includes
|
||||||
###########################################################
|
###########################################################
|
||||||
|
@@ -102,28 +102,26 @@ endif # outer my_prebuilt_jni_libs
|
|||||||
# Verify that all included libraries are built against the NDK
|
# Verify that all included libraries are built against the NDK
|
||||||
ifneq ($(strip $(LOCAL_JNI_SHARED_LIBRARIES)),)
|
ifneq ($(strip $(LOCAL_JNI_SHARED_LIBRARIES)),)
|
||||||
my_link_type := $(call intermediates-dir-for,APPS,$(LOCAL_MODULE))/$(my_2nd_arch_prefix)jni_link_type
|
my_link_type := $(call intermediates-dir-for,APPS,$(LOCAL_MODULE))/$(my_2nd_arch_prefix)jni_link_type
|
||||||
|
all_link_types: $(my_link_type)
|
||||||
my_link_type_deps := $(strip \
|
my_link_type_deps := $(strip \
|
||||||
$(foreach l,$(LOCAL_JNI_SHARED_LIBRARIES),\
|
$(foreach l,$(LOCAL_JNI_SHARED_LIBRARIES),\
|
||||||
$(call intermediates-dir-for,SHARED_LIBRARIES,$(l),,,$(my_2nd_arch_prefix))/link_type))
|
$(call intermediates-dir-for,SHARED_LIBRARIES,$(l),,,$(my_2nd_arch_prefix))/link_type))
|
||||||
ifneq ($(LOCAL_SDK_VERSION),)
|
ifneq ($(LOCAL_SDK_VERSION),)
|
||||||
$(my_link_type): PRIVATE_LINK_TYPE := sdk
|
$(my_link_type): PRIVATE_LINK_TYPE := app:sdk
|
||||||
$(my_link_type): PRIVATE_ALLOWED_TYPES := ndk
|
$(my_link_type): PRIVATE_WARN_TYPES := native:platform
|
||||||
|
$(my_link_type): PRIVATE_ALLOWED_TYPES := native:ndk
|
||||||
else
|
else
|
||||||
$(my_link_type): PRIVATE_LINK_TYPE := platform
|
$(my_link_type): PRIVATE_LINK_TYPE := app:platform
|
||||||
$(my_link_type): PRIVATE_ALLOWED_TYPES := (ndk|platform)
|
$(my_link_type): PRIVATE_WARN_TYPES :=
|
||||||
|
$(my_link_type): PRIVATE_ALLOWED_TYPES := native:ndk native:platform
|
||||||
endif
|
endif
|
||||||
|
$(eval $(call link-type-partitions,$(my_link_type)))
|
||||||
$(my_link_type): PRIVATE_DEPS := $(my_link_type_deps)
|
$(my_link_type): PRIVATE_DEPS := $(my_link_type_deps)
|
||||||
$(my_link_type): PRIVATE_MODULE := $(LOCAL_MODULE)
|
$(my_link_type): PRIVATE_MODULE := $(LOCAL_MODULE)
|
||||||
$(my_link_type): PRIVATE_MAKEFILE := $(LOCAL_MODULE_MAKEFILE)
|
$(my_link_type): PRIVATE_MAKEFILE := $(LOCAL_MODULE_MAKEFILE)
|
||||||
$(my_link_type): $(my_link_type_deps)
|
$(my_link_type): $(my_link_type_deps) $(CHECK_LINK_TYPE)
|
||||||
@echo Check JNI module types: $@
|
@echo Check JNI module types: $@
|
||||||
$(hide) mkdir -p $(dir $@)
|
$(check-link-type)
|
||||||
$(hide) rm -f $@
|
|
||||||
$(hide) for f in $(PRIVATE_DEPS); do \
|
|
||||||
grep -qE '^$(PRIVATE_ALLOWED_TYPES)$$' $$f || \
|
|
||||||
$(call echo-warning,"$(PRIVATE_MAKEFILE): $(PRIVATE_MODULE) ($(PRIVATE_LINK_TYPE)) should not link to $$(basename $${f%_intermediates/link_type}) ($$(cat $$f))"); \
|
|
||||||
done
|
|
||||||
$(hide) touch $@
|
|
||||||
|
|
||||||
$(LOCAL_BUILT_MODULE): | $(my_link_type)
|
$(LOCAL_BUILT_MODULE): | $(my_link_type)
|
||||||
|
|
||||||
|
@@ -379,6 +379,7 @@ endif # need_compile_java
|
|||||||
###########################################################
|
###########################################################
|
||||||
ifndef LOCAL_IS_HOST_MODULE
|
ifndef LOCAL_IS_HOST_MODULE
|
||||||
my_link_type := $(intermediates.COMMON)/link_type
|
my_link_type := $(intermediates.COMMON)/link_type
|
||||||
|
all_link_types: $(my_link_type)
|
||||||
my_link_type_deps := $(strip \
|
my_link_type_deps := $(strip \
|
||||||
$(foreach lib,$(LOCAL_STATIC_JAVA_LIBRARIES),\
|
$(foreach lib,$(LOCAL_STATIC_JAVA_LIBRARIES),\
|
||||||
$(call intermediates-dir-for, \
|
$(call intermediates-dir-for, \
|
||||||
@@ -387,27 +388,25 @@ my_link_type_deps := $(strip \
|
|||||||
$(call intermediates-dir-for, \
|
$(call intermediates-dir-for, \
|
||||||
APPS,$(lib),,COMMON)/link_type))
|
APPS,$(lib),,COMMON)/link_type))
|
||||||
ifeq ($(LOCAL_SDK_VERSION),system_current)
|
ifeq ($(LOCAL_SDK_VERSION),system_current)
|
||||||
$(my_link_type): PRIVATE_LINK_TYPE := system
|
$(my_link_type): PRIVATE_LINK_TYPE := java:system
|
||||||
$(my_link_type): PRIVATE_ALLOWED_TYPES := (sdk|system)
|
$(my_link_type): PRIVATE_WARN_TYPES := java:platform
|
||||||
|
$(my_link_type): PRIVATE_ALLOWED_TYPES := java:sdk java:system
|
||||||
else ifneq ($(LOCAL_SDK_VERSION),)
|
else ifneq ($(LOCAL_SDK_VERSION),)
|
||||||
$(my_link_type): PRIVATE_LINK_TYPE := sdk
|
$(my_link_type): PRIVATE_LINK_TYPE := java:sdk
|
||||||
$(my_link_type): PRIVATE_ALLOWED_TYPES := sdk
|
$(my_link_type): PRIVATE_WARN_TYPES := java:system java:platform
|
||||||
|
$(my_link_type): PRIVATE_ALLOWED_TYPES := java:sdk
|
||||||
else
|
else
|
||||||
$(my_link_type): PRIVATE_LINK_TYPE := platform
|
$(my_link_type): PRIVATE_LINK_TYPE := java:platform
|
||||||
$(my_link_type): PRIVATE_ALLOWED_TYPES := (sdk|system|platform)
|
$(my_link_type): PRIVATE_WARN_TYPES :=
|
||||||
|
$(my_link_type): PRIVATE_ALLOWED_TYPES := java:sdk java:system java:platform
|
||||||
endif
|
endif
|
||||||
|
$(eval $(call link-type-partitions,$(my_link_type)))
|
||||||
$(my_link_type): PRIVATE_DEPS := $(my_link_type_deps)
|
$(my_link_type): PRIVATE_DEPS := $(my_link_type_deps)
|
||||||
$(my_link_type): PRIVATE_MODULE := $(LOCAL_MODULE)
|
$(my_link_type): PRIVATE_MODULE := $(LOCAL_MODULE)
|
||||||
$(my_link_type): PRIVATE_MAKEFILE := $(LOCAL_MODULE_MAKEFILE)
|
$(my_link_type): PRIVATE_MAKEFILE := $(LOCAL_MODULE_MAKEFILE)
|
||||||
$(my_link_type): $(my_link_type_deps)
|
$(my_link_type): $(my_link_type_deps) $(CHECK_LINK_TYPE)
|
||||||
@echo Check Java library module types: $@
|
@echo Check Java library module types: $@
|
||||||
$(hide) mkdir -p $(dir $@)
|
$(check-link-type)
|
||||||
$(hide) rm -f $@
|
|
||||||
$(hide) for f in $(PRIVATE_DEPS); do \
|
|
||||||
grep -qE '^$(PRIVATE_ALLOWED_TYPES)$$' $$f || \
|
|
||||||
$(call echo-warning,"$(PRIVATE_MAKEFILE): $(PRIVATE_MODULE) ($(PRIVATE_LINK_TYPE)) should not link to $$(basename $${f%_intermediates/link_type}) ($$(cat $$f))"); \
|
|
||||||
done
|
|
||||||
$(hide) echo $(PRIVATE_LINK_TYPE) >$@
|
|
||||||
|
|
||||||
$(LOCAL_BUILT_MODULE): $(my_link_type)
|
$(LOCAL_BUILT_MODULE): $(my_link_type)
|
||||||
endif # !LOCAL_IS_HOST_MODULE
|
endif # !LOCAL_IS_HOST_MODULE
|
||||||
|
@@ -1137,4 +1137,7 @@ tidy_only:
|
|||||||
ndk: $(SOONG_OUT_DIR)/ndk.timestamp
|
ndk: $(SOONG_OUT_DIR)/ndk.timestamp
|
||||||
.PHONY: ndk
|
.PHONY: ndk
|
||||||
|
|
||||||
|
.PHONY: all_link_types
|
||||||
|
all_link_types:
|
||||||
|
|
||||||
endif # KATI
|
endif # KATI
|
||||||
|
@@ -138,11 +138,12 @@ else
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
my_link_type := $(intermediates)/link_type
|
my_link_type := $(intermediates)/link_type
|
||||||
$(my_link_type): PRIVATE_LINK_TYPE := $(if $(LOCAL_SDK_VERSION),ndk,platform)
|
$(my_link_type): PRIVATE_LINK_TYPE := native:$(if $(LOCAL_SDK_VERSION),ndk,platform)
|
||||||
|
$(eval $(call link-type-partitions,$(my_link_type)))
|
||||||
$(my_link_type):
|
$(my_link_type):
|
||||||
@echo Check module type: $@
|
@echo Check module type: $@
|
||||||
$(hide) mkdir -p $(dir $@) && rm -f $@
|
$(hide) mkdir -p $(dir $@) && rm -f $@
|
||||||
$(hide) echo $(PRIVATE_LINK_TYPE) >$@
|
$(hide) echo "$(PRIVATE_LINK_TYPE)" >$@
|
||||||
|
|
||||||
$(LOCAL_BUILT_MODULE) : | $(export_includes) $(my_link_type)
|
$(LOCAL_BUILT_MODULE) : | $(export_includes) $(my_link_type)
|
||||||
endif # prebuilt_module_is_a_library
|
endif # prebuilt_module_is_a_library
|
||||||
@@ -397,16 +398,17 @@ $(common_classes_jar) $(common_javalib_jar): PRIVATE_MODULE := $(LOCAL_MODULE)
|
|||||||
|
|
||||||
my_link_type := $(intermediates.COMMON)/link_type
|
my_link_type := $(intermediates.COMMON)/link_type
|
||||||
ifeq ($(LOCAL_SDK_VERSION),system_current)
|
ifeq ($(LOCAL_SDK_VERSION),system_current)
|
||||||
$(my_link_type): PRIVATE_LINK_TYPE := system
|
$(my_link_type): PRIVATE_LINK_TYPE := java:system
|
||||||
else ifneq ($(LOCAL_SDK_VERSION),)
|
else ifneq ($(LOCAL_SDK_VERSION),)
|
||||||
$(my_link_type): PRIVATE_LINK_TYPE := sdk
|
$(my_link_type): PRIVATE_LINK_TYPE := java:sdk
|
||||||
else
|
else
|
||||||
$(my_link_type): PRIVATE_LINK_TYPE := platform
|
$(my_link_type): PRIVATE_LINK_TYPE := java:platform
|
||||||
endif
|
endif
|
||||||
|
$(eval $(call link-type-partitions,$(my_link_type)))
|
||||||
$(my_link_type):
|
$(my_link_type):
|
||||||
@echo Check module type: $@
|
@echo Check module type: $@
|
||||||
$(hide) mkdir -p $(dir $@) && rm -f $@
|
$(hide) mkdir -p $(dir $@) && rm -f $@
|
||||||
$(hide) echo $(PRIVATE_LINK_TYPE) >$@
|
$(hide) echo "$(PRIVATE_LINK_TYPE)" >$@
|
||||||
$(LOCAL_BUILT_MODULE): $(my_link_type)
|
$(LOCAL_BUILT_MODULE): $(my_link_type)
|
||||||
|
|
||||||
ifeq ($(prebuilt_module_is_dex_javalib),true)
|
ifeq ($(prebuilt_module_is_dex_javalib),true)
|
||||||
|
80
tools/check_link_type.py
Executable file
80
tools/check_link_type.py
Executable file
@@ -0,0 +1,80 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
#
|
||||||
|
# Copyright (C) 2016 The Android Open Source Project
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
"""Utility to verify modules link against acceptable module types"""
|
||||||
|
|
||||||
|
from __future__ import print_function
|
||||||
|
import argparse
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
WARNING_MSG = ('\033[1m%(makefile)s: \033[35mwarning:\033[0m\033[1m '
|
||||||
|
'%(module)s (%(type)s) should not link to %(dep_name)s (%(dep_type)s)'
|
||||||
|
'\033[0m')
|
||||||
|
ERROR_MSG = ('\033[1m%(makefile)s: \033[31merror:\033[0m\033[1m '
|
||||||
|
'%(module)s (%(type)s) should not link to %(dep_name)s (%(dep_type)s)'
|
||||||
|
'\033[0m')
|
||||||
|
|
||||||
|
def parse_args():
|
||||||
|
"""Parse commandline arguments."""
|
||||||
|
parser = argparse.ArgumentParser(description='Check link types')
|
||||||
|
parser.add_argument('--makefile', help='Makefile defining module')
|
||||||
|
parser.add_argument('--module', help='The module being checked')
|
||||||
|
parser.add_argument('--type', help='The link type of module')
|
||||||
|
parser.add_argument('--allowed', help='Allow deps to use these types',
|
||||||
|
action='append', default=[], metavar='TYPE')
|
||||||
|
parser.add_argument('--warn', help='Warn if deps use these types',
|
||||||
|
action='append', default=[], metavar='TYPE')
|
||||||
|
parser.add_argument('deps', help='The dependencies to check',
|
||||||
|
metavar='DEP', nargs='*')
|
||||||
|
return parser.parse_args()
|
||||||
|
|
||||||
|
def print_msg(msg, args, dep_name, dep_type):
|
||||||
|
"""Print a warning or error message"""
|
||||||
|
print(msg % {
|
||||||
|
"makefile": args.makefile,
|
||||||
|
"module": args.module,
|
||||||
|
"type": args.type,
|
||||||
|
"dep_name": dep_name,
|
||||||
|
"dep_type": dep_type}, file=sys.stderr)
|
||||||
|
|
||||||
|
def main():
|
||||||
|
"""Program entry point."""
|
||||||
|
args = parse_args()
|
||||||
|
|
||||||
|
failed = False
|
||||||
|
for dep in args.deps:
|
||||||
|
dep_name = os.path.basename(os.path.dirname(dep))
|
||||||
|
if dep_name.endswith('_intermediates'):
|
||||||
|
dep_name = dep_name[:len(dep_name)-len('_intermediates')]
|
||||||
|
|
||||||
|
with open(dep, 'r') as dep_file:
|
||||||
|
dep_types = dep_file.read().strip().split(' ')
|
||||||
|
|
||||||
|
for dep_type in dep_types:
|
||||||
|
if dep_type in args.allowed:
|
||||||
|
continue
|
||||||
|
if dep_type in args.warn:
|
||||||
|
print_msg(WARNING_MSG, args, dep_name, dep_type)
|
||||||
|
else:
|
||||||
|
print_msg(ERROR_MSG, args, dep_name, dep_type)
|
||||||
|
failed = True
|
||||||
|
|
||||||
|
if failed:
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
@@ -91,9 +91,18 @@ warnpatterns = [
|
|||||||
'description':'make: overriding commands/ignoring old commands',
|
'description':'make: overriding commands/ignoring old commands',
|
||||||
'patterns':[r".*: warning: overriding commands for target .+",
|
'patterns':[r".*: warning: overriding commands for target .+",
|
||||||
r".*: warning: ignoring old commands for target .+"] },
|
r".*: warning: ignoring old commands for target .+"] },
|
||||||
{ 'category':'make', 'severity':severity.HIGH, 'members':[], 'option':'',
|
{ 'category':'make', 'severity':severity.HIGH, 'members':[], 'option':'',
|
||||||
'description':'make: LOCAL_CLANG is false',
|
'description':'make: LOCAL_CLANG is false',
|
||||||
'patterns':[r".*: warning: LOCAL_CLANG is set to false"] },
|
'patterns':[r".*: warning: LOCAL_CLANG is set to false"] },
|
||||||
|
{ 'category':'make', 'severity':severity.HIGH, 'members':[], 'option':'',
|
||||||
|
'description':'SDK App using platform shared library',
|
||||||
|
'patterns':[r".*: warning: .+ \(.*app:sdk.*\) should not link to .+ \(native:platform\)"] },
|
||||||
|
{ 'category':'make', 'severity':severity.HIGH, 'members':[], 'option':'',
|
||||||
|
'description':'System module linking to a vendor module',
|
||||||
|
'patterns':[r".*: warning: .+ \(.+\) should not link to .+ \(partition:.+\)"] },
|
||||||
|
{ 'category':'make', 'severity':severity.MEDIUM, 'members':[], 'option':'',
|
||||||
|
'description':'Invalid SDK/NDK linking',
|
||||||
|
'patterns':[r".*: warning: .+ \(.+\) should not link to .+ \(.+\)"] },
|
||||||
{ 'category':'C/C++', 'severity':severity.HIGH, 'members':[], 'option':'-Wimplicit-function-declaration',
|
{ 'category':'C/C++', 'severity':severity.HIGH, 'members':[], 'option':'-Wimplicit-function-declaration',
|
||||||
'description':'Implicit function declaration',
|
'description':'Implicit function declaration',
|
||||||
'patterns':[r".*: warning: implicit declaration of function .+",
|
'patterns':[r".*: warning: implicit declaration of function .+",
|
||||||
|
Reference in New Issue
Block a user