349b0c43ad
libbase is copied into each APEX module which requires it, meaning that there may be multiple instances of libbase running within a single process with their own copy of libbase's globals. This means that SetLogger() and SetAborter() will only impact logs from the instance of libbase that calls it. This change moves this state to liblog, since it will only ever have one instance in a single process. One major side-effect here is that now both ALOGE style and LOG(...) style logs will be handled through the same logger function. For example, a logger specified through libbase's SetLogger() will now see logs sent to liblog through ALOGE(). This is intended behavior. A second side-effect is that libbase's stderr logger is used for all host logging now. It's simply a better logging default than the fake_log_device logger in liblog currently and makes ALOGE and LOG(...) logs on host follow the same format. Bug: 119867234 Test: libbase and liblog unit tests; logging works Change-Id: Ib52cbfb4e43749e50910ed19a993dffae19ace86
216 lines
4.9 KiB
Text
216 lines
4.9 KiB
Text
//
|
|
// Copyright (C) 2015 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: "libbase_cflags_defaults",
|
|
cflags: [
|
|
"-Wall",
|
|
"-Werror",
|
|
"-Wextra",
|
|
],
|
|
target: {
|
|
android: {
|
|
cflags: [
|
|
"-D_FILE_OFFSET_BITS=64",
|
|
],
|
|
},
|
|
},
|
|
}
|
|
|
|
cc_library_headers {
|
|
name: "libbase_headers",
|
|
vendor_available: true,
|
|
recovery_available: true,
|
|
host_supported: true,
|
|
native_bridge_supported: true,
|
|
export_include_dirs: ["include"],
|
|
|
|
target: {
|
|
linux_bionic: {
|
|
enabled: true,
|
|
},
|
|
windows: {
|
|
enabled: true,
|
|
},
|
|
},
|
|
}
|
|
|
|
cc_defaults {
|
|
name: "libbase_defaults",
|
|
defaults: ["libbase_cflags_defaults"],
|
|
srcs: [
|
|
"abi_compatibility.cpp",
|
|
"chrono_utils.cpp",
|
|
"cmsg.cpp",
|
|
"file.cpp",
|
|
"liblog_symbols.cpp",
|
|
"logging.cpp",
|
|
"mapped_file.cpp",
|
|
"parsebool.cpp",
|
|
"parsenetaddress.cpp",
|
|
"process.cpp",
|
|
"properties.cpp",
|
|
"stringprintf.cpp",
|
|
"strings.cpp",
|
|
"threads.cpp",
|
|
"test_utils.cpp",
|
|
],
|
|
|
|
static: {
|
|
cflags: ["-DNO_LIBLOG_DLSYM"],
|
|
},
|
|
|
|
cppflags: ["-Wexit-time-destructors"],
|
|
shared_libs: ["liblog"],
|
|
target: {
|
|
android: {
|
|
sanitize: {
|
|
misc_undefined: ["integer"],
|
|
},
|
|
|
|
},
|
|
linux: {
|
|
srcs: [
|
|
"errors_unix.cpp",
|
|
],
|
|
},
|
|
darwin: {
|
|
srcs: [
|
|
"errors_unix.cpp",
|
|
],
|
|
},
|
|
linux_bionic: {
|
|
enabled: true,
|
|
},
|
|
windows: {
|
|
srcs: [
|
|
"errors_windows.cpp",
|
|
"utf8.cpp",
|
|
],
|
|
exclude_srcs: [
|
|
"cmsg.cpp",
|
|
],
|
|
enabled: true,
|
|
},
|
|
},
|
|
}
|
|
|
|
cc_library {
|
|
name: "libbase",
|
|
defaults: ["libbase_defaults"],
|
|
vendor_available: true,
|
|
recovery_available: true,
|
|
host_supported: true,
|
|
native_bridge_supported: true,
|
|
vndk: {
|
|
enabled: true,
|
|
support_system_process: true,
|
|
},
|
|
header_libs: [
|
|
"libbase_headers",
|
|
],
|
|
export_header_lib_headers: ["libbase_headers"],
|
|
static_libs: ["fmtlib"],
|
|
whole_static_libs: ["fmtlib"],
|
|
export_static_lib_headers: ["fmtlib"],
|
|
}
|
|
|
|
cc_library_static {
|
|
name: "libbase_ndk",
|
|
defaults: ["libbase_defaults"],
|
|
sdk_version: "current",
|
|
stl: "c++_static",
|
|
export_include_dirs: ["include"],
|
|
static_libs: ["fmtlib_ndk"],
|
|
whole_static_libs: ["fmtlib_ndk"],
|
|
export_static_lib_headers: ["fmtlib_ndk"],
|
|
}
|
|
|
|
// Tests
|
|
// ------------------------------------------------------------------------------
|
|
cc_test {
|
|
name: "libbase_test",
|
|
defaults: ["libbase_cflags_defaults"],
|
|
host_supported: true,
|
|
srcs: [
|
|
"cmsg_test.cpp",
|
|
"endian_test.cpp",
|
|
"errors_test.cpp",
|
|
"expected_test.cpp",
|
|
"file_test.cpp",
|
|
"logging_test.cpp",
|
|
"macros_test.cpp",
|
|
"mapped_file_test.cpp",
|
|
"no_destructor_test.cpp",
|
|
"parsedouble_test.cpp",
|
|
"parsebool_test.cpp",
|
|
"parseint_test.cpp",
|
|
"parsenetaddress_test.cpp",
|
|
"process_test.cpp",
|
|
"properties_test.cpp",
|
|
"result_test.cpp",
|
|
"scopeguard_test.cpp",
|
|
"stringprintf_test.cpp",
|
|
"strings_test.cpp",
|
|
"test_main.cpp",
|
|
"test_utils_test.cpp",
|
|
],
|
|
target: {
|
|
android: {
|
|
sanitize: {
|
|
misc_undefined: ["integer"],
|
|
},
|
|
},
|
|
linux: {
|
|
srcs: ["chrono_utils_test.cpp"],
|
|
},
|
|
windows: {
|
|
srcs: ["utf8_test.cpp"],
|
|
cflags: ["-Wno-unused-parameter"],
|
|
enabled: true,
|
|
},
|
|
},
|
|
local_include_dirs: ["."],
|
|
shared_libs: ["libbase"],
|
|
compile_multilib: "both",
|
|
multilib: {
|
|
lib32: {
|
|
suffix: "32",
|
|
},
|
|
lib64: {
|
|
suffix: "64",
|
|
},
|
|
},
|
|
test_suites: ["device-tests"],
|
|
}
|
|
|
|
cc_benchmark {
|
|
name: "libbase_benchmark",
|
|
defaults: ["libbase_cflags_defaults"],
|
|
|
|
srcs: ["format_benchmark.cpp"],
|
|
shared_libs: ["libbase"],
|
|
|
|
compile_multilib: "both",
|
|
multilib: {
|
|
lib32: {
|
|
suffix: "32",
|
|
},
|
|
lib64: {
|
|
suffix: "64",
|
|
},
|
|
},
|
|
}
|