c45fe9f7bd
Bionic libs are part of the runtime APEX (com.android.runtime). In order to be able to update the runtime APEX independetly from the platform, we have to prevent things outside of the APEX from using bionic symbols that are not guaranteed to be stable. Otherwise, platform could break when a symbol is removed from the libs via the APEX update. To achive this goal, this change adds stubs variant to the bionic libs. With this, things outside of the runtime APEX (i.e. other APEXes and the platform) are built with the stubs variants that provide only the symbols that are guaranteed to be stable. The set of symbols are basically the same as the symbols available to NDK clients. However, there are a few additional symbols that are not available for NDK but should be made available for platform components. They are marked with "# apex" tag. Symbols with that tag are not exposed to apps (via NDK stubs) or vendors (via LLNDK stubs). Note that the stubs is a build-time only artifact. It is used just to break the build when private symbols are used outside of the runtime APEX. At runtime, the real library in the APEX is used. Bug: 120266448 Test: m Test: m bionic-unit-tests Change-Id: I7b8d75830c81d7d7d54e2fca21a85b3417531b47
706 lines
20 KiB
Text
706 lines
20 KiB
Text
//
|
|
// Copyright (C) 2012 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: "bionic_tests_defaults",
|
|
host_supported: true,
|
|
cpp_std: "experimental",
|
|
target: {
|
|
darwin: {
|
|
enabled: false,
|
|
},
|
|
},
|
|
cflags: [
|
|
"-fstack-protector-all",
|
|
"-g",
|
|
"-Wall",
|
|
"-Wextra",
|
|
"-Wunused",
|
|
"-Werror",
|
|
"-fno-builtin",
|
|
|
|
// We want to test deprecated API too.
|
|
"-Wno-deprecated-declarations",
|
|
|
|
// For glibc.
|
|
"-D__STDC_LIMIT_MACROS",
|
|
],
|
|
stl: "libc++",
|
|
sanitize: {
|
|
never: true,
|
|
},
|
|
bootstrap: true,
|
|
}
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// All standard tests.
|
|
// -----------------------------------------------------------------------------
|
|
|
|
// Test diagnostics emitted by clang. The library that results is useless; we
|
|
// just want to run '-Xclang -verify', which will fail if the diagnostics don't
|
|
// match up with what the source file says they should be.
|
|
cc_test_library {
|
|
name: "clang_diagnostic_tests",
|
|
cflags: [
|
|
"-Xclang",
|
|
"-verify",
|
|
],
|
|
srcs: ["sys_ioctl_diag_test.cpp"],
|
|
}
|
|
|
|
cc_test_library {
|
|
name: "libBionicStandardTests",
|
|
defaults: ["bionic_tests_defaults"],
|
|
srcs: [
|
|
"alloca_test.cpp",
|
|
"android_get_device_api_level.cpp",
|
|
"arpa_inet_test.cpp",
|
|
"async_safe_test.cpp",
|
|
"assert_test.cpp",
|
|
"buffer_tests.cpp",
|
|
"bug_26110743_test.cpp",
|
|
"byteswap_test.cpp",
|
|
"complex_test.cpp",
|
|
"complex_force_long_double_test.cpp",
|
|
"ctype_test.cpp",
|
|
"dirent_test.cpp",
|
|
"elf_test.cpp",
|
|
"endian_test.cpp",
|
|
"errno_test.cpp",
|
|
"error_test.cpp",
|
|
"eventfd_test.cpp",
|
|
"fcntl_test.cpp",
|
|
"fdsan_test.cpp",
|
|
"fenv_test.cpp",
|
|
"float_test.cpp",
|
|
"ftw_test.cpp",
|
|
"getauxval_test.cpp",
|
|
"getcwd_test.cpp",
|
|
"glob_test.cpp",
|
|
"grp_pwd_test.cpp",
|
|
"grp_pwd_file_test.cpp",
|
|
"iconv_test.cpp",
|
|
"ifaddrs_test.cpp",
|
|
"inttypes_test.cpp",
|
|
"iso646_test.c",
|
|
"langinfo_test.cpp",
|
|
"leak_test.cpp",
|
|
"libgen_basename_test.cpp",
|
|
"libgen_test.cpp",
|
|
"limits_test.cpp",
|
|
"linux_swab_test.cpp",
|
|
"locale_test.cpp",
|
|
"malloc_iterate_test.cpp",
|
|
"malloc_test.cpp",
|
|
"math_test.cpp",
|
|
"math_force_long_double_test.cpp",
|
|
"membarrier_test.cpp",
|
|
"mntent_test.cpp",
|
|
"netdb_test.cpp",
|
|
"net_if_test.cpp",
|
|
"netinet_ether_test.cpp",
|
|
"netinet_in_test.cpp",
|
|
"netinet_ip_icmp_test.cpp",
|
|
"netinet_udp_test.cpp",
|
|
"nl_types_test.cpp",
|
|
"poll_test.cpp",
|
|
"pthread_test.cpp",
|
|
"pty_test.cpp",
|
|
"regex_test.cpp",
|
|
"resolv_test.cpp",
|
|
"sched_test.cpp",
|
|
"scs_test.cpp",
|
|
"scsi_sg_test.cpp",
|
|
"search_test.cpp",
|
|
"semaphore_test.cpp",
|
|
"setjmp_test.cpp",
|
|
"signal_test.cpp",
|
|
"spawn_test.cpp",
|
|
"stack_protector_test.cpp",
|
|
"stack_protector_test_helper.cpp",
|
|
"stack_unwinding_test.cpp",
|
|
"stdalign_test.cpp",
|
|
"stdarg_test.cpp",
|
|
"stdatomic_test.cpp",
|
|
"stdbool_test.c",
|
|
"stdint_test.cpp",
|
|
"stdio_nofortify_test.cpp",
|
|
"stdio_test.cpp",
|
|
"stdio_ext_test.cpp",
|
|
"stdlib_test.cpp",
|
|
"stdnoreturn_test.cpp",
|
|
"string_nofortify_test.cpp",
|
|
"string_test.cpp",
|
|
"string_posix_strerror_r_test.cpp",
|
|
"strings_nofortify_test.cpp",
|
|
"strings_test.cpp",
|
|
"sstream_test.cpp",
|
|
"sys_epoll_test.cpp",
|
|
"sys_mman_test.cpp",
|
|
"sys_msg_test.cpp",
|
|
"sys_personality_test.cpp",
|
|
"sys_prctl_test.cpp",
|
|
"sys_procfs_test.cpp",
|
|
"sys_ptrace_test.cpp",
|
|
"sys_quota_test.cpp",
|
|
"sys_random_test.cpp",
|
|
"sys_resource_test.cpp",
|
|
"sys_select_test.cpp",
|
|
"sys_sem_test.cpp",
|
|
"sys_sendfile_test.cpp",
|
|
"sys_shm_test.cpp",
|
|
"sys_signalfd_test.cpp",
|
|
"sys_socket_test.cpp",
|
|
"sys_stat_test.cpp",
|
|
"sys_statvfs_test.cpp",
|
|
"sys_syscall_test.cpp",
|
|
"sys_sysinfo_test.cpp",
|
|
"sys_sysmacros_test.cpp",
|
|
"sys_time_test.cpp",
|
|
"sys_timex_test.cpp",
|
|
"sys_ttydefaults_test.cpp",
|
|
"sys_types_test.cpp",
|
|
"sys_uio_test.cpp",
|
|
"sys_un_test.cpp",
|
|
"sys_vfs_test.cpp",
|
|
"sys_xattr_test.cpp",
|
|
"system_properties_test.cpp",
|
|
"system_properties_test2.cpp",
|
|
"termios_test.cpp",
|
|
"tgmath_test.c",
|
|
"time_test.cpp",
|
|
"uchar_test.cpp",
|
|
"unistd_nofortify_test.cpp",
|
|
"unistd_test.cpp",
|
|
"utmp_test.cpp",
|
|
"wchar_test.cpp",
|
|
"wctype_test.cpp",
|
|
],
|
|
|
|
include_dirs: [
|
|
"bionic/libc",
|
|
"external/tinyxml2",
|
|
],
|
|
|
|
target: {
|
|
bionic: {
|
|
whole_static_libs: [
|
|
"libasync_safe",
|
|
"libprocinfo",
|
|
"libsystemproperties",
|
|
],
|
|
},
|
|
},
|
|
|
|
static_libs: [
|
|
"libtinyxml2",
|
|
"liblog",
|
|
"libbase",
|
|
],
|
|
shared: {
|
|
enabled: false,
|
|
},
|
|
|
|
generated_headers: ["generated_android_ids"],
|
|
}
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Fortify tests.
|
|
// -----------------------------------------------------------------------------
|
|
|
|
cc_defaults {
|
|
name: "bionic_fortify_tests_defaults",
|
|
cflags: [
|
|
"-U_FORTIFY_SOURCE",
|
|
],
|
|
srcs: ["fortify_test_main.cpp"],
|
|
target: {
|
|
host: {
|
|
clang_cflags: ["-D__clang__"],
|
|
},
|
|
},
|
|
}
|
|
|
|
// If building this fails, then we have both FORTIFY and ASAN enabled, which
|
|
// isn't desirable. (Ideally, we'd emit FORTIFY diagnostics even with ASAN
|
|
// enabled, but that's not a reality today.) This is meant to be otherwise
|
|
// unused.
|
|
cc_test_library {
|
|
name: "fortify_disabled_for_asan",
|
|
cflags: [
|
|
"-Werror",
|
|
"-D_FORTIFY_SOURCE=2",
|
|
// "sanitize: address" doesn't work on platforms where libasan isn't
|
|
// enabled. Since the intent is just to build this, we can get away with
|
|
// passing this flag on its own.
|
|
"-fsanitize=address",
|
|
],
|
|
// Ignore that we don't have ASAN symbols linked in.
|
|
allow_undefined_symbols: true,
|
|
srcs: ["fortify_filecheck_diagnostics_test.cpp"],
|
|
}
|
|
|
|
// Ensure we don't use FORTIFY'ed functions with the static analyzer/clang-tidy:
|
|
// it can confuse these tools pretty easily. If this builds successfully, then
|
|
// __clang_analyzer__ overrode FORTIFY. Otherwise, FORTIFY was incorrectly
|
|
// enabled. The library that results from building this is meant to be unused.
|
|
cc_test_library {
|
|
name: "fortify_disabled_for_tidy",
|
|
cflags: [
|
|
"-Werror",
|
|
"-D_FORTIFY_SOURCE=2",
|
|
"-D__clang_analyzer__",
|
|
],
|
|
srcs: ["fortify_filecheck_diagnostics_test.cpp"],
|
|
}
|
|
|
|
cc_test_library {
|
|
name: "libfortify1-tests-clang",
|
|
defaults: [
|
|
"bionic_fortify_tests_defaults",
|
|
"bionic_tests_defaults",
|
|
],
|
|
cflags: [
|
|
"-D_FORTIFY_SOURCE=1",
|
|
"-DTEST_NAME=Fortify1_clang",
|
|
],
|
|
shared: {
|
|
enabled: false,
|
|
},
|
|
}
|
|
|
|
cc_test_library {
|
|
name: "libfortify2-tests-clang",
|
|
defaults: [
|
|
"bionic_fortify_tests_defaults",
|
|
"bionic_tests_defaults",
|
|
],
|
|
cflags: [
|
|
"-D_FORTIFY_SOURCE=2",
|
|
"-DTEST_NAME=Fortify2_clang",
|
|
],
|
|
shared: {
|
|
enabled: false,
|
|
},
|
|
}
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Library of all tests (excluding the dynamic linker tests).
|
|
// -----------------------------------------------------------------------------
|
|
cc_test_library {
|
|
name: "libBionicTests",
|
|
defaults: ["bionic_tests_defaults"],
|
|
whole_static_libs: [
|
|
"libBionicStandardTests",
|
|
"libfortify1-tests-clang",
|
|
"libfortify2-tests-clang",
|
|
],
|
|
shared: {
|
|
enabled: false,
|
|
},
|
|
}
|
|
|
|
cc_test_library {
|
|
name: "libBionicLoaderTests",
|
|
defaults: [
|
|
"bionic_tests_defaults",
|
|
"llvm-defaults",
|
|
],
|
|
srcs: [
|
|
"atexit_test.cpp",
|
|
"dl_test.cpp",
|
|
"dlfcn_symlink_support.cpp",
|
|
"dlfcn_test.cpp",
|
|
"link_test.cpp",
|
|
"pthread_dlfcn_test.cpp",
|
|
],
|
|
static_libs: [
|
|
"libbase",
|
|
],
|
|
include_dirs: [
|
|
"bionic/libc",
|
|
],
|
|
shared: {
|
|
enabled: false,
|
|
},
|
|
target: {
|
|
android: {
|
|
srcs: [
|
|
"cfi_test.cpp",
|
|
"dlext_test.cpp",
|
|
"libdl_test.cpp",
|
|
],
|
|
static_libs: [
|
|
"libpagemap",
|
|
"libziparchive",
|
|
"libLLVMObject",
|
|
"libLLVMBitReader",
|
|
"libLLVMMC",
|
|
"libLLVMMCParser",
|
|
"libLLVMCore",
|
|
"libLLVMSupport",
|
|
],
|
|
},
|
|
},
|
|
}
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Library of bionic customized gtest main function, with normal gtest output format,
|
|
// which is needed by bionic cts test.
|
|
// -----------------------------------------------------------------------------
|
|
cc_test_library {
|
|
name: "libBionicCtsGtestMain",
|
|
defaults: ["bionic_tests_defaults"],
|
|
srcs: [
|
|
"gtest_globals_cts.cpp",
|
|
"gtest_main.cpp",
|
|
],
|
|
shared: {
|
|
enabled: false,
|
|
},
|
|
whole_static_libs: [
|
|
"libgtest_isolated",
|
|
],
|
|
}
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Tests for the device using bionic's .so. Run with:
|
|
// adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests
|
|
// adb shell /data/nativetest64/bionic-unit-tests/bionic-unit-tests
|
|
// -----------------------------------------------------------------------------
|
|
cc_defaults {
|
|
name: "bionic_unit_tests_defaults",
|
|
host_supported: false,
|
|
|
|
whole_static_libs: [
|
|
"libBionicTests",
|
|
"libBionicLoaderTests",
|
|
],
|
|
|
|
static_libs: [
|
|
"libtinyxml2",
|
|
"liblog",
|
|
"libbase",
|
|
],
|
|
|
|
srcs: [
|
|
// TODO: Include __cxa_thread_atexit_test.cpp to glibc tests once it is upgraded (glibc 2.18+)
|
|
"__cxa_thread_atexit_test.cpp",
|
|
"gtest_globals.cpp",
|
|
"thread_local_test.cpp",
|
|
],
|
|
|
|
conlyflags: [
|
|
"-fexceptions",
|
|
"-fnon-call-exceptions",
|
|
],
|
|
|
|
ldflags: ["-Wl,--export-dynamic"],
|
|
|
|
include_dirs: ["bionic/libc"],
|
|
|
|
stl: "libc++_static",
|
|
|
|
target: {
|
|
android: {
|
|
shared_libs: [
|
|
"ld-android",
|
|
"libdl",
|
|
"libdl_preempt_test_1",
|
|
"libdl_preempt_test_2",
|
|
"libdl_test_df_1_global",
|
|
],
|
|
static_libs: [
|
|
// The order of these libraries matters, do not shuffle them.
|
|
"libbase",
|
|
"libpagemap",
|
|
"libziparchive",
|
|
"libz",
|
|
"libutils",
|
|
"libLLVMObject",
|
|
"libLLVMBitReader",
|
|
"libLLVMMC",
|
|
"libLLVMMCParser",
|
|
"libLLVMCore",
|
|
"libLLVMSupport",
|
|
],
|
|
ldflags: [
|
|
"-Wl,--rpath,${ORIGIN}/../bionic-loader-test-libs",
|
|
"-Wl,--enable-new-dtags",
|
|
],
|
|
},
|
|
},
|
|
}
|
|
|
|
cc_test {
|
|
name: "bionic-unit-tests",
|
|
gtest: false,
|
|
defaults: [
|
|
"bionic_unit_tests_defaults",
|
|
"bionic_tests_defaults",
|
|
],
|
|
|
|
srcs: [
|
|
"gtest_main.cpp",
|
|
],
|
|
|
|
static_libs: [
|
|
"libgtest_isolated",
|
|
],
|
|
|
|
target: {
|
|
android: {
|
|
shared_libs: ["libicuuc"],
|
|
},
|
|
},
|
|
|
|
required: [
|
|
"cfi_test_helper",
|
|
"cfi_test_helper2",
|
|
"exec_linker_helper",
|
|
"exec_linker_helper_lib",
|
|
"libtest_dt_runpath_a",
|
|
"libtest_dt_runpath_b",
|
|
"libtest_dt_runpath_c",
|
|
"libtest_dt_runpath_x",
|
|
"libatest_simple_zip",
|
|
"libcfi-test",
|
|
"libcfi-test-bad",
|
|
"libdlext_test_different_soname",
|
|
"libdlext_test_fd",
|
|
"libdlext_test_norelro",
|
|
"libdlext_test_runpath_zip_zipaligned",
|
|
"libdlext_test",
|
|
"libdlext_test_zip",
|
|
"libdlext_test_zip_zipaligned",
|
|
"libdl_preempt_test_1",
|
|
"libdl_preempt_test_2",
|
|
"libdl_test_df_1_global",
|
|
"libelf-tls-library",
|
|
"libgnu-hash-table-library",
|
|
"libsysv-hash-table-library",
|
|
"libtestshared",
|
|
"libtest_atexit",
|
|
"libtest_check_order_dlsym_1_left",
|
|
"libtest_check_order_dlsym_2_right",
|
|
"libtest_check_order_dlsym_3_c",
|
|
"libtest_check_order_dlsym_a",
|
|
"libtest_check_order_dlsym_b",
|
|
"libtest_check_order_dlsym_d",
|
|
"libtest_check_order_dlsym",
|
|
"libtest_check_order_reloc_root_1",
|
|
"libtest_check_order_reloc_root_2",
|
|
"libtest_check_order_reloc_root",
|
|
"libtest_check_order_reloc_siblings_1",
|
|
"libtest_check_order_reloc_siblings_2",
|
|
"libtest_check_order_reloc_siblings_3",
|
|
"libtest_check_order_reloc_siblings_a",
|
|
"libtest_check_order_reloc_siblings_b",
|
|
"libtest_check_order_reloc_siblings_c_1",
|
|
"libtest_check_order_reloc_siblings_c_2",
|
|
"libtest_check_order_reloc_siblings_c",
|
|
"libtest_check_order_reloc_siblings_d",
|
|
"libtest_check_order_reloc_siblings_e",
|
|
"libtest_check_order_reloc_siblings_f",
|
|
"libtest_check_order_reloc_siblings",
|
|
"libtest_check_rtld_next_from_library",
|
|
"libtest_dlopen_df_1_global",
|
|
"libtest_dlopen_from_ctor_main",
|
|
"libtest_dlopen_from_ctor",
|
|
"libtest_dlopen_weak_undefined_func",
|
|
"libtest_dlsym_df_1_global",
|
|
"libtest_dlsym_from_this_child",
|
|
"libtest_dlsym_from_this_grandchild",
|
|
"libtest_dlsym_from_this",
|
|
"libtest_dlsym_weak_func",
|
|
"libtest_dt_runpath_d",
|
|
"libtest_empty",
|
|
"libtest_ifunc_variable_impl",
|
|
"libtest_ifunc_variable",
|
|
"libtest_ifunc",
|
|
"libtest_init_fini_order_child",
|
|
"libtest_init_fini_order_grand_child",
|
|
"libtest_init_fini_order_root2",
|
|
"libtest_init_fini_order_root",
|
|
"libtest_missing_symbol_child_public",
|
|
"libtest_missing_symbol_child_private",
|
|
"libtest_missing_symbol_root",
|
|
"libtest_missing_symbol",
|
|
"libtest_nodelete_1",
|
|
"libtest_nodelete_2",
|
|
"libtest_nodelete_dt_flags_1",
|
|
"libtest_pthread_atfork",
|
|
"libtest_relo_check_dt_needed_order_1",
|
|
"libtest_relo_check_dt_needed_order_2",
|
|
"libtest_relo_check_dt_needed_order",
|
|
"libtest_simple",
|
|
"libtest_two_parents_child",
|
|
"libtest_two_parents_parent1",
|
|
"libtest_two_parents_parent2",
|
|
"libtest_versioned_lib",
|
|
"libtest_versioned_libv1",
|
|
"libtest_versioned_libv2",
|
|
"libtest_versioned_otherlib_empty",
|
|
"libtest_versioned_otherlib",
|
|
"libtest_versioned_uselibv1",
|
|
"libtest_versioned_uselibv2_other",
|
|
"libtest_versioned_uselibv2",
|
|
"libtest_versioned_uselibv3_other",
|
|
"libtest_with_dependency_loop_a",
|
|
"libtest_with_dependency_loop_b",
|
|
"libtest_with_dependency_loop_c",
|
|
"libtest_with_dependency_loop",
|
|
"libtest_with_dependency",
|
|
"libtest_indirect_thread_local_dtor",
|
|
"libtest_invalid-empty_shdr_table.so",
|
|
"libtest_invalid-rw_load_segment.so",
|
|
"libtest_invalid-unaligned_shdr_offset.so",
|
|
"libtest_invalid-zero_shdr_table_content.so",
|
|
"libtest_invalid-zero_shdr_table_offset.so",
|
|
"libtest_invalid-zero_shentsize.so",
|
|
"libtest_invalid-zero_shstrndx.so",
|
|
"libtest_invalid-textrels.so",
|
|
"libtest_invalid-textrels2.so",
|
|
"libtest_thread_local_dtor",
|
|
"libtest_thread_local_dtor2",
|
|
"preinit_getauxval_test_helper",
|
|
"preinit_syscall_test_helper",
|
|
"libnstest_private_external",
|
|
"libnstest_dlopened",
|
|
"libnstest_private",
|
|
"libnstest_root_not_isolated",
|
|
"libnstest_root",
|
|
"libnstest_public",
|
|
"libnstest_public_internal",
|
|
"libnstest_ns_a_public1",
|
|
"libnstest_ns_a_public1_internal",
|
|
"libnstest_ns_b_public2",
|
|
"libnstest_ns_b_public3",
|
|
"ld_preload_test_helper",
|
|
"ld_preload_test_helper_lib1",
|
|
"ld_preload_test_helper_lib2",
|
|
"ld_config_test_helper",
|
|
"ld_config_test_helper_lib1",
|
|
"ld_config_test_helper_lib2",
|
|
"ld_config_test_helper_lib3",
|
|
],
|
|
}
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Tests for the device linked against bionic's static library. Run with:
|
|
// adb shell /data/nativetest/bionic-unit-tests-static/bionic-unit-tests-static
|
|
// adb shell /data/nativetest64/bionic-unit-tests-static/bionic-unit-tests-static
|
|
// -----------------------------------------------------------------------------
|
|
cc_test {
|
|
name: "bionic-unit-tests-static",
|
|
gtest: false,
|
|
defaults: ["bionic_tests_defaults"],
|
|
host_supported: false,
|
|
|
|
srcs: [
|
|
"gtest_preinit_debuggerd.cpp",
|
|
"gtest_globals.cpp",
|
|
"gtest_main.cpp",
|
|
],
|
|
whole_static_libs: [
|
|
"libBionicTests",
|
|
],
|
|
|
|
static_libs: [
|
|
"libm",
|
|
"libc",
|
|
"libdl",
|
|
"libtinyxml2",
|
|
"liblog",
|
|
"libbase",
|
|
"libdebuggerd_handler",
|
|
"libgtest_isolated",
|
|
],
|
|
|
|
static_executable: true,
|
|
stl: "libc++_static",
|
|
|
|
// libclang_rt.builtins does not work with libm
|
|
// http://b/117167374
|
|
no_libcrt: true,
|
|
}
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Tests to run on the host and linked against glibc. Run with:
|
|
// cd bionic/tests; mm bionic-unit-tests-glibc-run
|
|
// -----------------------------------------------------------------------------
|
|
|
|
cc_test_host {
|
|
name: "bionic-unit-tests-glibc",
|
|
gtest: false,
|
|
defaults: ["bionic_tests_defaults"],
|
|
|
|
srcs: [
|
|
"atexit_test.cpp",
|
|
"dlfcn_symlink_support.cpp",
|
|
"dlfcn_test.cpp",
|
|
"dl_test.cpp",
|
|
"gtest_globals.cpp",
|
|
"gtest_main.cpp",
|
|
"pthread_dlfcn_test.cpp",
|
|
],
|
|
|
|
shared_libs: [
|
|
"libdl_preempt_test_1",
|
|
"libdl_preempt_test_2",
|
|
|
|
"libdl_test_df_1_global",
|
|
],
|
|
|
|
whole_static_libs: [
|
|
"libBionicStandardTests",
|
|
"libfortify1-tests-clang",
|
|
"libfortify2-tests-clang",
|
|
],
|
|
|
|
static_libs: [
|
|
"libbase",
|
|
"liblog",
|
|
"libcutils",
|
|
"libgtest_isolated",
|
|
],
|
|
|
|
host_ldlibs: [
|
|
"-lresolv",
|
|
"-lutil",
|
|
],
|
|
|
|
include_dirs: [
|
|
"bionic/libc",
|
|
],
|
|
|
|
ldflags: [
|
|
"-Wl,--rpath,${ORIGIN}/../bionic-loader-test-libs",
|
|
"-Wl,--export-dynamic",
|
|
],
|
|
|
|
sanitize: {
|
|
never: false,
|
|
},
|
|
|
|
target: {
|
|
linux_bionic: {
|
|
enabled: false,
|
|
},
|
|
},
|
|
}
|
|
|
|
subdirs = ["*"]
|