You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
244 lines
5.3 KiB
244 lines
5.3 KiB
// |
|
// Copyright (C) 2014 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: "libbacktrace_common", |
|
|
|
cflags: [ |
|
"-Wall", |
|
"-Werror", |
|
], |
|
|
|
// The latest clang (r230699) does not allow SP/PC to be declared in inline asm lists. |
|
clang_cflags: ["-Wno-inline-asm"], |
|
|
|
include_dirs: ["external/libunwind/include/tdep"], |
|
|
|
|
|
target: { |
|
darwin: { |
|
enabled: false, |
|
}, |
|
}, |
|
|
|
multilib: { |
|
lib32: { |
|
suffix: "32", |
|
}, |
|
lib64: { |
|
suffix: "64", |
|
}, |
|
} |
|
} |
|
|
|
libbacktrace_sources = [ |
|
"Backtrace.cpp", |
|
"BacktraceCurrent.cpp", |
|
"BacktracePtrace.cpp", |
|
"thread_utils.c", |
|
"ThreadEntry.cpp", |
|
"UnwindCurrent.cpp", |
|
"UnwindMap.cpp", |
|
"UnwindPtrace.cpp", |
|
] |
|
|
|
cc_library_headers { |
|
name: "libbacktrace_headers", |
|
vendor_available: true, |
|
export_include_dirs: ["include"], |
|
} |
|
|
|
cc_library { |
|
name: "libbacktrace", |
|
vendor_available: true, |
|
vndk: { |
|
enabled: true, |
|
support_system_process: true, |
|
}, |
|
defaults: ["libbacktrace_common"], |
|
host_supported: true, |
|
|
|
srcs: [ |
|
"BacktraceMap.cpp", |
|
], |
|
|
|
export_include_dirs: ["include"], |
|
|
|
target: { |
|
darwin: { |
|
enabled: true, |
|
}, |
|
linux: { |
|
srcs: libbacktrace_sources, |
|
|
|
shared_libs: [ |
|
"libbase", |
|
"liblog", |
|
"libunwind", |
|
], |
|
|
|
static_libs: ["libcutils"], |
|
host_ldlibs: ["-lrt"], |
|
}, |
|
linux_bionic: { |
|
enabled: true, |
|
srcs: libbacktrace_sources, |
|
|
|
shared_libs: [ |
|
"libbase", |
|
"liblog", |
|
"libunwind", |
|
], |
|
|
|
static_libs: ["libcutils"], |
|
}, |
|
android: { |
|
srcs: libbacktrace_sources, |
|
|
|
shared_libs: [ |
|
"libbase", |
|
"liblog", |
|
"libunwind", |
|
], |
|
|
|
static_libs: ["libasync_safe", "libcutils"], |
|
}, |
|
}, |
|
|
|
product_variables: { |
|
debuggable: { |
|
cflags: ["-DDEBUG_DUMP_BACKTRACE_TIMEOUT"], |
|
}, |
|
}, |
|
|
|
whole_static_libs: ["libdemangle"], |
|
} |
|
|
|
cc_library_shared { |
|
name: "libbacktrace_test", |
|
defaults: ["libbacktrace_common"], |
|
host_supported: true, |
|
strip: { |
|
none: true, |
|
}, |
|
cflags: ["-O0"], |
|
srcs: ["backtrace_testlib.cpp"], |
|
|
|
target: { |
|
linux: { |
|
shared_libs: [ |
|
"libunwind", |
|
], |
|
}, |
|
android: { |
|
shared_libs: [ |
|
"libunwind", |
|
], |
|
}, |
|
} |
|
} |
|
|
|
//------------------------------------------------------------------------- |
|
// The libbacktrace_offline static library. |
|
//------------------------------------------------------------------------- |
|
cc_library_static { |
|
name: "libbacktrace_offline", |
|
defaults: ["libbacktrace_common"], |
|
host_supported: true, |
|
srcs: ["BacktraceOffline.cpp"], |
|
|
|
cflags: [ |
|
"-D__STDC_CONSTANT_MACROS", |
|
"-D__STDC_LIMIT_MACROS", |
|
"-D__STDC_FORMAT_MACROS", |
|
], |
|
|
|
header_libs: ["llvm-headers"], |
|
|
|
// Use shared libraries so their headers get included during build. |
|
shared_libs = [ |
|
"libbase", |
|
"libunwind", |
|
"libziparchive", |
|
], |
|
} |
|
|
|
//------------------------------------------------------------------------- |
|
// The backtrace_test executable. |
|
//------------------------------------------------------------------------- |
|
cc_test { |
|
name: "backtrace_test", |
|
defaults: ["libbacktrace_common"], |
|
host_supported: true, |
|
srcs: [ |
|
"backtrace_offline_test.cpp", |
|
"backtrace_test.cpp", |
|
"GetPss.cpp", |
|
"thread_utils.c", |
|
], |
|
|
|
cflags: [ |
|
"-fno-builtin", |
|
"-O0", |
|
"-g", |
|
], |
|
|
|
shared_libs: [ |
|
"libbacktrace_test", |
|
"libbacktrace", |
|
"libbase", |
|
"libcutils", |
|
"liblog", |
|
"libunwind", |
|
], |
|
|
|
group_static_libs: true, |
|
|
|
// Statically link LLVMlibraries to remove dependency on llvm shared library. |
|
static_libs = [ |
|
"libbacktrace_offline", |
|
"libLLVMObject", |
|
"libLLVMBitReader", |
|
"libLLVMMC", |
|
"libLLVMMCParser", |
|
"libLLVMCore", |
|
"libLLVMSupport", |
|
|
|
"libziparchive", |
|
"libz", |
|
], |
|
|
|
header_libs: ["llvm-headers"], |
|
|
|
target: { |
|
android: { |
|
cflags: ["-DENABLE_PSS_TESTS"], |
|
shared_libs: [ |
|
"libdl", |
|
"libutils", |
|
], |
|
}, |
|
linux: { |
|
host_ldlibs: [ |
|
"-lpthread", |
|
"-lrt", |
|
"-ldl", |
|
"-lncurses", |
|
], |
|
static_libs: ["libutils"], |
|
}, |
|
}, |
|
}
|
|
|