mirror of
https://git.yoctoproject.org/poky
synced 2026-05-30 12:29:55 +00:00
Revert "kexec-tools: Remove unused patch"
This reverts commit ec1f1c4abe.
(From OE-Core rev: c53a609eae3023d2e2b1009c65721db97fd7b095)
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
03f4eb4ebe
commit
becf5aeefc
@@ -0,0 +1,88 @@
|
|||||||
|
x86_64: Add support to build kexec-tools with x32 ABI
|
||||||
|
|
||||||
|
Summary of changes,
|
||||||
|
|
||||||
|
configure.ac: Add test for detect x32 ABI.
|
||||||
|
purgatory/arch/x86_64/Makefile: Not use mcmodel large when
|
||||||
|
x32 ABI is set.
|
||||||
|
kexec/arch/x86_64/kexec-elf-rel-x86_64.c: When x32 ABI is set
|
||||||
|
use ELFCLASS32 instead of ELFCLASS64.
|
||||||
|
kexec/kexec-syscall.h: Add correct syscall number for x32 ABI.
|
||||||
|
|
||||||
|
Upstream-Status: Submitted
|
||||||
|
|
||||||
|
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
|
||||||
|
Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com>
|
||||||
|
|
||||||
|
---
|
||||||
|
configure.ac | 9 +++++++++
|
||||||
|
kexec/arch/x86_64/kexec-elf-rel-x86_64.c | 4 ++++
|
||||||
|
kexec/kexec-syscall.h | 4 ++++
|
||||||
|
purgatory/arch/x86_64/Makefile | 4 +++-
|
||||||
|
4 files changed, 20 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
Index: kexec-tools-2.0.10/configure.ac
|
||||||
|
===================================================================
|
||||||
|
--- kexec-tools-2.0.10.orig/configure.ac
|
||||||
|
+++ kexec-tools-2.0.10/configure.ac
|
||||||
|
@@ -56,6 +56,15 @@ case $target_cpu in
|
||||||
|
;;
|
||||||
|
ia64|x86_64|alpha|m68k )
|
||||||
|
ARCH="$target_cpu"
|
||||||
|
+
|
||||||
|
+ dnl ---Test for x32 ABI in x86_64
|
||||||
|
+ if test "x$ARCH" = "xx86_64" ; then
|
||||||
|
+ AC_EGREP_CPP(x32_test,
|
||||||
|
+ [#if defined(__x86_64__) && defined (__ILP32__)
|
||||||
|
+ x32_test
|
||||||
|
+ #endif
|
||||||
|
+ ], SUBARCH='x32', SUBARCH='64')
|
||||||
|
+ fi
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
AC_MSG_ERROR([unsupported architecture $target_cpu])
|
||||||
|
Index: kexec-tools-2.0.10/kexec/arch/x86_64/kexec-elf-rel-x86_64.c
|
||||||
|
===================================================================
|
||||||
|
--- kexec-tools-2.0.10.orig/kexec/arch/x86_64/kexec-elf-rel-x86_64.c
|
||||||
|
+++ kexec-tools-2.0.10/kexec/arch/x86_64/kexec-elf-rel-x86_64.c
|
||||||
|
@@ -8,7 +8,11 @@ int machine_verify_elf_rel(struct mem_eh
|
||||||
|
if (ehdr->ei_data != ELFDATA2LSB) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
+#ifdef __ILP32__
|
||||||
|
+ if (ehdr->ei_class != ELFCLASS32) {
|
||||||
|
+#else
|
||||||
|
if (ehdr->ei_class != ELFCLASS64) {
|
||||||
|
+#endif
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (ehdr->e_machine != EM_X86_64) {
|
||||||
|
Index: kexec-tools-2.0.10/kexec/kexec-syscall.h
|
||||||
|
===================================================================
|
||||||
|
--- kexec-tools-2.0.10.orig/kexec/kexec-syscall.h
|
||||||
|
+++ kexec-tools-2.0.10/kexec/kexec-syscall.h
|
||||||
|
@@ -31,8 +31,12 @@
|
||||||
|
#define __NR_kexec_load 268
|
||||||
|
#endif
|
||||||
|
#ifdef __x86_64__
|
||||||
|
+#ifdef __ILP32__
|
||||||
|
+#define __NR_kexec_load 528
|
||||||
|
+#else
|
||||||
|
#define __NR_kexec_load 246
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
#ifdef __s390x__
|
||||||
|
#define __NR_kexec_load 277
|
||||||
|
#endif
|
||||||
|
Index: kexec-tools-2.0.10/purgatory/arch/x86_64/Makefile
|
||||||
|
===================================================================
|
||||||
|
--- kexec-tools-2.0.10.orig/purgatory/arch/x86_64/Makefile
|
||||||
|
+++ kexec-tools-2.0.10/purgatory/arch/x86_64/Makefile
|
||||||
|
@@ -23,4 +23,6 @@ x86_64_PURGATORY_SRCS += purgatory/arch/
|
||||||
|
x86_64_PURGATORY_SRCS += purgatory/arch/i386/vga.c
|
||||||
|
x86_64_PURGATORY_SRCS += purgatory/arch/i386/pic.c
|
||||||
|
|
||||||
|
-x86_64_PURGATORY_EXTRA_CFLAGS = -mcmodel=large
|
||||||
|
+ifeq ($(SUBARCH),64)
|
||||||
|
+ x86_64_PURGATORY_EXTRA_CFLAGS = -mcmodel=large
|
||||||
|
+endif
|
||||||
Reference in New Issue
Block a user