From 9e8d9da364854e9921769c33b0eb57dac923d002 Mon Sep 17 00:00:00 2001 From: Thomas Kunze Date: Fri, 22 Feb 2008 20:44:16 +0000 Subject: kexec-utils-static: make it compile against klibc --- packages/kexec/files/kexec-klibc.patch | 140 +++++++++++++++++++++++++++++ packages/kexec/kexec-tools-static_1.101.bb | 21 +++-- packages/kexec/kexec-tools.inc | 2 - packages/kexec/kexec-tools_1.101.bb | 4 +- 4 files changed, 159 insertions(+), 8 deletions(-) create mode 100644 packages/kexec/files/kexec-klibc.patch (limited to 'packages/kexec') diff --git a/packages/kexec/files/kexec-klibc.patch b/packages/kexec/files/kexec-klibc.patch new file mode 100644 index 0000000000..b8e2c81689 --- /dev/null +++ b/packages/kexec/files/kexec-klibc.patch @@ -0,0 +1,140 @@ +Index: kexec-tools-1.101/kexec/arch/arm/kexec-elf-rel-arm.c +=================================================================== +--- kexec-tools-1.101.orig/kexec/arch/arm/kexec-elf-rel-arm.c 2008-02-22 20:45:15.907610333 +0100 ++++ kexec-tools-1.101/kexec/arch/arm/kexec-elf-rel-arm.c 2008-02-22 20:45:27.508612989 +0100 +@@ -1,5 +1,5 @@ + #include +-#include ++#include "../../../include/elf.h" + #include "../../kexec.h" + #include "../../kexec-elf.h" + +Index: kexec-tools-1.101/kexec/arch/arm/kexec-zImage-arm.c +=================================================================== +--- kexec-tools-1.101.orig/kexec/arch/arm/kexec-zImage-arm.c 2008-02-22 20:45:15.959611260 +0100 ++++ kexec-tools-1.101/kexec/arch/arm/kexec-zImage-arm.c 2008-02-22 20:45:27.508612989 +0100 +@@ -110,13 +110,13 @@ + } + + fread(buf, sizeof(buf[1]), BOOT_PARAMS_SIZE, fp); +- if (ferror(fp)) { ++/* if (ferror(fp)) { + fprintf(stderr, "Cannot read %s: %s\n", + fn, strerror(errno)); + fclose(fp); + return NULL; + } +- ++*/ + fclose(fp); + return (struct tag *) buf; + } +Index: kexec-tools-1.101/kexec/ifdown.c +=================================================================== +--- kexec-tools-1.101.orig/kexec/ifdown.c 2004-06-09 20:55:31.000000000 +0200 ++++ kexec-tools-1.101/kexec/ifdown.c 2008-02-22 20:45:27.508612989 +0100 +@@ -14,7 +14,7 @@ + #include + #include + #include +-#include ++#include + + #include + #include +Index: kexec-tools-1.101/purgatory/Makefile +=================================================================== +--- kexec-tools-1.101.orig/purgatory/Makefile 2005-01-08 23:36:32.000000000 +0100 ++++ kexec-tools-1.101/purgatory/Makefile 2008-02-22 20:45:27.516611391 +0100 +@@ -13,7 +13,7 @@ + + PCFLAGS += $(call cc-option, -ffreestanding) + PCFLAGS += $(call cc-option, -fnobuiltin) +-PCFLAGS += $(call cc-option, -fnostdinc) ++PCFLAGS += $(call cc-option, -nostdinc) + PCFLAGS += $(call cc-option, -fno-zero-initialized-in-bss) + + PURGATORY_C_SRCS:= +Index: kexec-tools-1.101/kexec/kexec-elf-rel.c +=================================================================== +--- kexec-tools-1.101.orig/kexec/kexec-elf-rel.c 2005-01-13 14:04:21.000000000 +0100 ++++ kexec-tools-1.101/kexec/kexec-elf-rel.c 2008-02-22 20:45:27.524612027 +0100 +@@ -4,7 +4,7 @@ + #include + #include + #include +-#include "elf.h" ++#include "../include/elf.h" + #include + #include "kexec.h" + #include "kexec-elf.h" +Index: kexec-tools-1.101/kexec/kexec-syscall.h +=================================================================== +--- kexec-tools-1.101.orig/kexec/kexec-syscall.h 2008-02-22 20:45:15.923611048 +0100 ++++ kexec-tools-1.101/kexec/kexec-syscall.h 2008-02-22 20:45:27.524612027 +0100 +@@ -2,7 +2,7 @@ + #define KEXEC_SYSCALL_H + + #define __LIBRARY__ +-#include ++/*#include */ + #include + #include + +@@ -21,7 +21,7 @@ + #define LINUX_REBOOT_CMD_KEXEC_OLD 0x81726354 + #define LINUX_REBOOT_CMD_KEXEC_OLD2 0x18263645 + #define LINUX_REBOOT_CMD_KEXEC 0x45584543 +- ++/* + #ifdef __i386__ + #define __NR_kexec_load 283 + #endif +@@ -43,18 +43,19 @@ + #ifndef __NR_kexec_load + #error Unknown processor architecture. Needs a kexec_load syscall number. + #endif +- ++*/ + struct kexec_segment; +- ++/* + static inline long kexec_load(void *entry, unsigned long nr_segments, + struct kexec_segment *segments, unsigned long flags) + { + return (long) syscall(__NR_kexec_load, entry, nr_segments, segments, flags); + } +- ++*/ + static inline long kexec_reboot(void) + { +- return (long) syscall(__NR_reboot, LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_KEXEC, 0); ++ //return (long) syscall(__NR_reboot, LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_KEXEC, 0); ++ return __reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_KEXEC, 0); + } + + +Index: kexec-tools-1.101/kexec/kexec.c +=================================================================== +--- kexec-tools-1.101.orig/kexec/kexec.c 2008-02-22 20:45:15.923611048 +0100 ++++ kexec-tools-1.101/kexec/kexec.c 2008-02-22 20:45:38.847612035 +0100 +@@ -29,9 +29,7 @@ + #include + #include + #include +-#ifdef HAVE_ZLIB_H +-#include +-#endif ++#include "zlib.h" + #include + #include "kexec.h" + #include "kexec-syscall.h" +@@ -383,7 +381,7 @@ + return buf; + } + +-#if HAVE_ZLIB_H ++#if 1 + char *slurp_decompress_file(const char *filename, off_t *r_size) + { + gzFile fp; diff --git a/packages/kexec/kexec-tools-static_1.101.bb b/packages/kexec/kexec-tools-static_1.101.bb index ca23917a11..5031b5f923 100644 --- a/packages/kexec/kexec-tools-static_1.101.bb +++ b/packages/kexec/kexec-tools-static_1.101.bb @@ -1,12 +1,23 @@ +# the binaries are statical linked against klibc require kexec-tools.inc -PR = "r0" +PR = "r1" +DEPENDS = "klibc" -SRC_URI += "file://kexec-static.patch;patch=1" +SRC_URI += "file://kexec-klibc.patch;patch=1" S = "${WORKDIR}/kexec-tools-${PV}" -PACKAGES =+ "kexec-static kdump-static" +EXTRA_OECONF = " --without-zlib" -FILES_kexec-static = "${sbindir}/kexec" -FILES_kdump-static = "${sbindir}/kdump" +export CC=${TARGET_PREFIX}klcc + +# standart oe cflags don't work with klcc +export CFLAGS="" +export CPPFLAGS="" +export LDFLAGS="" + +PACKAGES =+ "kexec-klibc kdump-klibc" + +FILES_kexec-klibc = "${sbindir}/kexec" +FILES_kdump-klibc = "${sbindir}/kdump" diff --git a/packages/kexec/kexec-tools.inc b/packages/kexec/kexec-tools.inc index 5649934a5b..f806e71480 100644 --- a/packages/kexec/kexec-tools.inc +++ b/packages/kexec/kexec-tools.inc @@ -7,8 +7,6 @@ DEPENDS = "virtual/kernel zlib" inherit autotools -export LDFLAGS = "-L${STAGING_LIBDIR}" -EXTRA_OECONF = " --with-zlib=yes" SRC_URI = "http://www.xmission.com/~ebiederm/files/kexec/kexec-tools-${PV}.tar.gz \ file://kexec-tools-arm.patch;patch=1 \ diff --git a/packages/kexec/kexec-tools_1.101.bb b/packages/kexec/kexec-tools_1.101.bb index 366fad4978..f74c7bcd83 100644 --- a/packages/kexec/kexec-tools_1.101.bb +++ b/packages/kexec/kexec-tools_1.101.bb @@ -1,3 +1,5 @@ require kexec-tools.inc +export LDFLAGS = "-L${STAGING_LIBDIR}" +EXTRA_OECONF = " --with-zlib=yes" -PR = "r4" +PR = "r5" -- cgit v1.2.3