summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/qemu/qemu-targets.inc
blob: 50e5eb6796a1bcdc539c03c53971c17c4e7e76b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# possible arch values are:
#    aarch64 arm armeb alpha cris i386 x86_64 m68k microblaze
#    mips mipsel mips64 mips64el ppc ppc64 ppc64abi32 ppcemb
#    riscv32 riscv64 sparc sparc32 sparc32plus

def get_qemu_target_list(d):
    import bb
    archs = d.getVar('QEMU_TARGETS').split()
    tos = d.getVar('HOST_OS')
    tarch = d.getVar('HOST_ARCH')
    # 32 bit hosts can't handle 64 bit targets
    if "64" not in tarch:
        for arch in archs.copy():
            if "64" in arch:
                archs.remove(arch)
    softmmuonly = ""
    for arch in ['ppcemb', 'lm32']:
        if arch in archs:
            softmmuonly += arch + "-softmmu,"
            archs.remove(arch)
    linuxuseronly = ""
    for arch in ['armeb', 'alpha', 'ppc64abi32', 'ppc64le', 'sparc32plus', 'aarch64_be']:
        if arch in archs:
            linuxuseronly += arch + "-linux-user,"
            archs.remove(arch)
    if 'linux' not in tos:
        return softmmuonly + ''.join([arch + "-softmmu" + "," for arch in archs]).rstrip(',')
    return softmmuonly + linuxuseronly + ''.join([arch + "-linux-user" + "," + arch + "-softmmu" + "," for arch in archs]).rstrip(',')

def get_qemu_usermode_target_list(d):
    return ",".join(filter(lambda i: "-linux-user" in i, get_qemu_target_list(d).split(',')))

def get_qemu_system_target_list(d):
    return ",".join(filter(lambda i: "-linux-user" not in i, get_qemu_target_list(d).split(',')))