// https://ci.android.com/builds/latest/branches/aosp-build-tools/targets/linux/view/soong_build.html cc_defaults { name: "llvmlibc_defaults", cppflags: [ // Necessary to build. "-DLIBC_NAMESPACE=llvmlibc", ], arch: { // TODO: https://github.com/llvm/llvm-project/issues/93709 // llvm-libc does not (yet) support 32b x86. x86: { enabled: false, }, // TODO: https://github.com/llvm/llvm-project/issues/93738 // llvm-libc does not (yet) support --target=armv7a-linux -mthumb arm: { cppflags: ["-marm"], }, }, } cc_library_static { name: "llvmlibc", defaults: ["llvmlibc_defaults"], visibility: [ "//bionic/libc", ], include_dirs: [ "external/llvm-libc", ], srcs: [ "src/stdlib/bsearch.cpp", ], cppflags: [ // Necessary for non-namespaced exports. "-DLIBC_COPT_PUBLIC_PACKAGING", ], // No C++ runtime. stl: "none", // No crt_begin and crt_end. nocrt: true, // Needs to be unset from the default value in order to avoid creating a // cyclic dependency between llvm-libc and bionic's libc. system_shared_libs: [], // Bionic's libc's dependencies must have these set, or the build will fail // due to missing a "ramdisk", "vendor_ramdisk", and "recovery" variants. native_bridge_supported: true, ramdisk_available: true, recovery_available: true, vendor_ramdisk_available: true, // Bionic's dependencies must also set this. apex_available: ["com.android.runtime"], // When llvm-libc includes , use bionic's headers for these. header_libs: ["libc_headers"], } cc_test_library { name: "llvmlibc_test_harness", defaults: ["llvmlibc_defaults"], srcs: [ "test/UnitTest/LibcTest.cpp", "test/UnitTest/TestLogger.cpp", "test/UnitTest/LibcTestMain.cpp", ], } cc_defaults { name: "llvmlibc_test_defaults", defaults: ["llvmlibc_defaults"], static_libs: [ "llvmlibc", "llvmlibc_test_harness", ], // Do not try to link against gtest. llvm-libc has its own pseudo-gtest // framework. gtest: false, // Needed to avoid the diagnostic: // WARNING: Please add {test name} to either suite: // ['device-tests', 'general-tests'] for this TEST_MAPPING file to work // with TreeHugger. test_suites: ["device-tests"], } cc_test { name: "llvmlibc_stdlib_bsearch_test", defaults: ["llvmlibc_test_defaults"], srcs: ["test/src/stdlib/bsearch_test.cpp"], }