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.

135 lines
3.7 KiB

//
// 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",
}