mirror of
https://github.com/qemu/qemu.git
synced 2024-12-18 01:34:15 +08:00
e0447a834d
We are generating a lot of target-specific defines in the *-config-devices.h and *-config-target.h files. Using them in common code is wrong and leads to very subtle bugs since a "#ifdef CONFIG_SOMETHING" is not working there as expected. To avoid these issues, we are already poisoning many of the macros in include/exec/poison.h - but it's cumbersome to maintain this list manually. Thus let's generate an additional list of poisoned macros automatically from the current config switches - this should give us a much better test coverage via the different CI configurations. Note that CONFIG_TCG (which is also defined in config-host.h) and CONFIG_USER_ONLY are special, so we have to filter these out. Message-Id: <20210414112004.943383-5-thuth@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
97 lines
2.9 KiB
C
97 lines
2.9 KiB
C
/* Poison identifiers that should not be used when building
|
|
target independent device code. */
|
|
|
|
#ifndef HW_POISON_H
|
|
#define HW_POISON_H
|
|
|
|
#include "config-poison.h"
|
|
|
|
#pragma GCC poison TARGET_I386
|
|
#pragma GCC poison TARGET_X86_64
|
|
#pragma GCC poison TARGET_AARCH64
|
|
#pragma GCC poison TARGET_ALPHA
|
|
#pragma GCC poison TARGET_ARM
|
|
#pragma GCC poison TARGET_CRIS
|
|
#pragma GCC poison TARGET_HEXAGON
|
|
#pragma GCC poison TARGET_HPPA
|
|
#pragma GCC poison TARGET_M68K
|
|
#pragma GCC poison TARGET_MICROBLAZE
|
|
#pragma GCC poison TARGET_MIPS
|
|
#pragma GCC poison TARGET_ABI_MIPSN32
|
|
#pragma GCC poison TARGET_ABI_MIPSO32
|
|
#pragma GCC poison TARGET_MIPS64
|
|
#pragma GCC poison TARGET_ABI_MIPSN64
|
|
#pragma GCC poison TARGET_NIOS2
|
|
#pragma GCC poison TARGET_OPENRISC
|
|
#pragma GCC poison TARGET_PPC
|
|
#pragma GCC poison TARGET_PPC64
|
|
#pragma GCC poison TARGET_ABI32
|
|
#pragma GCC poison TARGET_RX
|
|
#pragma GCC poison TARGET_S390X
|
|
#pragma GCC poison TARGET_SH4
|
|
#pragma GCC poison TARGET_SPARC
|
|
#pragma GCC poison TARGET_SPARC64
|
|
#pragma GCC poison TARGET_TRICORE
|
|
#pragma GCC poison TARGET_XTENSA
|
|
|
|
#pragma GCC poison TARGET_ALIGNED_ONLY
|
|
#pragma GCC poison TARGET_HAS_BFLT
|
|
#pragma GCC poison TARGET_NAME
|
|
#pragma GCC poison TARGET_SUPPORTS_MTTCG
|
|
#pragma GCC poison TARGET_WORDS_BIGENDIAN
|
|
#pragma GCC poison BSWAP_NEEDED
|
|
|
|
#pragma GCC poison TARGET_LONG_BITS
|
|
#pragma GCC poison TARGET_FMT_lx
|
|
#pragma GCC poison TARGET_FMT_ld
|
|
#pragma GCC poison TARGET_FMT_lu
|
|
|
|
#pragma GCC poison TARGET_PAGE_SIZE
|
|
#pragma GCC poison TARGET_PAGE_MASK
|
|
#pragma GCC poison TARGET_PAGE_BITS
|
|
#pragma GCC poison TARGET_PAGE_ALIGN
|
|
|
|
#pragma GCC poison CPUArchState
|
|
|
|
#pragma GCC poison CPU_INTERRUPT_HARD
|
|
#pragma GCC poison CPU_INTERRUPT_EXITTB
|
|
#pragma GCC poison CPU_INTERRUPT_HALT
|
|
#pragma GCC poison CPU_INTERRUPT_DEBUG
|
|
#pragma GCC poison CPU_INTERRUPT_TGT_EXT_0
|
|
#pragma GCC poison CPU_INTERRUPT_TGT_EXT_1
|
|
#pragma GCC poison CPU_INTERRUPT_TGT_EXT_2
|
|
#pragma GCC poison CPU_INTERRUPT_TGT_EXT_3
|
|
#pragma GCC poison CPU_INTERRUPT_TGT_EXT_4
|
|
#pragma GCC poison CPU_INTERRUPT_TGT_INT_0
|
|
#pragma GCC poison CPU_INTERRUPT_TGT_INT_1
|
|
#pragma GCC poison CPU_INTERRUPT_TGT_INT_2
|
|
|
|
#pragma GCC poison CONFIG_ALPHA_DIS
|
|
#pragma GCC poison CONFIG_ARM_A64_DIS
|
|
#pragma GCC poison CONFIG_ARM_DIS
|
|
#pragma GCC poison CONFIG_CRIS_DIS
|
|
#pragma GCC poison CONFIG_HPPA_DIS
|
|
#pragma GCC poison CONFIG_I386_DIS
|
|
#pragma GCC poison CONFIG_HEXAGON_DIS
|
|
#pragma GCC poison CONFIG_M68K_DIS
|
|
#pragma GCC poison CONFIG_MICROBLAZE_DIS
|
|
#pragma GCC poison CONFIG_MIPS_DIS
|
|
#pragma GCC poison CONFIG_NANOMIPS_DIS
|
|
#pragma GCC poison CONFIG_NIOS2_DIS
|
|
#pragma GCC poison CONFIG_PPC_DIS
|
|
#pragma GCC poison CONFIG_RISCV_DIS
|
|
#pragma GCC poison CONFIG_S390_DIS
|
|
#pragma GCC poison CONFIG_SH4_DIS
|
|
#pragma GCC poison CONFIG_SPARC_DIS
|
|
#pragma GCC poison CONFIG_XTENSA_DIS
|
|
|
|
#pragma GCC poison CONFIG_HAX
|
|
#pragma GCC poison CONFIG_HVF
|
|
#pragma GCC poison CONFIG_LINUX_USER
|
|
#pragma GCC poison CONFIG_KVM
|
|
#pragma GCC poison CONFIG_SOFTMMU
|
|
#pragma GCC poison CONFIG_WHPX
|
|
#pragma GCC poison CONFIG_XEN
|
|
|
|
#endif
|