From 14fc01301d3e1c2b04863cd739931cd71b1a406e Mon Sep 17 00:00:00 2001 From: Tom Cherry Date: Tue, 9 May 2017 17:11:57 -0700 Subject: [PATCH] init: start move to Android.bp Move libinit, init_tests, and test_service to Android.bp Leave init in Android.mk as it has unfulfilled dependencies, but create a comment in Android.bp for future use. Remove libinit_parser and init_parser_tests as that code was never used in init. Bug: 36970783 Bug: 37512442 Test: Build, boot bullhead, init unit tests Change-Id: Id81cd10ea09453a5fd762ba9189276aad79d5444 --- init/Android.bp | 164 +++++++++++++++++++++++++++++++++++ init/Android.mk | 75 ---------------- init/test_service/Android.bp | 22 +++++ init/test_service/Android.mk | 27 ------ 4 files changed, 186 insertions(+), 102 deletions(-) create mode 100644 init/Android.bp create mode 100644 init/test_service/Android.bp delete mode 100644 init/test_service/Android.mk diff --git a/init/Android.bp b/init/Android.bp new file mode 100644 index 000000000..80d5c429a --- /dev/null +++ b/init/Android.bp @@ -0,0 +1,164 @@ +// +// Copyright (C) 2017 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. +// + +cc_defaults { + name: "init_defaults", + cpp_std: "experimental", + sanitize: { + misc_undefined: ["integer"], + }, + tidy_checks: ["-misc-forwarding-reference-overload"], + cppflags: [ + "-DLOG_UEVENTS=0", + "-Wall", + "-Wextra", + "-Wno-unused-parameter", + "-Werror", + "-DALLOW_LOCAL_PROP_OVERRIDE=0", + "-DALLOW_PERMISSIVE_SELINUX=0", + "-DREBOOT_BOOTLOADER_ON_PANIC=0", + "-DWORLD_WRITABLE_KMSG=0", + "-DDUMP_ON_UMOUNT_FAILURE=0", + "-DSHUTDOWN_ZERO_TIMEOUT=0", + ], + product_variables: { + debuggable: { + cppflags: [ + "-UALLOW_LOCAL_PROP_OVERRIDE", + "-DALLOW_LOCAL_PROP_OVERRIDE=1", + "-UALLOW_PERMISSIVE_SELINUX", + "-DALLOW_PERMISSIVE_SELINUX=1", + "-UREBOOT_BOOTLOADER_ON_PANIC", + "-DREBOOT_BOOTLOADER_ON_PANIC=1", + "-UWORLD_WRITABLE_KMSG", + "-DWORLD_WRITABLE_KMSG=1", + "-UDUMP_ON_UMOUNT_FAILURE", + "-DDUMP_ON_UMOUNT_FAILURE=1", + ], + }, + eng: { + cppflags: [ + "-USHUTDOWN_ZERO_TIMEOUT", + "-DSHUTDOWN_ZERO_TIMEOUT=1", + ], + }, + }, +} + +cc_library_static { + name: "libinit", + defaults: ["init_defaults"], + srcs: [ + "action.cpp", + "capabilities.cpp", + "descriptors.cpp", + "devices.cpp", + "import_parser.cpp", + "init_parser.cpp", + "log.cpp", + "parser.cpp", + "service.cpp", + "util.cpp", + ], + whole_static_libs: ["libcap"], + static_libs: [ + "libbase", + "libselinux", + "liblog", + "libprocessgroup", + ], +} + +/* +This is not yet ready, see the below TODOs for what is missing + +cc_binary { + // TODO: Missing, + //LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT) + //LOCAL_UNSTRIPPED_PATH := $(TARGET_ROOT_OUT_UNSTRIPPED) + + name: "init", + defaults: ["init_defaults"], + static_executable: true, + srcs: [ + "bootchart.cpp", + "builtins.cpp", + "init.cpp", + "init_first_stage.cpp", + "keychords.cpp", + "property_service.cpp", + "reboot.cpp", + "signal_handler.cpp", + "ueventd.cpp", + "watchdogd.cpp", + ], + include_dirs: [ + "system/core/mkbootimg" + ], + static_libs: [ + "libinit", + "libbootloader_message", + "libfs_mgr", + "libfec", + "libfec_rs", + "libsquashfs_utils", + "liblogwrap", + "libext4_utils", + "libcutils", + "libbase", + "libc", + "libselinux", + "liblog", + "libcrypto_utils", + "libcrypto", + "libc++_static", + "libdl", + "libsparse", + "libz", + "libprocessgroup", + "libavb", + "libkeyutils", + ], + symlinks: [ + "sbin/ueventd", + "sbin/watchdogd", + ], +} +*/ + +// Tests +// ------------------------------------------------------------------------------ + +cc_test { + name: "init_tests", + defaults: ["init_defaults"], + srcs: [ + "devices_test.cpp", + "init_parser_test.cpp", + "init_test.cpp", + "property_service_test.cpp", + "service_test.cpp", + "util_test.cpp", + ], + shared_libs: [ + "libbase", + "libcutils", + "libselinux", + ], + static_libs: ["libinit"], +} + +subdirs = ["*"] diff --git a/init/Android.mk b/init/Android.mk index 0db65cb94..489d0767a 100644 --- a/init/Android.mk +++ b/init/Android.mk @@ -39,50 +39,6 @@ init_cflags += \ # -- -# If building on Linux, then build unit test for the host. -ifeq ($(HOST_OS),linux) -include $(CLEAR_VARS) -LOCAL_CPPFLAGS := $(init_cflags) -LOCAL_SRC_FILES:= \ - parser/tokenizer.cpp \ - -LOCAL_MODULE := libinit_parser -LOCAL_CLANG := true -include $(BUILD_HOST_STATIC_LIBRARY) - -include $(CLEAR_VARS) -LOCAL_MODULE := init_parser_tests -LOCAL_SRC_FILES := \ - parser/tokenizer_test.cpp \ - -LOCAL_STATIC_LIBRARIES := libinit_parser -LOCAL_CLANG := true -include $(BUILD_HOST_NATIVE_TEST) -endif - -include $(CLEAR_VARS) -# b/38002385, work around clang-tidy segmentation fault. -LOCAL_TIDY_CHECKS := -misc-forwarding-reference-overload -LOCAL_CPPFLAGS := $(init_cflags) -LOCAL_SRC_FILES:= \ - action.cpp \ - capabilities.cpp \ - descriptors.cpp \ - devices.cpp \ - import_parser.cpp \ - init_parser.cpp \ - log.cpp \ - parser.cpp \ - service.cpp \ - util.cpp \ - -LOCAL_STATIC_LIBRARIES := libbase libselinux liblog libprocessgroup -LOCAL_WHOLE_STATIC_LIBRARIES := libcap -LOCAL_MODULE := libinit -LOCAL_SANITIZE := integer -LOCAL_CLANG := true -include $(BUILD_STATIC_LIBRARY) - include $(CLEAR_VARS) # b/38002385, work around clang-tidy segmentation fault. LOCAL_TIDY_CHECKS := -misc-forwarding-reference-overload @@ -139,34 +95,3 @@ LOCAL_POST_INSTALL_CMD := $(hide) mkdir -p $(TARGET_ROOT_OUT)/sbin; \ LOCAL_SANITIZE := integer LOCAL_CLANG := true include $(BUILD_EXECUTABLE) - - -# Unit tests. -# ========================================================= -include $(CLEAR_VARS) -# b/38002385, work around clang-tidy segmentation fault. -LOCAL_TIDY_CHECKS := -misc-forwarding-reference-overload -LOCAL_MODULE := init_tests -LOCAL_SRC_FILES := \ - devices_test.cpp \ - init_parser_test.cpp \ - init_test.cpp \ - property_service_test.cpp \ - service_test.cpp \ - util_test.cpp \ - -LOCAL_SHARED_LIBRARIES += \ - libbase \ - libcutils \ - libselinux \ - -LOCAL_STATIC_LIBRARIES := libinit -LOCAL_SANITIZE := integer -LOCAL_CLANG := true -LOCAL_CPPFLAGS := -Wall -Wextra -Werror -std=gnu++1z -include $(BUILD_NATIVE_TEST) - - -# Include targets in subdirs. -# ========================================================= -include $(call all-makefiles-under,$(LOCAL_PATH)) diff --git a/init/test_service/Android.bp b/init/test_service/Android.bp new file mode 100644 index 000000000..9bd6f275e --- /dev/null +++ b/init/test_service/Android.bp @@ -0,0 +1,22 @@ +// +// Copyright (C) 2017 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. +// + +cc_binary { + name: "test_service", + srcs: ["test_service.cpp"], + shared_libs: ["libbase"], + init_rc: ["test_service.rc"], +} diff --git a/init/test_service/Android.mk b/init/test_service/Android.mk deleted file mode 100644 index 30c9e9d04..000000000 --- a/init/test_service/Android.mk +++ /dev/null @@ -1,27 +0,0 @@ -# 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. - -LOCAL_PATH := $(call my-dir) - -# Sample service for testing. -# ========================================================= -include $(CLEAR_VARS) -LOCAL_MODULE := test_service -LOCAL_SRC_FILES := test_service.cpp - -LOCAL_SHARED_LIBRARIES += libbase - -LOCAL_INIT_RC := test_service.rc - -include $(BUILD_EXECUTABLE)