// // Copyright (C) 2019 The Android Open Source Project // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above copyright // notice, this list of conditions and the following disclaimer in // the documentation and/or other materials provided with the // distribution. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE // COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS // OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED // AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF // SUCH DAMAGE. // package { default_applicable_licenses: ["bionic_benchmarks_license"], } cc_defaults { name: "bionic_spawn_benchmark_targets", host_supported: true, target: { darwin: { enabled: false, }, windows: { enabled: false, }, linux_glibc_x86: { enabled: false, }, }, } cc_library_static { name: "libbionic_spawn_benchmark", defaults: ["bionic_spawn_benchmark_targets"], srcs: ["spawn_benchmark.cpp"], export_include_dirs: ["include"], static_libs: [ "libbase", "libgoogle-benchmark", "liblog", ], } cc_benchmark { name: "bionic-spawn-benchmarks", defaults: ["bionic_spawn_benchmark_targets"], srcs: ["spawn_benchmarks.cpp"], static_libs: [ "libbase", "libbionic_spawn_benchmark", "liblog", ], // Install these binaries in the same directory as the main benchmark binary. data: [ ":bench_cxa_atexit", ":bench_noop", ":bench_noop_nostl", ":bench_noop_static", ], } cc_defaults { name: "bionic_spawn_benchmark_binary", defaults: ["bionic_spawn_benchmark_targets"], compile_multilib: "both", multilib: { lib32: { suffix: "32", }, lib64: { suffix: "64", }, }, // When this binary is installed to host/linux-x86/bin, its runpath is ${ORIGIN}/../lib64, which // is fine for finding host/linux-x86/lib64/libc++.so. When it's installed to // host/linux-x86/benchmarktest64/bionic-spawn-benchmarks, the runpath needs an extra "..". This // argument has no effect when a static executable is produced. target: { linux_glibc_x86_64: { ldflags: [ "-Wl,--rpath,${ORIGIN}/../../lib64", ], }, }, } cc_binary { defaults: ["bionic_spawn_benchmark_binary"], name: "bench_cxa_atexit", srcs: ["bench_cxa_atexit.cpp"], } cc_binary { defaults: ["bionic_spawn_benchmark_binary"], name: "bench_noop", srcs: ["noop.cpp"], } cc_binary { defaults: ["bionic_spawn_benchmark_binary"], name: "bench_noop_nostl", srcs: ["noop.cpp"], stl: "none", } cc_binary { defaults: ["bionic_spawn_benchmark_binary"], name: "bench_noop_static", srcs: ["noop.cpp"], static_executable: true, stl: "libc++_static", }