da446cc5cc
For convenience, builds against musl libc currently use the linux_glibc properties because they are almost always linux-specific and not glibc-specific. In preparation for removing this hack, tweak the linux_glibc properties by either moving them to host_linux, which will apply to linux_glibc, linux_musl and linux_bionic, or by setting appropriate musl or linux_musl properties. Properties that must not be repeated while musl uses linux_musl and also still uses the linux_glibc properties are moved to glibc properties, which don't apply to musl. Whether these stay as glibc properties or get moved back to linux_glibc later once the musl hack is removed is TBD. Bug: 223257095 Test: m checkbuild Test: m USE_HOST_MUSL=true host-native Change-Id: I809bf1ba783dff02f6491d87fbdc9fa7fc0975b0
142 lines
3.9 KiB
Text
142 lines
3.9 KiB
Text
//
|
|
// 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,
|
|
},
|
|
linux_musl_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",
|
|
],
|
|
},
|
|
linux_musl_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",
|
|
}
|