1*61c4878aSAndroid Build Coastguard Worker# Copyright 2023 The Pigweed Authors 2*61c4878aSAndroid Build Coastguard Worker# 3*61c4878aSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); you may not 4*61c4878aSAndroid Build Coastguard Worker# use this file except in compliance with the License. You may obtain a copy of 5*61c4878aSAndroid Build Coastguard Worker# the License at 6*61c4878aSAndroid Build Coastguard Worker# 7*61c4878aSAndroid Build Coastguard Worker# https://www.apache.org/licenses/LICENSE-2.0 8*61c4878aSAndroid Build Coastguard Worker# 9*61c4878aSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 10*61c4878aSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11*61c4878aSAndroid Build Coastguard Worker# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12*61c4878aSAndroid Build Coastguard Worker# License for the specific language governing permissions and limitations under 13*61c4878aSAndroid Build Coastguard Worker# the License. 14*61c4878aSAndroid Build Coastguard Worker 15*61c4878aSAndroid Build Coastguard Workerimport("//build_overrides/pigweed.gni") 16*61c4878aSAndroid Build Coastguard Worker 17*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_build/error.gni") 18*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_build/target_types.gni") 19*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_docgen/docs.gni") 20*61c4878aSAndroid Build Coastguard Worker 21*61c4878aSAndroid Build Coastguard Workerdeclare_args() { 22*61c4878aSAndroid Build Coastguard Worker # This should be set to the path of the llvm compiler-rt/builtins directory. 23*61c4878aSAndroid Build Coastguard Worker dir_pw_third_party_llvm_builtins = "" 24*61c4878aSAndroid Build Coastguard Worker 25*61c4878aSAndroid Build Coastguard Worker # Points to a pw_source_set that enumerates builtins specific to 26*61c4878aSAndroid Build Coastguard Worker # the current toolchain. 27*61c4878aSAndroid Build Coastguard Worker pw_third_party_llvm_builtins_TARGET_BUILTINS = "" 28*61c4878aSAndroid Build Coastguard Worker 29*61c4878aSAndroid Build Coastguard Worker # List of files to be excluded from the builtins repo. 30*61c4878aSAndroid Build Coastguard Worker pw_third_party_llvm_builtins_ignore_list = [] 31*61c4878aSAndroid Build Coastguard Worker} 32*61c4878aSAndroid Build Coastguard Worker 33*61c4878aSAndroid Build Coastguard Workerconfig("no-warnings") { 34*61c4878aSAndroid Build Coastguard Worker cflags = [ 35*61c4878aSAndroid Build Coastguard Worker "-Wno-double-promotion", 36*61c4878aSAndroid Build Coastguard Worker "-Wno-undef", 37*61c4878aSAndroid Build Coastguard Worker "-Wno-unused-parameter", 38*61c4878aSAndroid Build Coastguard Worker "-Wno-strict-prototypes", 39*61c4878aSAndroid Build Coastguard Worker ] 40*61c4878aSAndroid Build Coastguard Worker} 41*61c4878aSAndroid Build Coastguard Worker 42*61c4878aSAndroid Build Coastguard Worker# Source files that are common between ARMv6M and ARMv7M. 43*61c4878aSAndroid Build Coastguard Workergeneric_sources = [ 44*61c4878aSAndroid Build Coastguard Worker "absvdi2.c", 45*61c4878aSAndroid Build Coastguard Worker "absvsi2.c", 46*61c4878aSAndroid Build Coastguard Worker "absvti2.c", 47*61c4878aSAndroid Build Coastguard Worker "adddf3.c", 48*61c4878aSAndroid Build Coastguard Worker "addvdi3.c", 49*61c4878aSAndroid Build Coastguard Worker "addvsi3.c", 50*61c4878aSAndroid Build Coastguard Worker "addvti3.c", 51*61c4878aSAndroid Build Coastguard Worker "ashldi3.c", 52*61c4878aSAndroid Build Coastguard Worker "ashlti3.c", 53*61c4878aSAndroid Build Coastguard Worker "ashrdi3.c", 54*61c4878aSAndroid Build Coastguard Worker "ashrti3.c", 55*61c4878aSAndroid Build Coastguard Worker "clzti2.c", 56*61c4878aSAndroid Build Coastguard Worker "cmpdi2.c", 57*61c4878aSAndroid Build Coastguard Worker "cmpti2.c", 58*61c4878aSAndroid Build Coastguard Worker "comparedf2.c", 59*61c4878aSAndroid Build Coastguard Worker "ctzdi2.c", 60*61c4878aSAndroid Build Coastguard Worker "ctzsi2.c", 61*61c4878aSAndroid Build Coastguard Worker "ctzti2.c", 62*61c4878aSAndroid Build Coastguard Worker "divdc3.c", 63*61c4878aSAndroid Build Coastguard Worker "divdf3.c", 64*61c4878aSAndroid Build Coastguard Worker "divdi3.c", 65*61c4878aSAndroid Build Coastguard Worker "divmoddi4.c", 66*61c4878aSAndroid Build Coastguard Worker "divmodti4.c", 67*61c4878aSAndroid Build Coastguard Worker "divsc3.c", 68*61c4878aSAndroid Build Coastguard Worker "divsf3.c", 69*61c4878aSAndroid Build Coastguard Worker "divti3.c", 70*61c4878aSAndroid Build Coastguard Worker "extendhfsf2.c", 71*61c4878aSAndroid Build Coastguard Worker "extendsfdf2.c", 72*61c4878aSAndroid Build Coastguard Worker "ffsdi2.c", 73*61c4878aSAndroid Build Coastguard Worker "ffssi2.c", 74*61c4878aSAndroid Build Coastguard Worker "ffsti2.c", 75*61c4878aSAndroid Build Coastguard Worker "fixdfdi.c", 76*61c4878aSAndroid Build Coastguard Worker "fixdfsi.c", 77*61c4878aSAndroid Build Coastguard Worker "fixdfti.c", 78*61c4878aSAndroid Build Coastguard Worker "fixsfdi.c", 79*61c4878aSAndroid Build Coastguard Worker "fixsfsi.c", 80*61c4878aSAndroid Build Coastguard Worker "fixsfti.c", 81*61c4878aSAndroid Build Coastguard Worker "fixunsdfdi.c", 82*61c4878aSAndroid Build Coastguard Worker "fixunsdfsi.c", 83*61c4878aSAndroid Build Coastguard Worker "fixunsdfti.c", 84*61c4878aSAndroid Build Coastguard Worker "fixunssfdi.c", 85*61c4878aSAndroid Build Coastguard Worker "fixunssfsi.c", 86*61c4878aSAndroid Build Coastguard Worker "fixunssfti.c", 87*61c4878aSAndroid Build Coastguard Worker "floatdidf.c", 88*61c4878aSAndroid Build Coastguard Worker "floatdisf.c", 89*61c4878aSAndroid Build Coastguard Worker "floatsidf.c", 90*61c4878aSAndroid Build Coastguard Worker "floatsisf.c", 91*61c4878aSAndroid Build Coastguard Worker "floattidf.c", 92*61c4878aSAndroid Build Coastguard Worker "floattisf.c", 93*61c4878aSAndroid Build Coastguard Worker "floatundidf.c", 94*61c4878aSAndroid Build Coastguard Worker "floatundisf.c", 95*61c4878aSAndroid Build Coastguard Worker "floatunsidf.c", 96*61c4878aSAndroid Build Coastguard Worker "floatunsisf.c", 97*61c4878aSAndroid Build Coastguard Worker "floatuntidf.c", 98*61c4878aSAndroid Build Coastguard Worker "floatuntisf.c", 99*61c4878aSAndroid Build Coastguard Worker "int_util.c", 100*61c4878aSAndroid Build Coastguard Worker "lshrdi3.c", 101*61c4878aSAndroid Build Coastguard Worker "lshrti3.c", 102*61c4878aSAndroid Build Coastguard Worker "moddi3.c", 103*61c4878aSAndroid Build Coastguard Worker "modti3.c", 104*61c4878aSAndroid Build Coastguard Worker "muldc3.c", 105*61c4878aSAndroid Build Coastguard Worker "muldf3.c", 106*61c4878aSAndroid Build Coastguard Worker "muldi3.c", 107*61c4878aSAndroid Build Coastguard Worker "mulodi4.c", 108*61c4878aSAndroid Build Coastguard Worker "mulosi4.c", 109*61c4878aSAndroid Build Coastguard Worker "muloti4.c", 110*61c4878aSAndroid Build Coastguard Worker "mulsc3.c", 111*61c4878aSAndroid Build Coastguard Worker "mulsf3.c", 112*61c4878aSAndroid Build Coastguard Worker "multi3.c", 113*61c4878aSAndroid Build Coastguard Worker "mulvdi3.c", 114*61c4878aSAndroid Build Coastguard Worker "mulvsi3.c", 115*61c4878aSAndroid Build Coastguard Worker "mulvti3.c", 116*61c4878aSAndroid Build Coastguard Worker "negdf2.c", 117*61c4878aSAndroid Build Coastguard Worker "negdi2.c", 118*61c4878aSAndroid Build Coastguard Worker "negsf2.c", 119*61c4878aSAndroid Build Coastguard Worker "negti2.c", 120*61c4878aSAndroid Build Coastguard Worker "negvdi2.c", 121*61c4878aSAndroid Build Coastguard Worker "negvsi2.c", 122*61c4878aSAndroid Build Coastguard Worker "negvti2.c", 123*61c4878aSAndroid Build Coastguard Worker "os_version_check.c", 124*61c4878aSAndroid Build Coastguard Worker "paritydi2.c", 125*61c4878aSAndroid Build Coastguard Worker "paritysi2.c", 126*61c4878aSAndroid Build Coastguard Worker "parityti2.c", 127*61c4878aSAndroid Build Coastguard Worker "popcountdi2.c", 128*61c4878aSAndroid Build Coastguard Worker "popcountsi2.c", 129*61c4878aSAndroid Build Coastguard Worker "popcountti2.c", 130*61c4878aSAndroid Build Coastguard Worker "powidf2.c", 131*61c4878aSAndroid Build Coastguard Worker "powisf2.c", 132*61c4878aSAndroid Build Coastguard Worker "subdf3.c", 133*61c4878aSAndroid Build Coastguard Worker "subsf3.c", 134*61c4878aSAndroid Build Coastguard Worker "subvdi3.c", 135*61c4878aSAndroid Build Coastguard Worker "subvsi3.c", 136*61c4878aSAndroid Build Coastguard Worker "subvti3.c", 137*61c4878aSAndroid Build Coastguard Worker "trampoline_setup.c", 138*61c4878aSAndroid Build Coastguard Worker "truncdfhf2.c", 139*61c4878aSAndroid Build Coastguard Worker "truncdfsf2.c", 140*61c4878aSAndroid Build Coastguard Worker "truncsfhf2.c", 141*61c4878aSAndroid Build Coastguard Worker "ucmpdi2.c", 142*61c4878aSAndroid Build Coastguard Worker "ucmpti2.c", 143*61c4878aSAndroid Build Coastguard Worker "udivdi3.c", 144*61c4878aSAndroid Build Coastguard Worker "udivmoddi4.c", 145*61c4878aSAndroid Build Coastguard Worker "udivmodti4.c", 146*61c4878aSAndroid Build Coastguard Worker "udivti3.c", 147*61c4878aSAndroid Build Coastguard Worker "umoddi3.c", 148*61c4878aSAndroid Build Coastguard Worker "umodti3.c", 149*61c4878aSAndroid Build Coastguard Worker] 150*61c4878aSAndroid Build Coastguard Worker 151*61c4878aSAndroid Build Coastguard Workergeneric_tf_sources = [ 152*61c4878aSAndroid Build Coastguard Worker "addtf3.c", 153*61c4878aSAndroid Build Coastguard Worker "comparetf2.c", 154*61c4878aSAndroid Build Coastguard Worker "divtc3.c", 155*61c4878aSAndroid Build Coastguard Worker "divtf3.c", 156*61c4878aSAndroid Build Coastguard Worker "extenddftf2.c", 157*61c4878aSAndroid Build Coastguard Worker "extendhftf2.c", 158*61c4878aSAndroid Build Coastguard Worker "extendsftf2.c", 159*61c4878aSAndroid Build Coastguard Worker "fixtfdi.c", 160*61c4878aSAndroid Build Coastguard Worker "fixtfsi.c", 161*61c4878aSAndroid Build Coastguard Worker "fixtfti.c", 162*61c4878aSAndroid Build Coastguard Worker "fixunstfdi.c", 163*61c4878aSAndroid Build Coastguard Worker "fixunstfsi.c", 164*61c4878aSAndroid Build Coastguard Worker "fixunstfti.c", 165*61c4878aSAndroid Build Coastguard Worker "floatditf.c", 166*61c4878aSAndroid Build Coastguard Worker "floatsitf.c", 167*61c4878aSAndroid Build Coastguard Worker "floattitf.c", 168*61c4878aSAndroid Build Coastguard Worker "floatunditf.c", 169*61c4878aSAndroid Build Coastguard Worker "floatunsitf.c", 170*61c4878aSAndroid Build Coastguard Worker "floatuntitf.c", 171*61c4878aSAndroid Build Coastguard Worker "multc3.c", 172*61c4878aSAndroid Build Coastguard Worker "multf3.c", 173*61c4878aSAndroid Build Coastguard Worker "powitf2.c", 174*61c4878aSAndroid Build Coastguard Worker "subtf3.c", 175*61c4878aSAndroid Build Coastguard Worker "trunctfdf2.c", 176*61c4878aSAndroid Build Coastguard Worker "trunctfhf2.c", 177*61c4878aSAndroid Build Coastguard Worker "trunctfsf2.c", 178*61c4878aSAndroid Build Coastguard Worker] 179*61c4878aSAndroid Build Coastguard Worker 180*61c4878aSAndroid Build Coastguard Workerarmv7m_only_sources = [ 181*61c4878aSAndroid Build Coastguard Worker "addsf3.c", 182*61c4878aSAndroid Build Coastguard Worker ## Assembly equivalent version of these following sources are 183*61c4878aSAndroid Build Coastguard Worker ## provided by arm_or_thumb2_base_sources 184*61c4878aSAndroid Build Coastguard Worker # "bswapdi2.c", 185*61c4878aSAndroid Build Coastguard Worker # "bswapsi2.c", 186*61c4878aSAndroid Build Coastguard Worker # "clzdi2.c", 187*61c4878aSAndroid Build Coastguard Worker # "clzsi2.c", 188*61c4878aSAndroid Build Coastguard Worker # "comparesf2.c", 189*61c4878aSAndroid Build Coastguard Worker # "divmodsi4.c", 190*61c4878aSAndroid Build Coastguard Worker # "divsi3.c", 191*61c4878aSAndroid Build Coastguard Worker # "fp_mode.c", 192*61c4878aSAndroid Build Coastguard Worker # "modsi3.c", 193*61c4878aSAndroid Build Coastguard Worker # "udivmodsi4.c", 194*61c4878aSAndroid Build Coastguard Worker # "udivsi3.c", 195*61c4878aSAndroid Build Coastguard Worker # "umodsi3.c", 196*61c4878aSAndroid Build Coastguard Worker] 197*61c4878aSAndroid Build Coastguard Worker 198*61c4878aSAndroid Build Coastguard Workerarmv6m_only_sources = [ 199*61c4878aSAndroid Build Coastguard Worker "bswapdi2.c", 200*61c4878aSAndroid Build Coastguard Worker "bswapsi2.c", 201*61c4878aSAndroid Build Coastguard Worker "clzdi2.c", 202*61c4878aSAndroid Build Coastguard Worker "clzsi2.c", 203*61c4878aSAndroid Build Coastguard Worker "divmodsi4.c", 204*61c4878aSAndroid Build Coastguard Worker "fp_mode.c", 205*61c4878aSAndroid Build Coastguard Worker "modsi3.c", 206*61c4878aSAndroid Build Coastguard Worker "udivmodsi4.c", 207*61c4878aSAndroid Build Coastguard Worker "umodsi3.c", 208*61c4878aSAndroid Build Coastguard Worker 209*61c4878aSAndroid Build Coastguard Worker ## Assembly equivalent version of these following sources are 210*61c4878aSAndroid Build Coastguard Worker ## provided by thumb1_base_sources 211*61c4878aSAndroid Build Coastguard Worker # "addsf3.c", 212*61c4878aSAndroid Build Coastguard Worker # "divsi3.c", 213*61c4878aSAndroid Build Coastguard Worker # "udivsi3.c", 214*61c4878aSAndroid Build Coastguard Worker # "comparesf2.c", 215*61c4878aSAndroid Build Coastguard Worker] 216*61c4878aSAndroid Build Coastguard Worker 217*61c4878aSAndroid Build Coastguard Workerarm_or_thumb2_base_sources = [ 218*61c4878aSAndroid Build Coastguard Worker "arm/bswapdi2.S", 219*61c4878aSAndroid Build Coastguard Worker "arm/bswapsi2.S", 220*61c4878aSAndroid Build Coastguard Worker "arm/clzdi2.S", 221*61c4878aSAndroid Build Coastguard Worker "arm/clzsi2.S", 222*61c4878aSAndroid Build Coastguard Worker "arm/comparesf2.S", 223*61c4878aSAndroid Build Coastguard Worker "arm/divmodsi4.S", 224*61c4878aSAndroid Build Coastguard Worker "arm/divsi3.S", 225*61c4878aSAndroid Build Coastguard Worker "arm/fp_mode.c", 226*61c4878aSAndroid Build Coastguard Worker "arm/modsi3.S", 227*61c4878aSAndroid Build Coastguard Worker "arm/udivmodsi4.S", 228*61c4878aSAndroid Build Coastguard Worker "arm/udivsi3.S", 229*61c4878aSAndroid Build Coastguard Worker "arm/umodsi3.S", 230*61c4878aSAndroid Build Coastguard Worker] 231*61c4878aSAndroid Build Coastguard Worker 232*61c4878aSAndroid Build Coastguard Workerarm_sync_sources = [ 233*61c4878aSAndroid Build Coastguard Worker "arm/sync_fetch_and_add_4.S", 234*61c4878aSAndroid Build Coastguard Worker "arm/sync_fetch_and_add_8.S", 235*61c4878aSAndroid Build Coastguard Worker "arm/sync_fetch_and_and_4.S", 236*61c4878aSAndroid Build Coastguard Worker "arm/sync_fetch_and_and_8.S", 237*61c4878aSAndroid Build Coastguard Worker "arm/sync_fetch_and_max_4.S", 238*61c4878aSAndroid Build Coastguard Worker "arm/sync_fetch_and_max_8.S", 239*61c4878aSAndroid Build Coastguard Worker "arm/sync_fetch_and_min_4.S", 240*61c4878aSAndroid Build Coastguard Worker "arm/sync_fetch_and_min_8.S", 241*61c4878aSAndroid Build Coastguard Worker "arm/sync_fetch_and_nand_4.S", 242*61c4878aSAndroid Build Coastguard Worker "arm/sync_fetch_and_nand_8.S", 243*61c4878aSAndroid Build Coastguard Worker "arm/sync_fetch_and_or_4.S", 244*61c4878aSAndroid Build Coastguard Worker "arm/sync_fetch_and_or_8.S", 245*61c4878aSAndroid Build Coastguard Worker "arm/sync_fetch_and_sub_4.S", 246*61c4878aSAndroid Build Coastguard Worker "arm/sync_fetch_and_sub_8.S", 247*61c4878aSAndroid Build Coastguard Worker "arm/sync_fetch_and_umax_4.S", 248*61c4878aSAndroid Build Coastguard Worker "arm/sync_fetch_and_umax_8.S", 249*61c4878aSAndroid Build Coastguard Worker "arm/sync_fetch_and_umin_4.S", 250*61c4878aSAndroid Build Coastguard Worker "arm/sync_fetch_and_umin_8.S", 251*61c4878aSAndroid Build Coastguard Worker "arm/sync_fetch_and_xor_4.S", 252*61c4878aSAndroid Build Coastguard Worker "arm/sync_fetch_and_xor_8.S", 253*61c4878aSAndroid Build Coastguard Worker] 254*61c4878aSAndroid Build Coastguard Worker 255*61c4878aSAndroid Build Coastguard Worker# builtin support for Thumb-only targets with very limited Thumb2 technology, 256*61c4878aSAndroid Build Coastguard Worker# such as v6-m and v8-m.baseline 257*61c4878aSAndroid Build Coastguard Workerthumb1_base_sources = [ 258*61c4878aSAndroid Build Coastguard Worker "arm/addsf3.S", 259*61c4878aSAndroid Build Coastguard Worker "arm/comparesf2.S", 260*61c4878aSAndroid Build Coastguard Worker "arm/divsi3.S", 261*61c4878aSAndroid Build Coastguard Worker "arm/udivsi3.S", 262*61c4878aSAndroid Build Coastguard Worker] 263*61c4878aSAndroid Build Coastguard Worker 264*61c4878aSAndroid Build Coastguard Workerarm_eabi_sources = [ 265*61c4878aSAndroid Build Coastguard Worker "arm/aeabi_cdcmp.S", 266*61c4878aSAndroid Build Coastguard Worker "arm/aeabi_cdcmpeq_check_nan.c", 267*61c4878aSAndroid Build Coastguard Worker "arm/aeabi_cfcmp.S", 268*61c4878aSAndroid Build Coastguard Worker "arm/aeabi_cfcmpeq_check_nan.c", 269*61c4878aSAndroid Build Coastguard Worker "arm/aeabi_dcmp.S", 270*61c4878aSAndroid Build Coastguard Worker "arm/aeabi_div0.c", 271*61c4878aSAndroid Build Coastguard Worker "arm/aeabi_drsub.c", 272*61c4878aSAndroid Build Coastguard Worker "arm/aeabi_fcmp.S", 273*61c4878aSAndroid Build Coastguard Worker "arm/aeabi_frsub.c", 274*61c4878aSAndroid Build Coastguard Worker "arm/aeabi_idivmod.S", 275*61c4878aSAndroid Build Coastguard Worker "arm/aeabi_ldivmod.S", 276*61c4878aSAndroid Build Coastguard Worker "arm/aeabi_memcmp.S", 277*61c4878aSAndroid Build Coastguard Worker "arm/aeabi_memcpy.S", 278*61c4878aSAndroid Build Coastguard Worker "arm/aeabi_memmove.S", 279*61c4878aSAndroid Build Coastguard Worker "arm/aeabi_memset.S", 280*61c4878aSAndroid Build Coastguard Worker "arm/aeabi_uidivmod.S", 281*61c4878aSAndroid Build Coastguard Worker "arm/aeabi_uldivmod.S", 282*61c4878aSAndroid Build Coastguard Worker] 283*61c4878aSAndroid Build Coastguard Worker 284*61c4878aSAndroid Build Coastguard Workerarm_thumb1_jt_sources = [ 285*61c4878aSAndroid Build Coastguard Worker "arm/switch16.S", 286*61c4878aSAndroid Build Coastguard Worker "arm/switch32.S", 287*61c4878aSAndroid Build Coastguard Worker "arm/switch8.S", 288*61c4878aSAndroid Build Coastguard Worker "arm/switchu8.S", 289*61c4878aSAndroid Build Coastguard Worker] 290*61c4878aSAndroid Build Coastguard Worker 291*61c4878aSAndroid Build Coastguard Workerarm_thumb1_icache_sources = [ "arm/sync_synchronize.S" ] 292*61c4878aSAndroid Build Coastguard Worker 293*61c4878aSAndroid Build Coastguard Worker# thumb1 calling into Arm to cover support 294*61c4878aSAndroid Build Coastguard Workerarm_thumb1_sources = arm_thumb1_jt_sources + arm_thumb1_icache_sources 295*61c4878aSAndroid Build Coastguard Worker 296*61c4878aSAndroid Build Coastguard Workerarm_sources = arm_or_thumb2_base_sources + arm_sync_sources + arm_eabi_sources + 297*61c4878aSAndroid Build Coastguard Worker arm_thumb1_sources + generic_sources + armv7m_only_sources + 298*61c4878aSAndroid Build Coastguard Worker generic_tf_sources 299*61c4878aSAndroid Build Coastguard Worker 300*61c4878aSAndroid Build Coastguard Workerthumb1_sources = thumb1_base_sources + arm_eabi_sources + generic_sources + 301*61c4878aSAndroid Build Coastguard Worker armv6m_only_sources + generic_tf_sources 302*61c4878aSAndroid Build Coastguard Worker 303*61c4878aSAndroid Build Coastguard Workerarmv6m_sources = thumb1_sources 304*61c4878aSAndroid Build Coastguard Workerarmv7m_sources = arm_sources 305*61c4878aSAndroid Build Coastguard Worker 306*61c4878aSAndroid Build Coastguard Worker# ARM builtins for ARMv7-M. 307*61c4878aSAndroid Build Coastguard Worker# Because this is unconditionally added to all clang-based ARM toolchains, 308*61c4878aSAndroid Build Coastguard Worker# this library should be a no-op if `dir_pw_third_party_llvm_builtins` is 309*61c4878aSAndroid Build Coastguard Worker# not configured. 310*61c4878aSAndroid Build Coastguard Workerpw_source_set("arm_builtins_armv7m") { 311*61c4878aSAndroid Build Coastguard Worker configs = [ ":no-warnings" ] 312*61c4878aSAndroid Build Coastguard Worker remove_configs = [ "//pw_build:extra_strict_warnings" ] 313*61c4878aSAndroid Build Coastguard Worker 314*61c4878aSAndroid Build Coastguard Worker sources = [] 315*61c4878aSAndroid Build Coastguard Worker 316*61c4878aSAndroid Build Coastguard Worker arm_files = armv7m_sources 317*61c4878aSAndroid Build Coastguard Worker 318*61c4878aSAndroid Build Coastguard Worker if (dir_pw_third_party_llvm_builtins != "") { 319*61c4878aSAndroid Build Coastguard Worker effective_arm_files = 320*61c4878aSAndroid Build Coastguard Worker filter_exclude(arm_files, pw_third_party_llvm_builtins_ignore_list) 321*61c4878aSAndroid Build Coastguard Worker foreach(file, effective_arm_files) { 322*61c4878aSAndroid Build Coastguard Worker sources += [ "$dir_pw_third_party_llvm_builtins/$file" ] 323*61c4878aSAndroid Build Coastguard Worker } 324*61c4878aSAndroid Build Coastguard Worker } else { 325*61c4878aSAndroid Build Coastguard Worker not_needed([ "arm_files" ]) 326*61c4878aSAndroid Build Coastguard Worker } 327*61c4878aSAndroid Build Coastguard Worker} 328*61c4878aSAndroid Build Coastguard Worker 329*61c4878aSAndroid Build Coastguard Worker# ARM builtins for ARMv6-M. 330*61c4878aSAndroid Build Coastguard Worker# Because this is unconditionally added to all clang-based ARM toolchains, 331*61c4878aSAndroid Build Coastguard Worker# this library should be a no-op if `dir_pw_third_party_llvm_builtins` is 332*61c4878aSAndroid Build Coastguard Worker# not configured. 333*61c4878aSAndroid Build Coastguard Workerpw_source_set("arm_builtins_armv6m") { 334*61c4878aSAndroid Build Coastguard Worker configs = [ ":no-warnings" ] 335*61c4878aSAndroid Build Coastguard Worker remove_configs = [ "//pw_build:extra_strict_warnings" ] 336*61c4878aSAndroid Build Coastguard Worker 337*61c4878aSAndroid Build Coastguard Worker sources = [] 338*61c4878aSAndroid Build Coastguard Worker 339*61c4878aSAndroid Build Coastguard Worker arm_files = armv6m_sources 340*61c4878aSAndroid Build Coastguard Worker 341*61c4878aSAndroid Build Coastguard Worker if (dir_pw_third_party_llvm_builtins != "") { 342*61c4878aSAndroid Build Coastguard Worker effective_arm_files = 343*61c4878aSAndroid Build Coastguard Worker filter_exclude(arm_files, pw_third_party_llvm_builtins_ignore_list) 344*61c4878aSAndroid Build Coastguard Worker foreach(file, effective_arm_files) { 345*61c4878aSAndroid Build Coastguard Worker sources += [ "$dir_pw_third_party_llvm_builtins/$file" ] 346*61c4878aSAndroid Build Coastguard Worker } 347*61c4878aSAndroid Build Coastguard Worker } else { 348*61c4878aSAndroid Build Coastguard Worker not_needed([ "arm_files" ]) 349*61c4878aSAndroid Build Coastguard Worker } 350*61c4878aSAndroid Build Coastguard Worker} 351*61c4878aSAndroid Build Coastguard Worker 352*61c4878aSAndroid Build Coastguard Worker# Because this is unconditionally added to all clang-based ARM toolchains, 353*61c4878aSAndroid Build Coastguard Worker# this library should be a no-op if `dir_pw_third_party_llvm_builtins` is 354*61c4878aSAndroid Build Coastguard Worker# not configured. 355*61c4878aSAndroid Build Coastguard Workerpw_static_library("llvm_builtins") { 356*61c4878aSAndroid Build Coastguard Worker add_global_link_deps = false 357*61c4878aSAndroid Build Coastguard Worker configs = [ ":no-warnings" ] 358*61c4878aSAndroid Build Coastguard Worker remove_configs = [ "//pw_build:extra_strict_warnings" ] 359*61c4878aSAndroid Build Coastguard Worker sources = [] 360*61c4878aSAndroid Build Coastguard Worker 361*61c4878aSAndroid Build Coastguard Worker # Architecture specific pw_source_set created from LLVM builtins 362*61c4878aSAndroid Build Coastguard Worker # source files. e.g. arm_builtins_armv6m. 363*61c4878aSAndroid Build Coastguard Worker # If this property is not set, no architecture specific builtin 364*61c4878aSAndroid Build Coastguard Worker # functions will be included from the repo. 365*61c4878aSAndroid Build Coastguard Worker if (pw_third_party_llvm_builtins_TARGET_BUILTINS != "") { 366*61c4878aSAndroid Build Coastguard Worker deps = [ pw_third_party_llvm_builtins_TARGET_BUILTINS ] 367*61c4878aSAndroid Build Coastguard Worker } 368*61c4878aSAndroid Build Coastguard Worker} 369*61c4878aSAndroid Build Coastguard Worker 370*61c4878aSAndroid Build Coastguard Workerpw_doc_group("docs") { 371*61c4878aSAndroid Build Coastguard Worker sources = [ "docs.rst" ] 372*61c4878aSAndroid Build Coastguard Worker} 373