1*1208bc7eSAndroid Build Coastguard Worker// 2*1208bc7eSAndroid Build Coastguard Worker// Copyright (C) 2018 The Android Open Source Project 3*1208bc7eSAndroid Build Coastguard Worker// 4*1208bc7eSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 5*1208bc7eSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 6*1208bc7eSAndroid Build Coastguard Worker// You may obtain a copy of the License at 7*1208bc7eSAndroid Build Coastguard Worker// 8*1208bc7eSAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 9*1208bc7eSAndroid Build Coastguard Worker// 10*1208bc7eSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 11*1208bc7eSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 12*1208bc7eSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*1208bc7eSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 14*1208bc7eSAndroid Build Coastguard Worker// limitations under the License. 15*1208bc7eSAndroid Build Coastguard Worker// 16*1208bc7eSAndroid Build Coastguard Worker 17*1208bc7eSAndroid Build Coastguard Workerpackage { 18*1208bc7eSAndroid Build Coastguard Worker default_applicable_licenses: ["external_jemalloc_new_license"], 19*1208bc7eSAndroid Build Coastguard Worker} 20*1208bc7eSAndroid Build Coastguard Worker 21*1208bc7eSAndroid Build Coastguard Worker// Added automatically by a large-scale-change that took the approach of 22*1208bc7eSAndroid Build Coastguard Worker// 'apply every license found to every target'. While this makes sure we respect 23*1208bc7eSAndroid Build Coastguard Worker// every license restriction, it may not be entirely correct. 24*1208bc7eSAndroid Build Coastguard Worker// 25*1208bc7eSAndroid Build Coastguard Worker// e.g. GPL in an MIT project might only apply to the contrib/ directory. 26*1208bc7eSAndroid Build Coastguard Worker// 27*1208bc7eSAndroid Build Coastguard Worker// Please consider splitting the single license below into multiple licenses, 28*1208bc7eSAndroid Build Coastguard Worker// taking care not to lose any license_kind information, and overriding the 29*1208bc7eSAndroid Build Coastguard Worker// default license using the 'licenses: [...]' property on targets as needed. 30*1208bc7eSAndroid Build Coastguard Worker// 31*1208bc7eSAndroid Build Coastguard Worker// For unused files, consider creating a 'fileGroup' with "//visibility:private" 32*1208bc7eSAndroid Build Coastguard Worker// to attach the license to, and including a comment whether the files may be 33*1208bc7eSAndroid Build Coastguard Worker// used in the current project. 34*1208bc7eSAndroid Build Coastguard Worker// See: http://go/android-license-faq 35*1208bc7eSAndroid Build Coastguard Workerlicense { 36*1208bc7eSAndroid Build Coastguard Worker name: "external_jemalloc_new_license", 37*1208bc7eSAndroid Build Coastguard Worker visibility: [":__subpackages__"], 38*1208bc7eSAndroid Build Coastguard Worker license_kinds: [ 39*1208bc7eSAndroid Build Coastguard Worker "SPDX-license-identifier-Apache-2.0", 40*1208bc7eSAndroid Build Coastguard Worker "SPDX-license-identifier-BSD", 41*1208bc7eSAndroid Build Coastguard Worker "SPDX-license-identifier-ISC", 42*1208bc7eSAndroid Build Coastguard Worker "SPDX-license-identifier-MIT", 43*1208bc7eSAndroid Build Coastguard Worker "legacy_unencumbered", 44*1208bc7eSAndroid Build Coastguard Worker ], 45*1208bc7eSAndroid Build Coastguard Worker license_text: [ 46*1208bc7eSAndroid Build Coastguard Worker "COPYING", 47*1208bc7eSAndroid Build Coastguard Worker ], 48*1208bc7eSAndroid Build Coastguard Worker} 49*1208bc7eSAndroid Build Coastguard Worker 50*1208bc7eSAndroid Build Coastguard Workercommon_cflags = [ 51*1208bc7eSAndroid Build Coastguard Worker "-D_GNU_SOURCE", 52*1208bc7eSAndroid Build Coastguard Worker "-D_REENTRANT", 53*1208bc7eSAndroid Build Coastguard Worker "-Wall", 54*1208bc7eSAndroid Build Coastguard Worker "-Wshorten-64-to-32", 55*1208bc7eSAndroid Build Coastguard Worker "-Wsign-compare", 56*1208bc7eSAndroid Build Coastguard Worker "-Wundef", 57*1208bc7eSAndroid Build Coastguard Worker "-Wno-format-zero-length", 58*1208bc7eSAndroid Build Coastguard Worker "-pipe", 59*1208bc7eSAndroid Build Coastguard Worker "-g3", 60*1208bc7eSAndroid Build Coastguard Worker "-fvisibility=hidden", 61*1208bc7eSAndroid Build Coastguard Worker "-O3", 62*1208bc7eSAndroid Build Coastguard Worker "-funroll-loops", 63*1208bc7eSAndroid Build Coastguard Worker 64*1208bc7eSAndroid Build Coastguard Worker // The following flags are for avoiding errors when compiling. 65*1208bc7eSAndroid Build Coastguard Worker "-Wno-unused-parameter", 66*1208bc7eSAndroid Build Coastguard Worker "-Wno-unused-function", 67*1208bc7eSAndroid Build Coastguard Worker "-Wno-missing-field-initializers", 68*1208bc7eSAndroid Build Coastguard Worker 69*1208bc7eSAndroid Build Coastguard Worker "-U_FORTIFY_SOURCE", 70*1208bc7eSAndroid Build Coastguard Worker 71*1208bc7eSAndroid Build Coastguard Worker // Default enable the tcache. 72*1208bc7eSAndroid Build Coastguard Worker "-DANDROID_ENABLE_TCACHE", 73*1208bc7eSAndroid Build Coastguard Worker] 74*1208bc7eSAndroid Build Coastguard Worker 75*1208bc7eSAndroid Build Coastguard Workercommon_c_local_includes = [ 76*1208bc7eSAndroid Build Coastguard Worker "src", 77*1208bc7eSAndroid Build Coastguard Worker "include", 78*1208bc7eSAndroid Build Coastguard Worker] 79*1208bc7eSAndroid Build Coastguard Worker 80*1208bc7eSAndroid Build Coastguard Worker// These parameters change the way jemalloc works. 81*1208bc7eSAndroid Build Coastguard Worker// ANDROID_NUM_ARENAS=XX 82*1208bc7eSAndroid Build Coastguard Worker// The total number of arenas to create. 83*1208bc7eSAndroid Build Coastguard Worker// ANDROID_TCACHE_NSLOTS_SMALL_MIN=XX 84*1208bc7eSAndroid Build Coastguard Worker// The minimum number of small slots held in the tcache. This must be 85*1208bc7eSAndroid Build Coastguard Worker// at least 1. 86*1208bc7eSAndroid Build Coastguard Worker// ANDROID_TCACHE_NSLOTS_SMALL_MAX=XX 87*1208bc7eSAndroid Build Coastguard Worker// The number of small slots held in the tcache. The higher this number 88*1208bc7eSAndroid Build Coastguard Worker// is, the higher amount of PSS consumed. If this number is set too low 89*1208bc7eSAndroid Build Coastguard Worker// then small allocations will take longer to complete. 90*1208bc7eSAndroid Build Coastguard Worker// ANDROID_TCACHE_NSLOTS_LARGE=XX 91*1208bc7eSAndroid Build Coastguard Worker// The number of large slots held in the tcache. The higher this number 92*1208bc7eSAndroid Build Coastguard Worker// is, the higher amount of PSS consumed. If this number is set too low 93*1208bc7eSAndroid Build Coastguard Worker// then large allocations will take longer to complete. 94*1208bc7eSAndroid Build Coastguard Worker// ANDROID_LG_TCACHE_MAXCLASS_DEFAULT=XX 95*1208bc7eSAndroid Build Coastguard Worker// 1 << XX is the maximum sized allocation that will be in the tcache. 96*1208bc7eSAndroid Build Coastguard Worker 97*1208bc7eSAndroid Build Coastguard Workerandroid_common_cflags = [ 98*1208bc7eSAndroid Build Coastguard Worker // Default parameters for jemalloc config. 99*1208bc7eSAndroid Build Coastguard Worker "-DANDROID_LG_TCACHE_MAXCLASS_DEFAULT=16", 100*1208bc7eSAndroid Build Coastguard Worker "-DANDROID_NUM_ARENAS=2", 101*1208bc7eSAndroid Build Coastguard Worker "-DANDROID_TCACHE_NSLOTS_SMALL_MAX=8", 102*1208bc7eSAndroid Build Coastguard Worker "-DANDROID_TCACHE_NSLOTS_LARGE=16", 103*1208bc7eSAndroid Build Coastguard Worker] 104*1208bc7eSAndroid Build Coastguard Worker 105*1208bc7eSAndroid Build Coastguard Workerandroid_product_variables = { 106*1208bc7eSAndroid Build Coastguard Worker malloc_low_memory: { 107*1208bc7eSAndroid Build Coastguard Worker // Parameters to minimize RSS. 108*1208bc7eSAndroid Build Coastguard Worker cflags: [ 109*1208bc7eSAndroid Build Coastguard Worker // Disable the tcache on non-svelte configurations, to save PSS. 110*1208bc7eSAndroid Build Coastguard Worker "-UANDROID_ENABLE_TCACHE", 111*1208bc7eSAndroid Build Coastguard Worker 112*1208bc7eSAndroid Build Coastguard Worker "-UANDROID_NUM_ARENAS", 113*1208bc7eSAndroid Build Coastguard Worker "-DANDROID_NUM_ARENAS=1", 114*1208bc7eSAndroid Build Coastguard Worker 115*1208bc7eSAndroid Build Coastguard Worker // This value cannot go below 2. 116*1208bc7eSAndroid Build Coastguard Worker "-UANDROID_TCACHE_NSLOTS_SMALL_MAX", 117*1208bc7eSAndroid Build Coastguard Worker "-DANDROID_TCACHE_NSLOTS_SMALL_MAX=2", 118*1208bc7eSAndroid Build Coastguard Worker 119*1208bc7eSAndroid Build Coastguard Worker "-UANDROID_TCACHE_NSLOTS_LARGE", 120*1208bc7eSAndroid Build Coastguard Worker "-DANDROID_TCACHE_NSLOTS_LARGE=1", 121*1208bc7eSAndroid Build Coastguard Worker 122*1208bc7eSAndroid Build Coastguard Worker // Minimize the size of the internal data structures by removing 123*1208bc7eSAndroid Build Coastguard Worker // unused stats and other data not used on Android. 124*1208bc7eSAndroid Build Coastguard Worker "-DANDROID_MINIMIZE_STRUCTS", 125*1208bc7eSAndroid Build Coastguard Worker ], 126*1208bc7eSAndroid Build Coastguard Worker }, 127*1208bc7eSAndroid Build Coastguard Worker} 128*1208bc7eSAndroid Build Coastguard Worker 129*1208bc7eSAndroid Build Coastguard Workercc_defaults { 130*1208bc7eSAndroid Build Coastguard Worker name: "jemalloc5_defaults", 131*1208bc7eSAndroid Build Coastguard Worker host_supported: true, 132*1208bc7eSAndroid Build Coastguard Worker native_bridge_supported: true, 133*1208bc7eSAndroid Build Coastguard Worker cflags: common_cflags, 134*1208bc7eSAndroid Build Coastguard Worker 135*1208bc7eSAndroid Build Coastguard Worker target: { 136*1208bc7eSAndroid Build Coastguard Worker android: { 137*1208bc7eSAndroid Build Coastguard Worker cflags: android_common_cflags, 138*1208bc7eSAndroid Build Coastguard Worker product_variables: android_product_variables, 139*1208bc7eSAndroid Build Coastguard Worker }, 140*1208bc7eSAndroid Build Coastguard Worker linux_bionic: { 141*1208bc7eSAndroid Build Coastguard Worker enabled: true, 142*1208bc7eSAndroid Build Coastguard Worker }, 143*1208bc7eSAndroid Build Coastguard Worker }, 144*1208bc7eSAndroid Build Coastguard Worker 145*1208bc7eSAndroid Build Coastguard Worker local_include_dirs: common_c_local_includes, 146*1208bc7eSAndroid Build Coastguard Worker stl: "none", 147*1208bc7eSAndroid Build Coastguard Worker} 148*1208bc7eSAndroid Build Coastguard Worker 149*1208bc7eSAndroid Build Coastguard Workerlib_src_files = [ 150*1208bc7eSAndroid Build Coastguard Worker "src/jemalloc.c", 151*1208bc7eSAndroid Build Coastguard Worker "src/arena.c", 152*1208bc7eSAndroid Build Coastguard Worker "src/background_thread.c", 153*1208bc7eSAndroid Build Coastguard Worker "src/base.c", 154*1208bc7eSAndroid Build Coastguard Worker "src/bin.c", 155*1208bc7eSAndroid Build Coastguard Worker "src/bitmap.c", 156*1208bc7eSAndroid Build Coastguard Worker "src/ckh.c", 157*1208bc7eSAndroid Build Coastguard Worker "src/ctl.c", 158*1208bc7eSAndroid Build Coastguard Worker "src/div.c", 159*1208bc7eSAndroid Build Coastguard Worker "src/extent.c", 160*1208bc7eSAndroid Build Coastguard Worker "src/extent_dss.c", 161*1208bc7eSAndroid Build Coastguard Worker "src/extent_mmap.c", 162*1208bc7eSAndroid Build Coastguard Worker "src/hash.c", 163*1208bc7eSAndroid Build Coastguard Worker "src/hooks.c", 164*1208bc7eSAndroid Build Coastguard Worker "src/large.c", 165*1208bc7eSAndroid Build Coastguard Worker "src/log.c", 166*1208bc7eSAndroid Build Coastguard Worker "src/malloc_io.c", 167*1208bc7eSAndroid Build Coastguard Worker "src/mutex.c", 168*1208bc7eSAndroid Build Coastguard Worker "src/mutex_pool.c", 169*1208bc7eSAndroid Build Coastguard Worker "src/nstime.c", 170*1208bc7eSAndroid Build Coastguard Worker "src/pages.c", 171*1208bc7eSAndroid Build Coastguard Worker "src/prng.c", 172*1208bc7eSAndroid Build Coastguard Worker "src/prof.c", 173*1208bc7eSAndroid Build Coastguard Worker "src/rtree.c", 174*1208bc7eSAndroid Build Coastguard Worker "src/stats.c", 175*1208bc7eSAndroid Build Coastguard Worker "src/sz.c", 176*1208bc7eSAndroid Build Coastguard Worker "src/tcache.c", 177*1208bc7eSAndroid Build Coastguard Worker "src/ticker.c", 178*1208bc7eSAndroid Build Coastguard Worker "src/tsd.c", 179*1208bc7eSAndroid Build Coastguard Worker "src/witness.c", 180*1208bc7eSAndroid Build Coastguard Worker] 181*1208bc7eSAndroid Build Coastguard Worker 182*1208bc7eSAndroid Build Coastguard Worker//----------------------------------------------------------------------- 183*1208bc7eSAndroid Build Coastguard Worker// jemalloc static library 184*1208bc7eSAndroid Build Coastguard Worker//----------------------------------------------------------------------- 185*1208bc7eSAndroid Build Coastguard Workercc_library { 186*1208bc7eSAndroid Build Coastguard Worker name: "libjemalloc5", 187*1208bc7eSAndroid Build Coastguard Worker ramdisk_available: true, 188*1208bc7eSAndroid Build Coastguard Worker vendor_ramdisk_available: true, 189*1208bc7eSAndroid Build Coastguard Worker recovery_available: true, 190*1208bc7eSAndroid Build Coastguard Worker 191*1208bc7eSAndroid Build Coastguard Worker defaults: ["jemalloc5_defaults"], 192*1208bc7eSAndroid Build Coastguard Worker 193*1208bc7eSAndroid Build Coastguard Worker srcs: lib_src_files, 194*1208bc7eSAndroid Build Coastguard Worker 195*1208bc7eSAndroid Build Coastguard Worker export_include_dirs: ["include"], 196*1208bc7eSAndroid Build Coastguard Worker 197*1208bc7eSAndroid Build Coastguard Worker target: { 198*1208bc7eSAndroid Build Coastguard Worker android: { 199*1208bc7eSAndroid Build Coastguard Worker shared: { 200*1208bc7eSAndroid Build Coastguard Worker enabled: false, 201*1208bc7eSAndroid Build Coastguard Worker }, 202*1208bc7eSAndroid Build Coastguard Worker system_shared_libs: [], 203*1208bc7eSAndroid Build Coastguard Worker header_libs: ["libc_headers"], 204*1208bc7eSAndroid Build Coastguard Worker }, 205*1208bc7eSAndroid Build Coastguard Worker linux_bionic: { 206*1208bc7eSAndroid Build Coastguard Worker system_shared_libs: [], 207*1208bc7eSAndroid Build Coastguard Worker header_libs: ["libc_headers"], 208*1208bc7eSAndroid Build Coastguard Worker }, 209*1208bc7eSAndroid Build Coastguard Worker musl: { 210*1208bc7eSAndroid Build Coastguard Worker // Linking against musl uses libjemalloc5 by default, list only 211*1208bc7eSAndroid Build Coastguard Worker // libc_musl here to avoid a circular dependency. 212*1208bc7eSAndroid Build Coastguard Worker system_shared_libs: ["libc_musl"], 213*1208bc7eSAndroid Build Coastguard Worker }, 214*1208bc7eSAndroid Build Coastguard Worker }, 215*1208bc7eSAndroid Build Coastguard Worker apex_available: [ 216*1208bc7eSAndroid Build Coastguard Worker "com.android.runtime", 217*1208bc7eSAndroid Build Coastguard Worker ], 218*1208bc7eSAndroid Build Coastguard Worker} 219*1208bc7eSAndroid Build Coastguard Worker 220*1208bc7eSAndroid Build Coastguard Worker//----------------------------------------------------------------------- 221*1208bc7eSAndroid Build Coastguard Worker// jemalloc "je"-prefixed static library 222*1208bc7eSAndroid Build Coastguard Worker// 223*1208bc7eSAndroid Build Coastguard Worker// This is the same as "libjemalloc5", except: 224*1208bc7eSAndroid Build Coastguard Worker// - It only supports host (just because we don't need it for device) 225*1208bc7eSAndroid Build Coastguard Worker// - all the functions (malloc, calloc, free, etc.) have a "je_" prefix. 226*1208bc7eSAndroid Build Coastguard Worker// The -DJEMALLOC_NO_RENAME flag causes the prefix to be added. 227*1208bc7eSAndroid Build Coastguard Worker// 228*1208bc7eSAndroid Build Coastguard Worker// We need this because when building rust binaries with jemalloc and 229*1208bc7eSAndroid Build Coastguard Worker// the tikv-jemallocator wrappers, code in libc gets a segfault before 230*1208bc7eSAndroid Build Coastguard Worker// reaching main(). I'm not sure why that is, but if we prefix the jemalloc 231*1208bc7eSAndroid Build Coastguard Worker// methods and have the tikv-jemallocator crate use the prefixed ones, 232*1208bc7eSAndroid Build Coastguard Worker// all rust code will use jemalloc successfully while libc will continue 233*1208bc7eSAndroid Build Coastguard Worker// using the system allocator. 234*1208bc7eSAndroid Build Coastguard Worker//----------------------------------------------------------------------- 235*1208bc7eSAndroid Build Coastguard Workercc_library_host_static { 236*1208bc7eSAndroid Build Coastguard Worker name: "libjemalloc5_je_prefixed", 237*1208bc7eSAndroid Build Coastguard Worker 238*1208bc7eSAndroid Build Coastguard Worker defaults: ["jemalloc5_defaults"], 239*1208bc7eSAndroid Build Coastguard Worker 240*1208bc7eSAndroid Build Coastguard Worker cflags: ["-DJEMALLOC_NO_RENAME"], 241*1208bc7eSAndroid Build Coastguard Worker 242*1208bc7eSAndroid Build Coastguard Worker srcs: lib_src_files, 243*1208bc7eSAndroid Build Coastguard Worker 244*1208bc7eSAndroid Build Coastguard Worker export_include_dirs: ["include"], 245*1208bc7eSAndroid Build Coastguard Worker 246*1208bc7eSAndroid Build Coastguard Worker target: { 247*1208bc7eSAndroid Build Coastguard Worker linux_bionic: { 248*1208bc7eSAndroid Build Coastguard Worker system_shared_libs: [], 249*1208bc7eSAndroid Build Coastguard Worker header_libs: ["libc_headers"], 250*1208bc7eSAndroid Build Coastguard Worker }, 251*1208bc7eSAndroid Build Coastguard Worker musl: { 252*1208bc7eSAndroid Build Coastguard Worker // Linking against musl uses libjemalloc5 by default, list only 253*1208bc7eSAndroid Build Coastguard Worker // libc_musl here to avoid a circular dependency. 254*1208bc7eSAndroid Build Coastguard Worker system_shared_libs: ["libc_musl"], 255*1208bc7eSAndroid Build Coastguard Worker }, 256*1208bc7eSAndroid Build Coastguard Worker }, 257*1208bc7eSAndroid Build Coastguard Worker 258*1208bc7eSAndroid Build Coastguard Worker visibility: [ 259*1208bc7eSAndroid Build Coastguard Worker "//external/rust/android-crates-io/crates/tikv-jemalloc-sys:__subpackages__", 260*1208bc7eSAndroid Build Coastguard Worker ], 261*1208bc7eSAndroid Build Coastguard Worker} 262*1208bc7eSAndroid Build Coastguard Worker 263*1208bc7eSAndroid Build Coastguard Worker//----------------------------------------------------------------------- 264*1208bc7eSAndroid Build Coastguard Worker// jemalloc static jet library 265*1208bc7eSAndroid Build Coastguard Worker//----------------------------------------------------------------------- 266*1208bc7eSAndroid Build Coastguard Workercc_library_static { 267*1208bc7eSAndroid Build Coastguard Worker name: "libjemalloc5_jet", 268*1208bc7eSAndroid Build Coastguard Worker 269*1208bc7eSAndroid Build Coastguard Worker defaults: ["jemalloc5_defaults"], 270*1208bc7eSAndroid Build Coastguard Worker 271*1208bc7eSAndroid Build Coastguard Worker cflags: [ 272*1208bc7eSAndroid Build Coastguard Worker "-DJEMALLOC_JET", 273*1208bc7eSAndroid Build Coastguard Worker ], 274*1208bc7eSAndroid Build Coastguard Worker 275*1208bc7eSAndroid Build Coastguard Worker srcs: lib_src_files, 276*1208bc7eSAndroid Build Coastguard Worker} 277*1208bc7eSAndroid Build Coastguard Worker 278*1208bc7eSAndroid Build Coastguard Workerjemalloc5_testlib_srcs = [ 279*1208bc7eSAndroid Build Coastguard Worker "test/src/btalloc.c", 280*1208bc7eSAndroid Build Coastguard Worker "test/src/btalloc_0.c", 281*1208bc7eSAndroid Build Coastguard Worker "test/src/btalloc_1.c", 282*1208bc7eSAndroid Build Coastguard Worker "test/src/math.c", 283*1208bc7eSAndroid Build Coastguard Worker "test/src/mtx.c", 284*1208bc7eSAndroid Build Coastguard Worker "test/src/mq.c", 285*1208bc7eSAndroid Build Coastguard Worker "test/src/SFMT.c", 286*1208bc7eSAndroid Build Coastguard Worker "test/src/test.c", 287*1208bc7eSAndroid Build Coastguard Worker "test/src/thd.c", 288*1208bc7eSAndroid Build Coastguard Worker "test/src/timer.c", 289*1208bc7eSAndroid Build Coastguard Worker] 290*1208bc7eSAndroid Build Coastguard Worker 291*1208bc7eSAndroid Build Coastguard Worker//----------------------------------------------------------------------- 292*1208bc7eSAndroid Build Coastguard Worker// jemalloc unit test library 293*1208bc7eSAndroid Build Coastguard Worker//----------------------------------------------------------------------- 294*1208bc7eSAndroid Build Coastguard Workercc_library_static { 295*1208bc7eSAndroid Build Coastguard Worker name: "libjemalloc5_unittest", 296*1208bc7eSAndroid Build Coastguard Worker 297*1208bc7eSAndroid Build Coastguard Worker defaults: ["jemalloc5_defaults"], 298*1208bc7eSAndroid Build Coastguard Worker 299*1208bc7eSAndroid Build Coastguard Worker cflags: [ 300*1208bc7eSAndroid Build Coastguard Worker "-DJEMALLOC_UNIT_TEST", 301*1208bc7eSAndroid Build Coastguard Worker ], 302*1208bc7eSAndroid Build Coastguard Worker 303*1208bc7eSAndroid Build Coastguard Worker local_include_dirs: [ 304*1208bc7eSAndroid Build Coastguard Worker "test/include", 305*1208bc7eSAndroid Build Coastguard Worker ], 306*1208bc7eSAndroid Build Coastguard Worker 307*1208bc7eSAndroid Build Coastguard Worker srcs: jemalloc5_testlib_srcs, 308*1208bc7eSAndroid Build Coastguard Worker 309*1208bc7eSAndroid Build Coastguard Worker whole_static_libs: ["libjemalloc5_jet"], 310*1208bc7eSAndroid Build Coastguard Worker} 311*1208bc7eSAndroid Build Coastguard Worker 312*1208bc7eSAndroid Build Coastguard Worker//----------------------------------------------------------------------- 313*1208bc7eSAndroid Build Coastguard Worker// jemalloc unit tests 314*1208bc7eSAndroid Build Coastguard Worker//----------------------------------------------------------------------- 315*1208bc7eSAndroid Build Coastguard Workerunit_tests = [ 316*1208bc7eSAndroid Build Coastguard Worker "test/unit/a0.c", 317*1208bc7eSAndroid Build Coastguard Worker "test/unit/arena_reset.c", 318*1208bc7eSAndroid Build Coastguard Worker "test/unit/atomic.c", 319*1208bc7eSAndroid Build Coastguard Worker "test/unit/background_thread.c", 320*1208bc7eSAndroid Build Coastguard Worker "test/unit/background_thread_enable.c", 321*1208bc7eSAndroid Build Coastguard Worker "test/unit/base.c", 322*1208bc7eSAndroid Build Coastguard Worker "test/unit/bitmap.c", 323*1208bc7eSAndroid Build Coastguard Worker "test/unit/ckh.c", 324*1208bc7eSAndroid Build Coastguard Worker "test/unit/decay.c", 325*1208bc7eSAndroid Build Coastguard Worker "test/unit/div.c", 326*1208bc7eSAndroid Build Coastguard Worker "test/unit/emitter.c", 327*1208bc7eSAndroid Build Coastguard Worker "test/unit/extent_quantize.c", 328*1208bc7eSAndroid Build Coastguard Worker "test/unit/fork.c", 329*1208bc7eSAndroid Build Coastguard Worker "test/unit/hash.c", 330*1208bc7eSAndroid Build Coastguard Worker "test/unit/hooks.c", 331*1208bc7eSAndroid Build Coastguard Worker "test/unit/junk.c", 332*1208bc7eSAndroid Build Coastguard Worker "test/unit/junk_alloc.c", 333*1208bc7eSAndroid Build Coastguard Worker "test/unit/junk_free.c", 334*1208bc7eSAndroid Build Coastguard Worker "test/unit/log.c", 335*1208bc7eSAndroid Build Coastguard Worker "test/unit/mallctl.c", 336*1208bc7eSAndroid Build Coastguard Worker "test/unit/malloc_io.c", 337*1208bc7eSAndroid Build Coastguard Worker "test/unit/math.c", 338*1208bc7eSAndroid Build Coastguard Worker "test/unit/mq.c", 339*1208bc7eSAndroid Build Coastguard Worker "test/unit/mtx.c", 340*1208bc7eSAndroid Build Coastguard Worker "test/unit/pack.c", 341*1208bc7eSAndroid Build Coastguard Worker "test/unit/pages.c", 342*1208bc7eSAndroid Build Coastguard Worker "test/unit/ph.c", 343*1208bc7eSAndroid Build Coastguard Worker "test/unit/prng.c", 344*1208bc7eSAndroid Build Coastguard Worker "test/unit/prof_accum.c", 345*1208bc7eSAndroid Build Coastguard Worker "test/unit/prof_active.c", 346*1208bc7eSAndroid Build Coastguard Worker "test/unit/prof_gdump.c", 347*1208bc7eSAndroid Build Coastguard Worker "test/unit/prof_idump.c", 348*1208bc7eSAndroid Build Coastguard Worker "test/unit/prof_reset.c", 349*1208bc7eSAndroid Build Coastguard Worker "test/unit/prof_tctx.c", 350*1208bc7eSAndroid Build Coastguard Worker "test/unit/prof_thread_name.c", 351*1208bc7eSAndroid Build Coastguard Worker "test/unit/ql.c", 352*1208bc7eSAndroid Build Coastguard Worker "test/unit/qr.c", 353*1208bc7eSAndroid Build Coastguard Worker "test/unit/rb.c", 354*1208bc7eSAndroid Build Coastguard Worker "test/unit/retained.c", 355*1208bc7eSAndroid Build Coastguard Worker "test/unit/rtree.c", 356*1208bc7eSAndroid Build Coastguard Worker "test/unit/SFMT.c", 357*1208bc7eSAndroid Build Coastguard Worker "test/unit/size_classes.c", 358*1208bc7eSAndroid Build Coastguard Worker "test/unit/slab.c", 359*1208bc7eSAndroid Build Coastguard Worker "test/unit/smoothstep.c", 360*1208bc7eSAndroid Build Coastguard Worker "test/unit/spin.c", 361*1208bc7eSAndroid Build Coastguard Worker "test/unit/stats.c", 362*1208bc7eSAndroid Build Coastguard Worker "test/unit/stats_print.c", 363*1208bc7eSAndroid Build Coastguard Worker "test/unit/ticker.c", 364*1208bc7eSAndroid Build Coastguard Worker "test/unit/nstime.c", 365*1208bc7eSAndroid Build Coastguard Worker "test/unit/tsd.c", 366*1208bc7eSAndroid Build Coastguard Worker "test/unit/witness.c", 367*1208bc7eSAndroid Build Coastguard Worker "test/unit/zero.c", 368*1208bc7eSAndroid Build Coastguard Worker] 369*1208bc7eSAndroid Build Coastguard Worker 370*1208bc7eSAndroid Build Coastguard Workergenrule_defaults { 371*1208bc7eSAndroid Build Coastguard Worker name: "jemalloc5_gtestifier_defaults", 372*1208bc7eSAndroid Build Coastguard Worker tools: ["gtestifier"], 373*1208bc7eSAndroid Build Coastguard Worker cmd: "$(location gtestifier)" + 374*1208bc7eSAndroid Build Coastguard Worker " --in $(in)" + 375*1208bc7eSAndroid Build Coastguard Worker " --out $(out)" + 376*1208bc7eSAndroid Build Coastguard Worker " --suite jemalloc5" + 377*1208bc7eSAndroid Build Coastguard Worker " --test_name_prefix test_ " + 378*1208bc7eSAndroid Build Coastguard Worker " --main_no_arguments " + 379*1208bc7eSAndroid Build Coastguard Worker " --predicate testResultPredicate", 380*1208bc7eSAndroid Build Coastguard Worker} 381*1208bc7eSAndroid Build Coastguard Worker 382*1208bc7eSAndroid Build Coastguard Workergensrcs { 383*1208bc7eSAndroid Build Coastguard Worker name: "jemalloc5_unittests_gtestified_srcs", 384*1208bc7eSAndroid Build Coastguard Worker defaults: ["jemalloc5_gtestifier_defaults"], 385*1208bc7eSAndroid Build Coastguard Worker srcs: unit_tests, 386*1208bc7eSAndroid Build Coastguard Worker output_extension: "c", 387*1208bc7eSAndroid Build Coastguard Worker} 388*1208bc7eSAndroid Build Coastguard Worker 389*1208bc7eSAndroid Build Coastguard Workercc_test { 390*1208bc7eSAndroid Build Coastguard Worker name: "jemalloc5_unittests", 391*1208bc7eSAndroid Build Coastguard Worker 392*1208bc7eSAndroid Build Coastguard Worker defaults: ["jemalloc5_defaults"], 393*1208bc7eSAndroid Build Coastguard Worker 394*1208bc7eSAndroid Build Coastguard Worker cflags: common_cflags + [ 395*1208bc7eSAndroid Build Coastguard Worker "-DJEMALLOC_UNIT_TEST", 396*1208bc7eSAndroid Build Coastguard Worker "-include jemalloc_gtest.h", 397*1208bc7eSAndroid Build Coastguard Worker ], 398*1208bc7eSAndroid Build Coastguard Worker 399*1208bc7eSAndroid Build Coastguard Worker stl: "libc++", 400*1208bc7eSAndroid Build Coastguard Worker 401*1208bc7eSAndroid Build Coastguard Worker local_include_dirs: common_c_local_includes + [ 402*1208bc7eSAndroid Build Coastguard Worker "test/include", 403*1208bc7eSAndroid Build Coastguard Worker "android/test", 404*1208bc7eSAndroid Build Coastguard Worker ], 405*1208bc7eSAndroid Build Coastguard Worker 406*1208bc7eSAndroid Build Coastguard Worker srcs: [":jemalloc5_unittests_gtestified_srcs"], 407*1208bc7eSAndroid Build Coastguard Worker 408*1208bc7eSAndroid Build Coastguard Worker static_libs: [ 409*1208bc7eSAndroid Build Coastguard Worker "libjemalloc5_unittest", 410*1208bc7eSAndroid Build Coastguard Worker "libgtestifier", 411*1208bc7eSAndroid Build Coastguard Worker ], 412*1208bc7eSAndroid Build Coastguard Worker 413*1208bc7eSAndroid Build Coastguard Worker isolated: true, 414*1208bc7eSAndroid Build Coastguard Worker 415*1208bc7eSAndroid Build Coastguard Worker target: { 416*1208bc7eSAndroid Build Coastguard Worker linux_bionic: { 417*1208bc7eSAndroid Build Coastguard Worker enabled: true, 418*1208bc7eSAndroid Build Coastguard Worker }, 419*1208bc7eSAndroid Build Coastguard Worker linux_glibc: { 420*1208bc7eSAndroid Build Coastguard Worker // The sanitizer does not work for these tests on the host. 421*1208bc7eSAndroid Build Coastguard Worker sanitize: { 422*1208bc7eSAndroid Build Coastguard Worker never: true, 423*1208bc7eSAndroid Build Coastguard Worker }, 424*1208bc7eSAndroid Build Coastguard Worker }, 425*1208bc7eSAndroid Build Coastguard Worker }, 426*1208bc7eSAndroid Build Coastguard Worker} 427*1208bc7eSAndroid Build Coastguard Worker 428*1208bc7eSAndroid Build Coastguard Worker//----------------------------------------------------------------------- 429*1208bc7eSAndroid Build Coastguard Worker// jemalloc integration test library 430*1208bc7eSAndroid Build Coastguard Worker//----------------------------------------------------------------------- 431*1208bc7eSAndroid Build Coastguard Workercc_library_static { 432*1208bc7eSAndroid Build Coastguard Worker name: "libjemalloc5_integrationtest", 433*1208bc7eSAndroid Build Coastguard Worker 434*1208bc7eSAndroid Build Coastguard Worker defaults: ["jemalloc5_defaults"], 435*1208bc7eSAndroid Build Coastguard Worker 436*1208bc7eSAndroid Build Coastguard Worker cflags: [ 437*1208bc7eSAndroid Build Coastguard Worker "-U_FORTIFY_SOURCE", 438*1208bc7eSAndroid Build Coastguard Worker "-DJEMALLOC_INTEGRATION_TEST", 439*1208bc7eSAndroid Build Coastguard Worker "-DJEMALLOC_NO_RENAME", 440*1208bc7eSAndroid Build Coastguard Worker ], 441*1208bc7eSAndroid Build Coastguard Worker 442*1208bc7eSAndroid Build Coastguard Worker local_include_dirs: [ 443*1208bc7eSAndroid Build Coastguard Worker "test/include", 444*1208bc7eSAndroid Build Coastguard Worker ], 445*1208bc7eSAndroid Build Coastguard Worker 446*1208bc7eSAndroid Build Coastguard Worker srcs: jemalloc5_testlib_srcs + lib_src_files, 447*1208bc7eSAndroid Build Coastguard Worker} 448*1208bc7eSAndroid Build Coastguard Worker 449*1208bc7eSAndroid Build Coastguard Worker//----------------------------------------------------------------------- 450*1208bc7eSAndroid Build Coastguard Worker// jemalloc integration tests 451*1208bc7eSAndroid Build Coastguard Worker//----------------------------------------------------------------------- 452*1208bc7eSAndroid Build Coastguard Workerintegration_tests = [ 453*1208bc7eSAndroid Build Coastguard Worker "test/integration/aligned_alloc.c", 454*1208bc7eSAndroid Build Coastguard Worker "test/integration/allocated.c", 455*1208bc7eSAndroid Build Coastguard Worker "test/integration/extent.c", 456*1208bc7eSAndroid Build Coastguard Worker "test/integration/mallocx.c", 457*1208bc7eSAndroid Build Coastguard Worker "test/integration/MALLOCX_ARENA.c", 458*1208bc7eSAndroid Build Coastguard Worker "test/integration/overflow.c", 459*1208bc7eSAndroid Build Coastguard Worker "test/integration/posix_memalign.c", 460*1208bc7eSAndroid Build Coastguard Worker "test/integration/rallocx.c", 461*1208bc7eSAndroid Build Coastguard Worker "test/integration/sdallocx.c", 462*1208bc7eSAndroid Build Coastguard Worker "test/integration/thread_arena.c", 463*1208bc7eSAndroid Build Coastguard Worker "test/integration/xallocx.c", 464*1208bc7eSAndroid Build Coastguard Worker] 465*1208bc7eSAndroid Build Coastguard Worker 466*1208bc7eSAndroid Build Coastguard Workerintegration_cpp_tests = [ 467*1208bc7eSAndroid Build Coastguard Worker "test/integration/cpp/basic.cpp", 468*1208bc7eSAndroid Build Coastguard Worker] 469*1208bc7eSAndroid Build Coastguard Worker 470*1208bc7eSAndroid Build Coastguard Workergensrcs { 471*1208bc7eSAndroid Build Coastguard Worker name: "jemalloc5_integrationtests_gtestified_srcs", 472*1208bc7eSAndroid Build Coastguard Worker defaults: ["jemalloc5_gtestifier_defaults"], 473*1208bc7eSAndroid Build Coastguard Worker srcs: integration_tests, 474*1208bc7eSAndroid Build Coastguard Worker output_extension: "c", 475*1208bc7eSAndroid Build Coastguard Worker} 476*1208bc7eSAndroid Build Coastguard Worker 477*1208bc7eSAndroid Build Coastguard Workergensrcs { 478*1208bc7eSAndroid Build Coastguard Worker name: "jemalloc5_cpp_integrationtests_gtestified_srcs", 479*1208bc7eSAndroid Build Coastguard Worker defaults: ["jemalloc5_gtestifier_defaults"], 480*1208bc7eSAndroid Build Coastguard Worker srcs: integration_cpp_tests, 481*1208bc7eSAndroid Build Coastguard Worker output_extension: "cpp", 482*1208bc7eSAndroid Build Coastguard Worker} 483*1208bc7eSAndroid Build Coastguard Worker 484*1208bc7eSAndroid Build Coastguard Workercc_test { 485*1208bc7eSAndroid Build Coastguard Worker name: "jemalloc5_integrationtests", 486*1208bc7eSAndroid Build Coastguard Worker 487*1208bc7eSAndroid Build Coastguard Worker defaults: ["jemalloc5_defaults"], 488*1208bc7eSAndroid Build Coastguard Worker 489*1208bc7eSAndroid Build Coastguard Worker cflags: common_cflags + [ 490*1208bc7eSAndroid Build Coastguard Worker "-DJEMALLOC_INTEGRATION_TEST", 491*1208bc7eSAndroid Build Coastguard Worker "-DJEMALLOC_NO_RENAME", 492*1208bc7eSAndroid Build Coastguard Worker "-include jemalloc_gtest.h", 493*1208bc7eSAndroid Build Coastguard Worker ], 494*1208bc7eSAndroid Build Coastguard Worker 495*1208bc7eSAndroid Build Coastguard Worker local_include_dirs: common_c_local_includes + [ 496*1208bc7eSAndroid Build Coastguard Worker "test/include", 497*1208bc7eSAndroid Build Coastguard Worker "android/test", 498*1208bc7eSAndroid Build Coastguard Worker ], 499*1208bc7eSAndroid Build Coastguard Worker 500*1208bc7eSAndroid Build Coastguard Worker srcs: [ 501*1208bc7eSAndroid Build Coastguard Worker ":jemalloc5_integrationtests_gtestified_srcs", 502*1208bc7eSAndroid Build Coastguard Worker ":jemalloc5_cpp_integrationtests_gtestified_srcs", 503*1208bc7eSAndroid Build Coastguard Worker ], 504*1208bc7eSAndroid Build Coastguard Worker 505*1208bc7eSAndroid Build Coastguard Worker static_libs: [ 506*1208bc7eSAndroid Build Coastguard Worker "libjemalloc5_integrationtest", 507*1208bc7eSAndroid Build Coastguard Worker "libgtestifier", 508*1208bc7eSAndroid Build Coastguard Worker ], 509*1208bc7eSAndroid Build Coastguard Worker 510*1208bc7eSAndroid Build Coastguard Worker target: { 511*1208bc7eSAndroid Build Coastguard Worker linux_glibc: { 512*1208bc7eSAndroid Build Coastguard Worker // The sanitizer does not work for these tests on the host. 513*1208bc7eSAndroid Build Coastguard Worker sanitize: { 514*1208bc7eSAndroid Build Coastguard Worker never: true, 515*1208bc7eSAndroid Build Coastguard Worker }, 516*1208bc7eSAndroid Build Coastguard Worker }, 517*1208bc7eSAndroid Build Coastguard Worker }, 518*1208bc7eSAndroid Build Coastguard Worker 519*1208bc7eSAndroid Build Coastguard Worker // Needed for basic.cpp test. 520*1208bc7eSAndroid Build Coastguard Worker stl: "libc++_static", 521*1208bc7eSAndroid Build Coastguard Worker} 522*1208bc7eSAndroid Build Coastguard Worker 523*1208bc7eSAndroid Build Coastguard Worker//----------------------------------------------------------------------- 524*1208bc7eSAndroid Build Coastguard Worker// jemalloc stress test library 525*1208bc7eSAndroid Build Coastguard Worker//----------------------------------------------------------------------- 526*1208bc7eSAndroid Build Coastguard Workercc_library_static { 527*1208bc7eSAndroid Build Coastguard Worker name: "libjemalloc5_stresstestlib", 528*1208bc7eSAndroid Build Coastguard Worker 529*1208bc7eSAndroid Build Coastguard Worker defaults: ["jemalloc5_defaults"], 530*1208bc7eSAndroid Build Coastguard Worker 531*1208bc7eSAndroid Build Coastguard Worker cflags: [ 532*1208bc7eSAndroid Build Coastguard Worker "-DJEMALLOC_STRESS_TEST", 533*1208bc7eSAndroid Build Coastguard Worker "-DJEMALLOC_STRESS_TESTLIB", 534*1208bc7eSAndroid Build Coastguard Worker ], 535*1208bc7eSAndroid Build Coastguard Worker 536*1208bc7eSAndroid Build Coastguard Worker local_include_dirs: [ 537*1208bc7eSAndroid Build Coastguard Worker "test/include", 538*1208bc7eSAndroid Build Coastguard Worker ], 539*1208bc7eSAndroid Build Coastguard Worker 540*1208bc7eSAndroid Build Coastguard Worker srcs: jemalloc5_testlib_srcs, 541*1208bc7eSAndroid Build Coastguard Worker} 542*1208bc7eSAndroid Build Coastguard Worker 543*1208bc7eSAndroid Build Coastguard Worker//----------------------------------------------------------------------- 544*1208bc7eSAndroid Build Coastguard Worker// jemalloc stress tests 545*1208bc7eSAndroid Build Coastguard Worker//----------------------------------------------------------------------- 546*1208bc7eSAndroid Build Coastguard Worker// All tests are in the same order as in the original jemalloc Makefile 547*1208bc7eSAndroid Build Coastguard Worker// to make it easier to track changes. 548*1208bc7eSAndroid Build Coastguard Workerstress_tests = [ 549*1208bc7eSAndroid Build Coastguard Worker "test/stress/microbench.c", 550*1208bc7eSAndroid Build Coastguard Worker] 551*1208bc7eSAndroid Build Coastguard Worker 552*1208bc7eSAndroid Build Coastguard Workergensrcs { 553*1208bc7eSAndroid Build Coastguard Worker name: "jemalloc5_stresstests_gtestified_srcs", 554*1208bc7eSAndroid Build Coastguard Worker defaults: ["jemalloc5_gtestifier_defaults"], 555*1208bc7eSAndroid Build Coastguard Worker srcs: stress_tests, 556*1208bc7eSAndroid Build Coastguard Worker output_extension: "c", 557*1208bc7eSAndroid Build Coastguard Worker} 558*1208bc7eSAndroid Build Coastguard Worker 559*1208bc7eSAndroid Build Coastguard Workercc_test { 560*1208bc7eSAndroid Build Coastguard Worker name: "jemalloc5_stresstests", 561*1208bc7eSAndroid Build Coastguard Worker 562*1208bc7eSAndroid Build Coastguard Worker defaults: ["jemalloc5_defaults"], 563*1208bc7eSAndroid Build Coastguard Worker 564*1208bc7eSAndroid Build Coastguard Worker cflags: common_cflags + [ 565*1208bc7eSAndroid Build Coastguard Worker "-DJEMALLOC_STRESS_TEST", 566*1208bc7eSAndroid Build Coastguard Worker "-include jemalloc_gtest.h", 567*1208bc7eSAndroid Build Coastguard Worker ], 568*1208bc7eSAndroid Build Coastguard Worker 569*1208bc7eSAndroid Build Coastguard Worker local_include_dirs: common_c_local_includes + [ 570*1208bc7eSAndroid Build Coastguard Worker "test/include", 571*1208bc7eSAndroid Build Coastguard Worker "android/test", 572*1208bc7eSAndroid Build Coastguard Worker ], 573*1208bc7eSAndroid Build Coastguard Worker 574*1208bc7eSAndroid Build Coastguard Worker srcs: [":jemalloc5_stresstests_gtestified_srcs"], 575*1208bc7eSAndroid Build Coastguard Worker 576*1208bc7eSAndroid Build Coastguard Worker static_libs: [ 577*1208bc7eSAndroid Build Coastguard Worker "libjemalloc5", 578*1208bc7eSAndroid Build Coastguard Worker "libjemalloc5_stresstestlib", 579*1208bc7eSAndroid Build Coastguard Worker "libjemalloc5_jet", 580*1208bc7eSAndroid Build Coastguard Worker "libgtestifier", 581*1208bc7eSAndroid Build Coastguard Worker ], 582*1208bc7eSAndroid Build Coastguard Worker 583*1208bc7eSAndroid Build Coastguard Worker target: { 584*1208bc7eSAndroid Build Coastguard Worker linux_glibc: { 585*1208bc7eSAndroid Build Coastguard Worker // The sanitizer does not work for these tests on the host. 586*1208bc7eSAndroid Build Coastguard Worker sanitize: { 587*1208bc7eSAndroid Build Coastguard Worker never: true, 588*1208bc7eSAndroid Build Coastguard Worker }, 589*1208bc7eSAndroid Build Coastguard Worker }, 590*1208bc7eSAndroid Build Coastguard Worker }, 591*1208bc7eSAndroid Build Coastguard Worker 592*1208bc7eSAndroid Build Coastguard Worker stl: "libc++", 593*1208bc7eSAndroid Build Coastguard Worker} 594