aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2025-07-29 13:40:15 -1000
committerRichard Henderson <richard.henderson@linaro.org>2025-08-28 06:39:25 +1000
commita859022ceaba12444f1a8f5a5efc5e76c7d5dc13 (patch)
tree0b6adba2a47361afcb34c92095a5398f24beeb68
parent58afe4cfe93be0e283e7a0fcd9a50fd52fc44169 (diff)
downloadqemu-a859022ceaba12444f1a8f5a5efc5e76c7d5dc13.zip
qemu-a859022ceaba12444f1a8f5a5efc5e76c7d5dc13.tar.gz
qemu-a859022ceaba12444f1a8f5a5efc5e76c7d5dc13.tar.bz2
linux-user: Move ppc uabi/asm/elf.h workaround to osdep.h
Move the workaround out of linux-user/elfload.c, so that we don't have to replicate it in many places. Place it immediately after the include of <signal.h>, which draws in the relevant symbols. Note that ARCH_DLINFO is not defined by the kernel header, and so there's no need to undef it either. Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
-rw-r--r--hw/core/loader.c4
-rw-r--r--include/qemu/osdep.h8
-rw-r--r--linux-user/elfload.c10
3 files changed, 8 insertions, 14 deletions
diff --git a/hw/core/loader.c b/hw/core/loader.c
index e7056ba..524af6f 100644
--- a/hw/core/loader.c
+++ b/hw/core/loader.c
@@ -295,10 +295,6 @@ static void *load_at(int fd, off_t offset, size_t size)
return ptr;
}
-#ifdef ELF_CLASS
-#undef ELF_CLASS
-#endif
-
#define ELF_CLASS ELFCLASS32
#include "elf.h"
diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h
index 96fe51b..be3460b 100644
--- a/include/qemu/osdep.h
+++ b/include/qemu/osdep.h
@@ -133,6 +133,14 @@ QEMU_EXTERN_C int daemon(int, int);
#include <setjmp.h>
#include <signal.h>
+/*
+ * Avoid conflict with linux/arch/powerpc/include/uapi/asm/elf.h, included
+ * from <asm/sigcontext.h>, but we might as well do this unconditionally.
+ */
+#undef ELF_CLASS
+#undef ELF_DATA
+#undef ELF_ARCH
+
#ifdef CONFIG_IOVEC
#include <sys/uio.h>
#endif
diff --git a/linux-user/elfload.c b/linux-user/elfload.c
index ea21410..4ca8c39 100644
--- a/linux-user/elfload.c
+++ b/linux-user/elfload.c
@@ -35,16 +35,6 @@
#include "target/arm/cpu-features.h"
#endif
-#ifdef _ARCH_PPC64
-#undef ARCH_DLINFO
-#undef ELF_PLATFORM
-#undef ELF_HWCAP
-#undef ELF_HWCAP2
-#undef ELF_CLASS
-#undef ELF_DATA
-#undef ELF_ARCH
-#endif
-
#ifndef TARGET_ARCH_HAS_SIGTRAMP_PAGE
#define TARGET_ARCH_HAS_SIGTRAMP_PAGE 0
#endif