diff options
author | Andrea Adami <andrea.adami@gmail.com> | 2012-02-21 00:21:54 +0000 |
---|---|---|
committer | Koen Kooi <koen@dominion.thruhere.net> | 2012-02-22 09:40:25 +0100 |
commit | 302cf2272c362612cabdc27001475f1c91f06608 (patch) | |
tree | c1d8f83465b8b1ac49c425e3b79663c6d8d92b46 /meta-initramfs/recipes-kernel/kexec | |
parent | 25c2e973e02ecc2a0aff4ccea8c53c42519ff5e3 (diff) | |
download | meta-openembedded-302cf2272c362612cabdc27001475f1c91f06608.tar.gz |
meta-initramfs: add kexec-tools-klibc from meta-oe
Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Diffstat (limited to 'meta-initramfs/recipes-kernel/kexec')
6 files changed, 287 insertions, 0 deletions
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/elf.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/elf.patch new file mode 100644 index 000000000..0eef4b4f5 --- /dev/null +++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/elf.patch | |||
@@ -0,0 +1,94 @@ | |||
1 | Index: kexec-tools-2.0.2/kexec/kexec-elf-rel.c | ||
2 | =================================================================== | ||
3 | --- kexec-tools-2.0.2.orig/kexec/kexec-elf-rel.c 2009-09-24 14:15:34.025828340 +0100 | ||
4 | +++ kexec-tools-2.0.2/kexec/kexec-elf-rel.c 2009-09-24 14:15:47.030825302 +0100 | ||
5 | @@ -4,7 +4,7 @@ | ||
6 | #include <stdio.h> | ||
7 | #include <errno.h> | ||
8 | #include <stdlib.h> | ||
9 | -#include "elf.h" | ||
10 | +#include "../include/elf.h" | ||
11 | #include <boot/elf_boot.h> | ||
12 | #include "kexec.h" | ||
13 | #include "kexec-elf.h" | ||
14 | Index: kexec-tools-2.0.2/kexec/crashdump.c | ||
15 | =================================================================== | ||
16 | --- kexec-tools-2.0.2.orig/kexec/crashdump.c 2008-10-31 03:00:38.000000000 +0100 | ||
17 | +++ kexec-tools-2.0.2/kexec/crashdump.c 2009-09-26 11:16:27.000000000 +0200 | ||
18 | @@ -26,7 +26,7 @@ | ||
19 | #include <sys/types.h> | ||
20 | #include <sys/stat.h> | ||
21 | #include <unistd.h> | ||
22 | -#include <elf.h> | ||
23 | +#include "../../../include/elf.h" | ||
24 | #include "kexec.h" | ||
25 | #include "crashdump.h" | ||
26 | #include "kexec-syscall.h" | ||
27 | |||
28 | Index: kexec-tools-2.0.2/kexec/crashdump-xen.c | ||
29 | =================================================================== | ||
30 | --- kexec-tools-2.0.2.orig/kexec/crashdump-xen.c 2008-07-15 02:46:43.000000000 +0200 | ||
31 | +++ kexec-tools-2.0.2/kexec/crashdump-xen.c 2009-09-26 11:16:41.000000000 +0200 | ||
32 | @@ -3,7 +3,7 @@ | ||
33 | #include <stdarg.h> | ||
34 | #include <string.h> | ||
35 | #include <stdlib.h> | ||
36 | -#include <elf.h> | ||
37 | +#include "../../../include/elf.h" | ||
38 | #include <errno.h> | ||
39 | #include <limits.h> | ||
40 | #include <sys/types.h> | ||
41 | |||
42 | Index: kexec-tools-2.0.2/kexec/arch/arm/kexec-elf-rel-arm.c | ||
43 | =================================================================== | ||
44 | --- kexec-tools-2.0.2.orig/kexec/arch/arm/kexec-elf-rel-arm.c 2009-04-24 14:15:46.934825202 +0100 | ||
45 | +++ kexec-tools-2.0.2/kexec/arch/arm/kexec-elf-rel-arm.c 2009-09-24 14:15:47.014827381 +0100 | ||
46 | @@ -1,5 +1,5 @@ | ||
47 | #include <stdio.h> | ||
48 | -#include <elf.h> | ||
49 | +#include "../../../include/elf.h" | ||
50 | #include "../../kexec.h" | ||
51 | #include "../../kexec-elf.h" | ||
52 | |||
53 | Index: kexec-tools-2.0.2/kexec/kexec-elf-boot.c | ||
54 | =================================================================== | ||
55 | --- kexec-tools-2.0.2.orig/kexec/kexec-elf-boot.c 2009-05-16 13:28:19.000000000 +0200 | ||
56 | +++ kexec-tools-2.0.2/kexec/kexec-elf-boot.c 2009-09-16 11:13:28.000000000 +0200 | ||
57 | @@ -22,7 +22,7 @@ | ||
58 | #include <string.h> | ||
59 | #include <stdlib.h> | ||
60 | #include <errno.h> | ||
61 | -#include <elf.h> | ||
62 | +#include "../include/elf.h" | ||
63 | #include <boot/elf_boot.h> | ||
64 | #include <ip_checksum.h> | ||
65 | #include <x86/x86-linux.h> | ||
66 | |||
67 | Index: kexec-tools-2.0.2/kdump/kdump.c | ||
68 | =================================================================== | ||
69 | --- kexec-tools-2.0.2.orig/kdump/kdump.c 2009-05-16 13:28:19.000000000 +0200 | ||
70 | +++ kexec-tools-2.0.2/kdump/kdump.c 2009-09-16 11:13:08.000000000 +0200 | ||
71 | @@ -8,7 +8,7 @@ | ||
72 | #include <sys/stat.h> | ||
73 | #include <fcntl.h> | ||
74 | #include <endian.h> | ||
75 | -#include <elf.h> | ||
76 | +#include "../include/elf.h" | ||
77 | |||
78 | #if !defined(__BYTE_ORDER) || !defined(__LITTLE_ENDIAN) || !defined(__BIG_ENDIAN) | ||
79 | #error Endian defines missing | ||
80 | |||
81 | Index: kexec-tools-2.0.2/kexec/arch/arm/crashdump-arm.c | ||
82 | =================================================================== | ||
83 | --- kexec-tools-2.0.2.old/kexec/arch/arm/crashdump-arm.c 2010-08-01 15:07:47.000000000 +0200 | ||
84 | +++ kexec-tools-2.0.2/kexec/arch/arm/crashdump-arm.c 2010-07-29 06:19:59.000000000 +0200 | ||
85 | @@ -20,7 +20,7 @@ | ||
86 | * along with this program; if not, write to the Free Software | ||
87 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
88 | */ | ||
89 | -#include <elf.h> | ||
90 | +#include "../../../include/elf.h" | ||
91 | #include <errno.h> | ||
92 | #include <stdio.h> | ||
93 | #include <stdlib.h> | ||
94 | |||
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/errno.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/errno.patch new file mode 100644 index 000000000..c56b5a980 --- /dev/null +++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/errno.patch | |||
@@ -0,0 +1,13 @@ | |||
1 | Index: kexec-tools-2.0.2/kexec/ifdown.c | ||
2 | =================================================================== | ||
3 | --- kexec-tools-2.0.2.orig/kexec/ifdown.c 2009-09-24 14:15:34.025828340 +0100 | ||
4 | +++ kexec-tools-2.0.2/kexec/ifdown.c 2009-09-24 14:15:47.014827381 +0100 | ||
5 | @@ -14,7 +14,7 @@ | ||
6 | #include <sys/ioctl.h> | ||
7 | #include <sys/socket.h> | ||
8 | #include <sys/time.h> | ||
9 | -#include <sys/errno.h> | ||
10 | +#include <errno.h> | ||
11 | |||
12 | #include <net/if.h> | ||
13 | #include <netinet/in.h> \ No newline at end of file | ||
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/other.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/other.patch new file mode 100644 index 000000000..f6efaebc4 --- /dev/null +++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/other.patch | |||
@@ -0,0 +1,97 @@ | |||
1 | Index: kexec-tools-2.0.2/kexec/crashdump-elf.c | ||
2 | =================================================================== | ||
3 | --- kexec-tools-2.0.2.orig/kexec/crashdump-elf.c 2008-10-31 03:00:38.000000000 +0100 | ||
4 | +++ kexec-tools-2.0.2/kexec/crashdump-elf.c 2009-09-26 11:17:57.000000000 +0200 | ||
5 | @@ -47,7 +47,8 @@ | ||
6 | if (xen_present()) | ||
7 | nr_cpus = xen_get_nr_phys_cpus(); | ||
8 | else | ||
9 | - nr_cpus = sysconf(_SC_NPROCESSORS_CONF); | ||
10 | + /*nr_cpus = sysconf(_SC_NPROCESSORS_CONF);*/ | ||
11 | + nr_cpus = 1; | ||
12 | |||
13 | if (nr_cpus < 0) { | ||
14 | return -1; | ||
15 | |||
16 | Index: kexec-tools-2.0.2/kexec/arch/arm/kexec-zImage-arm.c | ||
17 | =================================================================== | ||
18 | --- kexec-tools-2.0.2.orig/kexec/arch/arm/kexec-zImage-arm.c 2009-04-24 14:15:46.982825391 +0100 | ||
19 | +++ kexec-tools-2.0.2/kexec/arch/arm/kexec-zImage-arm.c 2009-09-26 01:58:20.838624318 +0200 | ||
20 | @@ -2,6 +2,10 @@ | ||
21 | * - 08/21/2007 ATAG support added by Uli Luckas <u.luckas@road.de> | ||
22 | * | ||
23 | */ | ||
24 | + | ||
25 | +/* work around for linux header files */ | ||
26 | +#define __deprecated | ||
27 | + | ||
28 | #define _GNU_SOURCE | ||
29 | #define _XOPEN_SOURCE | ||
30 | #include <stdio.h> | ||
31 | |||
32 | Index: kexec-tools-2.0.2/kexec/kexec.h | ||
33 | =================================================================== | ||
34 | --- kexec-tools-2.0.2.orig/kexec/kexec.h 2008-05-16 13:28:19.000000000 +0200 | ||
35 | +++ kexec-tools-2.0.2/kexec/kexec.h 2009-09-16 17:32:15.000000000 +0200 | ||
36 | @@ -204,7 +204,7 @@ | ||
37 | extern char *slurp_file(const char *filename, off_t *r_size); | ||
38 | extern char *slurp_file_len(const char *filename, off_t size); | ||
39 | extern char *slurp_decompress_file(const char *filename, off_t *r_size); | ||
40 | -extern unsigned long virt_to_phys(unsigned long addr); | ||
41 | +/* extern unsigned long virt_to_phys(unsigned long addr); */ | ||
42 | extern void add_segment(struct kexec_info *info, | ||
43 | const void *buf, size_t bufsz, unsigned long base, size_t memsz); | ||
44 | extern void add_segment_phys_virt(struct kexec_info *info, | ||
45 | |||
46 | Index: kexec-tools-2.0.2/Makefile.in | ||
47 | =================================================================== | ||
48 | --- kexec-tools-2.0.2.orig/Makefile.in 2009-09-29 23:49:47.000000000 +0200 | ||
49 | +++ kexec-tools-2.0.2/Makefile.in 2009-09-29 23:49:09.000000000 +0200 | ||
50 | @@ -46,7 +46,7 @@ | ||
51 | # where necessary. | ||
52 | CPPFLAGS = @CPPFLAGS@ -I$(srcdir)/include -I$(srcdir)/util_lib/include \ | ||
53 | -Iinclude/ | ||
54 | -CFLAGS = @CFLAGS@ -fno-strict-aliasing -Wall -Wstrict-prototypes | ||
55 | +CFLAGS = @CFLAGS@ -static -fno-strict-aliasing -Wall -Wstrict-prototypes | ||
56 | PURGATORY_EXTRA_CFLAGS = @PURGATORY_EXTRA_CFLAGS@ | ||
57 | ASFLAGS = @ASFLAGS@ | ||
58 | LDFLAGS = @LDFLAGS@ | ||
59 | |||
60 | Index: kexec-tools-2.0.2/util_lib/include/sha256.h | ||
61 | =================================================================== | ||
62 | --- kexec-tools-2.0.2.orig/util_lib/include/sha256.h 2008-07-15 02:46:43.000000000 +0200 | ||
63 | +++ kexec-tools-2.0.2/util_lib/include/sha256.h 2009-10-02 18:28:45.000000000 +0200 | ||
64 | @@ -1,7 +1,8 @@ | ||
65 | #ifndef SHA256_H | ||
66 | #define SHA256_H | ||
67 | |||
68 | -#include <sys/types.h> | ||
69 | +//#include <sys/types.h> | ||
70 | +#include <stddef.h> | ||
71 | #include <stdint.h> | ||
72 | |||
73 | typedef struct | ||
74 | |||
75 | Index: kexec-tools-2.0.2/purgatory/Makefile | ||
76 | =================================================================== | ||
77 | --- kexec-tools-2.0.2.orig/purgatory/Makefile 2008-10-09 00:32:14.000000000 +0200 | ||
78 | +++ kexec-tools-2.0.2.orig/purgatory/Makefile 2009-10-03 00:28:45.000000000 +0200 | ||
79 | @@ -47,7 +47,7 @@ | ||
80 | $(PURGATORY): CC=$(TARGET_CC) | ||
81 | $(PURGATORY): CFLAGS+=$(PURGATORY_EXTRA_CFLAGS) \ | ||
82 | $($(ARCH)_PURGATORY_EXTRA_CFLAGS) \ | ||
83 | - -Os -fno-builtin -ffreestanding | ||
84 | + -Os -fno-builtin -ffreestanding -nostdinc | ||
85 | |||
86 | $(PURGATORY): CPPFLAGS=$($(ARCH)_PURGATORY_EXTRA_CFLAGS) \ | ||
87 | -I$(srcdir)/purgatory/include \ | ||
88 | @@ -61,7 +61,8 @@ | ||
89 | |||
90 | $(PURGATORY): $(PURGATORY_OBJS) | ||
91 | $(MKDIR) -p $(@D) | ||
92 | - $(CC) $(LDFLAGS) -o $@ $^ | ||
93 | +# $(CC) $(LDFLAGS) -o $@ $^ | ||
94 | + $(LD) $(LDFLAGS) -o $@ $^ | ||
95 | |||
96 | # $(LD) $(LDFLAGS) $(EXTRA_LDFLAGS) --no-undefined -e purgatory_start -r -o $@ $(PURGATORY_OBJS) $(UTIL_LIB) | ||
97 | |||
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/string.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/string.patch new file mode 100644 index 000000000..7d27e3998 --- /dev/null +++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/string.patch | |||
@@ -0,0 +1,11 @@ | |||
1 | Index: kexec-tools-2.0.2/purgatory/string.c | ||
2 | =================================================================== | ||
3 | --- kexec-tools-2.0.2.orig/purgatory/string.c 2008-05-16 13:28:19.000000000 +0200 | ||
4 | +++ kexec-tools-2.0.2/purgatory/string.c 2009-09-16 17:49:04.000000000 +0200 | ||
5 | @@ -1,5 +1,5 @@ | ||
6 | #include <stddef.h> | ||
7 | -#include <string.h> | ||
8 | +/* #include <string.h> */ | ||
9 | |||
10 | size_t strnlen(const char *s, size_t max) | ||
11 | { | ||
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/syscall.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/syscall.patch new file mode 100644 index 000000000..ae2e3f6a6 --- /dev/null +++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc-2.0.2/syscall.patch | |||
@@ -0,0 +1,46 @@ | |||
1 | Index: kexec-tools-2.0.2/kexec/kexec-syscall.h | ||
2 | =================================================================== | ||
3 | --- kexec-tools-2.0.2.orig/kexec/kexec-syscall.h 2010-07-29 06:19:59.000000000 +0200 | ||
4 | +++ kexec-tools-2.0.2/kexec/kexec-syscall.h 2010-08-02 00:13:39.000000000 +0200 | ||
5 | @@ -2,7 +2,7 @@ | ||
6 | #define KEXEC_SYSCALL_H | ||
7 | |||
8 | #define __LIBRARY__ | ||
9 | -#include <syscall.h> | ||
10 | +/*#include <syscall.h>*/ | ||
11 | #include <sys/syscall.h> | ||
12 | #include <unistd.h> | ||
13 | |||
14 | @@ -23,6 +23,7 @@ | ||
15 | #define LINUX_REBOOT_CMD_KEXEC 0x45584543 | ||
16 | |||
17 | #ifndef __NR_kexec_load | ||
18 | +/* | ||
19 | #ifdef __i386__ | ||
20 | #define __NR_kexec_load 283 | ||
21 | #endif | ||
22 | @@ -61,19 +62,21 @@ | ||
23 | #ifndef __NR_kexec_load | ||
24 | #error Unknown processor architecture. Needs a kexec_load syscall number. | ||
25 | #endif | ||
26 | +*/ | ||
27 | #endif /*ifndef __NR_kexec_load*/ | ||
28 | |||
29 | struct kexec_segment; | ||
30 | - | ||
31 | +/* | ||
32 | static inline long kexec_load(void *entry, unsigned long nr_segments, | ||
33 | struct kexec_segment *segments, unsigned long flags) | ||
34 | { | ||
35 | return (long) syscall(__NR_kexec_load, entry, nr_segments, segments, flags); | ||
36 | } | ||
37 | - | ||
38 | +*/ | ||
39 | static inline long kexec_reboot(void) | ||
40 | { | ||
41 | - return (long) syscall(__NR_reboot, LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_KEXEC, 0); | ||
42 | + //return (long) syscall(__NR_reboot, LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_KEXEC, 0); | ||
43 | + return __reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, LINUX_REBOOT_CMD_KEXEC, 0); | ||
44 | } | ||
45 | |||
46 | |||
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_2.0.2.bb b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_2.0.2.bb new file mode 100644 index 000000000..9c35330f3 --- /dev/null +++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_2.0.2.bb | |||
@@ -0,0 +1,26 @@ | |||
1 | # the binaries are statically linked against klibc | ||
2 | require recipes-kernel/kexec/kexec-tools.inc | ||
3 | SRC_URI[md5sum] = "bc401cf3262b25ff7c9a51fc76c8ab91" | ||
4 | SRC_URI[sha256sum] = "549ab65c18a2229b6bf21b6875ca6bbe0e579bca08c3543ce6aaf8287a0b4188" | ||
5 | |||
6 | inherit klibc | ||
7 | |||
8 | FILESPATH =. "${FILE_DIRNAME}/kexec-tools-${PV}:" | ||
9 | |||
10 | SRC_URI += "file://elf.patch \ | ||
11 | file://errno.patch \ | ||
12 | file://string.patch \ | ||
13 | file://syscall.patch \ | ||
14 | file://other.patch \ | ||
15 | " | ||
16 | |||
17 | S = "${WORKDIR}/kexec-tools-${PV}" | ||
18 | |||
19 | EXTRA_OECONF += "--without-zlib" | ||
20 | |||
21 | PACKAGES =+ "kexec-klibc kdump-klibc" | ||
22 | |||
23 | CFLAGS += "-I${STAGING_DIR_HOST}${base_libdir}/klibc/include -I${STAGING_DIR_HOST}${base_libdir}/klibc/include/bits32" | ||
24 | |||
25 | FILES_kexec-klibc = "${sbindir}/kexec" | ||
26 | FILES_kdump-klibc = "${sbindir}/kdump" | ||