1*4882a593Smuzhiyun# 2*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 3*4882a593Smuzhiyun# 4*4882a593Smuzhiyun 5*4882a593Smuzhiyundef machine_dict(d): 6*4882a593Smuzhiyun# TARGET_OS TARGET_ARCH MACHINE, OSABI, ABIVERSION, Little Endian, 32bit? 7*4882a593Smuzhiyun machdata = { 8*4882a593Smuzhiyun "darwin9" : { 9*4882a593Smuzhiyun "arm" : (40, 0, 0, True, 32), 10*4882a593Smuzhiyun }, 11*4882a593Smuzhiyun "eabi" : { 12*4882a593Smuzhiyun "arm" : (40, 0, 0, True, 32), 13*4882a593Smuzhiyun }, 14*4882a593Smuzhiyun "elf" : { 15*4882a593Smuzhiyun "aarch64" : (183, 0, 0, True, 64), 16*4882a593Smuzhiyun "aarch64_be" :(183, 0, 0, False, 64), 17*4882a593Smuzhiyun "i586" : (3, 0, 0, True, 32), 18*4882a593Smuzhiyun "i686" : (3, 0, 0, True, 32), 19*4882a593Smuzhiyun "x86_64": (62, 0, 0, True, 64), 20*4882a593Smuzhiyun "epiphany": (4643, 0, 0, True, 32), 21*4882a593Smuzhiyun "lm32": (138, 0, 0, False, 32), 22*4882a593Smuzhiyun "mips": ( 8, 0, 0, False, 32), 23*4882a593Smuzhiyun "mipsel": ( 8, 0, 0, True, 32), 24*4882a593Smuzhiyun "microblaze": (189, 0, 0, False, 32), 25*4882a593Smuzhiyun "microblazeel":(189, 0, 0, True, 32), 26*4882a593Smuzhiyun "powerpc": (20, 0, 0, False, 32), 27*4882a593Smuzhiyun "riscv32": (243, 0, 0, True, 32), 28*4882a593Smuzhiyun "riscv64": (243, 0, 0, True, 64), 29*4882a593Smuzhiyun }, 30*4882a593Smuzhiyun "linux" : { 31*4882a593Smuzhiyun "aarch64" : (183, 0, 0, True, 64), 32*4882a593Smuzhiyun "aarch64_be" :(183, 0, 0, False, 64), 33*4882a593Smuzhiyun "arm" : (40, 97, 0, True, 32), 34*4882a593Smuzhiyun "armeb": (40, 97, 0, False, 32), 35*4882a593Smuzhiyun "powerpc": (20, 0, 0, False, 32), 36*4882a593Smuzhiyun "powerpc64": (21, 0, 0, False, 64), 37*4882a593Smuzhiyun "powerpc64le": (21, 0, 0, True, 64), 38*4882a593Smuzhiyun "i386": ( 3, 0, 0, True, 32), 39*4882a593Smuzhiyun "i486": ( 3, 0, 0, True, 32), 40*4882a593Smuzhiyun "i586": ( 3, 0, 0, True, 32), 41*4882a593Smuzhiyun "i686": ( 3, 0, 0, True, 32), 42*4882a593Smuzhiyun "x86_64": (62, 0, 0, True, 64), 43*4882a593Smuzhiyun "ia64": (50, 0, 0, True, 64), 44*4882a593Smuzhiyun "alpha": (36902, 0, 0, True, 64), 45*4882a593Smuzhiyun "hppa": (15, 3, 0, False, 32), 46*4882a593Smuzhiyun "m68k": ( 4, 0, 0, False, 32), 47*4882a593Smuzhiyun "mips": ( 8, 0, 0, False, 32), 48*4882a593Smuzhiyun "mipsel": ( 8, 0, 0, True, 32), 49*4882a593Smuzhiyun "mips64": ( 8, 0, 0, False, 64), 50*4882a593Smuzhiyun "mips64el": ( 8, 0, 0, True, 64), 51*4882a593Smuzhiyun "mipsisa32r6": ( 8, 0, 0, False, 32), 52*4882a593Smuzhiyun "mipsisa32r6el": ( 8, 0, 0, True, 32), 53*4882a593Smuzhiyun "mipsisa64r6": ( 8, 0, 0, False, 64), 54*4882a593Smuzhiyun "mipsisa64r6el": ( 8, 0, 0, True, 64), 55*4882a593Smuzhiyun "nios2": (113, 0, 0, True, 32), 56*4882a593Smuzhiyun "riscv32": (243, 0, 0, True, 32), 57*4882a593Smuzhiyun "riscv64": (243, 0, 0, True, 64), 58*4882a593Smuzhiyun "s390": (22, 0, 0, False, 32), 59*4882a593Smuzhiyun "sh4": (42, 0, 0, True, 32), 60*4882a593Smuzhiyun "sparc": ( 2, 0, 0, False, 32), 61*4882a593Smuzhiyun "microblaze": (189, 0, 0, False, 32), 62*4882a593Smuzhiyun "microblazeel":(189, 0, 0, True, 32), 63*4882a593Smuzhiyun }, 64*4882a593Smuzhiyun "linux-android" : { 65*4882a593Smuzhiyun "aarch64" : (183, 0, 0, True, 64), 66*4882a593Smuzhiyun "i686": ( 3, 0, 0, True, 32), 67*4882a593Smuzhiyun "x86_64": (62, 0, 0, True, 64), 68*4882a593Smuzhiyun }, 69*4882a593Smuzhiyun "linux-androideabi" : { 70*4882a593Smuzhiyun "arm" : (40, 97, 0, True, 32), 71*4882a593Smuzhiyun }, 72*4882a593Smuzhiyun "linux-musl" : { 73*4882a593Smuzhiyun "aarch64" : (183, 0, 0, True, 64), 74*4882a593Smuzhiyun "aarch64_be" :(183, 0, 0, False, 64), 75*4882a593Smuzhiyun "arm" : ( 40, 97, 0, True, 32), 76*4882a593Smuzhiyun "armeb": ( 40, 97, 0, False, 32), 77*4882a593Smuzhiyun "powerpc": ( 20, 0, 0, False, 32), 78*4882a593Smuzhiyun "powerpc64": ( 21, 0, 0, False, 64), 79*4882a593Smuzhiyun "powerpc64le": (21, 0, 0, True, 64), 80*4882a593Smuzhiyun "i386": ( 3, 0, 0, True, 32), 81*4882a593Smuzhiyun "i486": ( 3, 0, 0, True, 32), 82*4882a593Smuzhiyun "i586": ( 3, 0, 0, True, 32), 83*4882a593Smuzhiyun "i686": ( 3, 0, 0, True, 32), 84*4882a593Smuzhiyun "x86_64": ( 62, 0, 0, True, 64), 85*4882a593Smuzhiyun "mips": ( 8, 0, 0, False, 32), 86*4882a593Smuzhiyun "mipsel": ( 8, 0, 0, True, 32), 87*4882a593Smuzhiyun "mips64": ( 8, 0, 0, False, 64), 88*4882a593Smuzhiyun "mips64el": ( 8, 0, 0, True, 64), 89*4882a593Smuzhiyun "microblaze": (189, 0, 0, False, 32), 90*4882a593Smuzhiyun "microblazeel":(189, 0, 0, True, 32), 91*4882a593Smuzhiyun "riscv32": (243, 0, 0, True, 32), 92*4882a593Smuzhiyun "riscv64": (243, 0, 0, True, 64), 93*4882a593Smuzhiyun "sh4": ( 42, 0, 0, True, 32), 94*4882a593Smuzhiyun }, 95*4882a593Smuzhiyun "uclinux-uclibc" : { 96*4882a593Smuzhiyun "bfin": ( 106, 0, 0, True, 32), 97*4882a593Smuzhiyun }, 98*4882a593Smuzhiyun "linux-gnueabi" : { 99*4882a593Smuzhiyun "arm" : (40, 0, 0, True, 32), 100*4882a593Smuzhiyun "armeb" : (40, 0, 0, False, 32), 101*4882a593Smuzhiyun }, 102*4882a593Smuzhiyun "linux-musleabi" : { 103*4882a593Smuzhiyun "arm" : (40, 0, 0, True, 32), 104*4882a593Smuzhiyun "armeb" : (40, 0, 0, False, 32), 105*4882a593Smuzhiyun }, 106*4882a593Smuzhiyun "linux-gnuspe" : { 107*4882a593Smuzhiyun "powerpc": (20, 0, 0, False, 32), 108*4882a593Smuzhiyun }, 109*4882a593Smuzhiyun "linux-muslspe" : { 110*4882a593Smuzhiyun "powerpc": (20, 0, 0, False, 32), 111*4882a593Smuzhiyun }, 112*4882a593Smuzhiyun "linux-gnu" : { 113*4882a593Smuzhiyun "powerpc": (20, 0, 0, False, 32), 114*4882a593Smuzhiyun "sh4": (42, 0, 0, True, 32), 115*4882a593Smuzhiyun }, 116*4882a593Smuzhiyun "linux-gnu_ilp32" : { 117*4882a593Smuzhiyun "aarch64" : (183, 0, 0, True, 32), 118*4882a593Smuzhiyun }, 119*4882a593Smuzhiyun "linux-gnux32" : { 120*4882a593Smuzhiyun "x86_64": (62, 0, 0, True, 32), 121*4882a593Smuzhiyun }, 122*4882a593Smuzhiyun "linux-muslx32" : { 123*4882a593Smuzhiyun "x86_64": (62, 0, 0, True, 32), 124*4882a593Smuzhiyun }, 125*4882a593Smuzhiyun "linux-gnun32" : { 126*4882a593Smuzhiyun "mips64": ( 8, 0, 0, False, 32), 127*4882a593Smuzhiyun "mips64el": ( 8, 0, 0, True, 32), 128*4882a593Smuzhiyun "mipsisa64r6": ( 8, 0, 0, False, 32), 129*4882a593Smuzhiyun "mipsisa64r6el":( 8, 0, 0, True, 32), 130*4882a593Smuzhiyun }, 131*4882a593Smuzhiyun } 132*4882a593Smuzhiyun 133*4882a593Smuzhiyun # Add in any extra user supplied data which may come from a BSP layer, removing the 134*4882a593Smuzhiyun # need to always change this class directly 135*4882a593Smuzhiyun extra_machdata = (d and d.getVar("PACKAGEQA_EXTRA_MACHDEFFUNCS" or None) or "").split() 136*4882a593Smuzhiyun for m in extra_machdata: 137*4882a593Smuzhiyun call = m + "(machdata, d)" 138*4882a593Smuzhiyun locs = { "machdata" : machdata, "d" : d} 139*4882a593Smuzhiyun machdata = bb.utils.better_eval(call, locs) 140*4882a593Smuzhiyun 141*4882a593Smuzhiyun return machdata 142