diff options
author | Waldemar Brodkorb <mail@waldemar-brodkorb.de> | 2012-10-11 09:59:25 +0200 |
---|---|---|
committer | Waldemar Brodkorb <mail@waldemar-brodkorb.de> | 2012-10-11 09:59:25 +0200 |
commit | ec67efc42516136adee22d15ef1fb64b32637806 (patch) | |
tree | 6a6f7400f49d5e028034ffe1f7e4dbcd7add3a52 /target/linux/patches | |
parent | c2b8e42bf1d6a4e52ad27ba0ff50738227f7b52a (diff) |
forgotten to add the patches for new kernel
Diffstat (limited to 'target/linux/patches')
-rw-r--r-- | target/linux/patches/3.6.1/brcm.patch | 467 | ||||
-rw-r--r-- | target/linux/patches/3.6.1/bsd-compatibility.patch | 2512 | ||||
-rw-r--r-- | target/linux/patches/3.6.1/cris-etrax.patch | 12 | ||||
-rw-r--r-- | target/linux/patches/3.6.1/defaults.patch | 22 | ||||
-rw-r--r-- | target/linux/patches/3.6.1/gemalto.patch | 11 | ||||
-rw-r--r-- | target/linux/patches/3.6.1/lemote-rfkill.patch | 21 | ||||
-rw-r--r-- | target/linux/patches/3.6.1/mmc-host.patch | 36 | ||||
-rw-r--r-- | target/linux/patches/3.6.1/module-alloc-size-check.patch | 21 | ||||
-rw-r--r-- | target/linux/patches/3.6.1/mtd-rootfs.patch | 26 | ||||
-rw-r--r-- | target/linux/patches/3.6.1/non-static.patch | 33 | ||||
-rw-r--r-- | target/linux/patches/3.6.1/startup.patch | 20 | ||||
-rw-r--r-- | target/linux/patches/3.6.1/usb-defaults-off.patch | 20 | ||||
-rw-r--r-- | target/linux/patches/3.6.1/uuid.patch | 263 | ||||
-rw-r--r-- | target/linux/patches/3.6.1/vga-cons-default-off.patch | 12 | ||||
-rw-r--r-- | target/linux/patches/3.6.1/wlan-cf.patch | 11 | ||||
-rw-r--r-- | target/linux/patches/3.6.1/zlib-inflate.patch | 12 |
16 files changed, 3499 insertions, 0 deletions
diff --git a/target/linux/patches/3.6.1/brcm.patch b/target/linux/patches/3.6.1/brcm.patch new file mode 100644 index 000000000..a94b2302d --- /dev/null +++ b/target/linux/patches/3.6.1/brcm.patch @@ -0,0 +1,467 @@ +diff -Nur linux-3.5.orig//arch/mips/bcm47xx/Makefile linux-3.5/arch/mips/bcm47xx/Makefile +--- linux-3.5.orig//arch/mips/bcm47xx/Makefile 2012-07-21 22:58:29.000000000 +0200 ++++ linux-3.5/arch/mips/bcm47xx/Makefile 2012-07-31 11:01:24.000000000 +0200 +@@ -3,5 +3,4 @@ + # under Linux. + # + +-obj-y += gpio.o irq.o nvram.o prom.o serial.o setup.o time.o sprom.o +-obj-$(CONFIG_BCM47XX_SSB) += wgt634u.o ++obj-y += gpio.o irq.o nvram.o prom.o serial.o setup.o time.o sprom.o platform.o +diff -Nur linux-3.5.orig//arch/mips/bcm47xx/platform.c linux-3.5/arch/mips/bcm47xx/platform.c +--- linux-3.5.orig//arch/mips/bcm47xx/platform.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.5/arch/mips/bcm47xx/platform.c 2012-07-31 23:56:35.000000000 +0200 +@@ -0,0 +1,146 @@ ++/* ++ * This file is subject to the terms and conditions of the GNU General Public ++ * License. See the file "COPYING" in the main directory of this archive ++ * for more details. ++ * ++ * Copyright (C) 2010, 2011 Waldemar Brodkorb <wbx@openadk.org> ++ * Copyright © 2007, 2011 Thorsten Glaser <tg@freewrt.org> ++ */ ++ ++#include <linux/platform_device.h> ++#include <linux/module.h> ++#include <linux/mtd/physmap.h> ++#include <linux/ssb/ssb.h> ++ ++#include <asm/mach-bcm47xx/bcm47xx.h> ++#include <asm/mach-bcm47xx/nvram.h> ++ ++#define CFGFS_FLASH_SIZE (128 * 1024) ++ ++static struct mtd_partition bcm47xx_partitions[] = { ++#define SLOT_CFE 0 ++ { ++ .name = "cfe", ++ .offset = 0, ++ .size = BCM47XX_OVERRIDE_CFESIZE, ++ .mask_flags = MTD_WRITEABLE /* force read-only */ ++ }, ++#define SLOT_LINUX 1 ++ { ++ .name = "linux", ++ .offset = 0, ++ .size = 0, ++ }, ++#define SLOT_ROOTFS 2 ++ { ++ .name = "rootfs", ++ .offset = 0, ++ .size = 0, ++ }, ++#define SLOT_CFGFS 3 ++ { ++ .name = "cfgfs", ++ .offset = 0, ++ .size = 0, ++ }, ++#define SLOT_NVRAM 4 ++ { ++ .name = "nvram", ++ .offset = 0, ++ .size = 0, ++ }, ++}; ++ ++static struct physmap_flash_data bcm47xx_flash_data = { ++ .parts = bcm47xx_partitions, ++ .nr_parts = ARRAY_SIZE(bcm47xx_partitions) ++}; ++ ++static struct resource bcm47xx_flash_resource = { ++ .flags = IORESOURCE_MEM, ++}; ++ ++static struct platform_device bcm47xx_flash = { ++ .name = "physmap-flash", ++ .id = 0, ++ .dev = { .platform_data = &bcm47xx_flash_data, }, ++ .resource = &bcm47xx_flash_resource, ++ .num_resources = 1, ++}; ++ ++static struct platform_device *bcm47xx_devices[] __initdata = { ++ &bcm47xx_flash, ++}; ++ ++struct bcm47xx_trx_header { ++#define BCM47XX_TRX_MAGIC 0x30524448 ++ u32 magic; ++ u32 len; ++ u32 crc32; ++ u32 flag_version; ++ u32 offsets[3]; ++}; ++ ++#define UPTODOWN(slot, psize) do { \ ++ posn -= psize; left -= psize; \ ++ bcm47xx_partitions[slot].offset = posn; \ ++ bcm47xx_partitions[slot].size = psize; \ ++} while (/* CONSTCOND */ 0) ++ ++static int __init bcm47xx_register_devices(void) ++{ ++ u32 flash_size; ++ size_t left, posn; ++ struct ssb_mipscore *mcore = &bcm47xx_bus.ssb.mipscore; ++ struct bcm47xx_trx_header *trx_hdr; ++ ++ trx_hdr = (void *)KSEG1ADDR(mcore->flash_window + BCM47XX_OVERRIDE_CFESIZE); ++ ++ /* devices might have 2, 4 or 8 MB flash size */ ++#ifdef BCM47XX_OVERRIDE_FLASHSIZE ++ flash_size = BCM47XX_OVERRIDE_FLASHSIZE; ++ mcore->flash_window_size = flash_size; ++#define BCM47XX_OVERRODE_FLASHSIZE " (overridden)" ++#else ++ flash_size = mcore->flash_window_size; ++#define BCM47XX_OVERRODE_FLASHSIZE "" ++#endif ++ printk(KERN_INFO "FLASH SIZE%s: %x\n", BCM47XX_OVERRODE_FLASHSIZE, ++ flash_size); ++ ++ left = flash_size - BCM47XX_OVERRIDE_CFESIZE; ++ posn = flash_size; ++ UPTODOWN(SLOT_NVRAM, BCM47XX_OVERRIDE_NVRAMSIZE); ++ UPTODOWN(SLOT_CFGFS, CFGFS_FLASH_SIZE); ++ bcm47xx_partitions[SLOT_LINUX].offset = BCM47XX_OVERRIDE_CFESIZE; ++ bcm47xx_partitions[SLOT_LINUX].size = left; ++ ++ if (trx_hdr->magic == BCM47XX_TRX_MAGIC) { ++ bcm47xx_partitions[SLOT_ROOTFS].offset = ++ bcm47xx_partitions[SLOT_LINUX].offset + ++ trx_hdr->offsets[1]; ++ bcm47xx_partitions[SLOT_ROOTFS].size = ++ bcm47xx_partitions[SLOT_LINUX].size - ++ trx_hdr->offsets[1]; ++ } else ++ printk("bcm47xx/platform: no TRX header found\n"); ++ ++ printk(KERN_INFO "=== Flash map dump ===\n"); ++ for (posn = 0; posn < bcm47xx_flash_data.nr_parts; ++posn) ++ printk(KERN_INFO " #%u %08X @%08X '%s'\n", ++ (unsigned int)posn, ++ (unsigned int)bcm47xx_partitions[posn].size, ++ (unsigned int)bcm47xx_partitions[posn].offset, ++ bcm47xx_partitions[posn].name); ++ printk(KERN_INFO "=== Hope this works, have a nice day\n"); ++ ++ bcm47xx_flash_data.width = mcore->flash_buswidth; ++ bcm47xx_flash_resource.start = mcore->flash_window; ++ bcm47xx_flash_resource.end = mcore->flash_window ++ + mcore->flash_window_size ++ - 1; ++ return platform_add_devices(bcm47xx_devices, ++ ARRAY_SIZE(bcm47xx_devices)); ++} ++ ++device_initcall(bcm47xx_register_devices); +Binary files linux-3.5.orig//arch/mips/bcm47xx/.wgt634u.c.swp and linux-3.5/arch/mips/bcm47xx/.wgt634u.c.swp differ +diff -Nur linux-3.5.orig//arch/mips/boot/compressed/decompress.c linux-3.5/arch/mips/boot/compressed/decompress.c +--- linux-3.5.orig//arch/mips/boot/compressed/decompress.c 2012-07-21 22:58:29.000000000 +0200 ++++ linux-3.5/arch/mips/boot/compressed/decompress.c 2012-07-31 11:00:54.000000000 +0200 +@@ -43,7 +43,7 @@ + /* activate the code for pre-boot environment */ + #define STATIC static + +-#ifdef CONFIG_KERNEL_GZIP ++#if defined(CONFIG_KERNEL_GZIP) || defined(CONFIG_KERNEL_XZ) + void *memcpy(void *dest, const void *src, size_t n) + { + int i; +@@ -54,6 +54,8 @@ + d[i] = s[i]; + return dest; + } ++#endif ++#ifdef CONFIG_KERNEL_GZIP + #include "../../../../lib/decompress_inflate.c" + #endif + +@@ -78,6 +80,10 @@ + #include "../../../../lib/decompress_unlzo.c" + #endif + ++#ifdef CONFIG_KERNEL_XZ ++#include "../../../../lib/decompress_unxz.c" ++#endif ++ + void decompress_kernel(unsigned long boot_heap_start) + { + unsigned long zimage_start, zimage_size; +diff -Nur linux-3.5.orig//arch/mips/boot/compressed/Makefile linux-3.5/arch/mips/boot/compressed/Makefile +--- linux-3.5.orig//arch/mips/boot/compressed/Makefile 2012-07-21 22:58:29.000000000 +0200 ++++ linux-3.5/arch/mips/boot/compressed/Makefile 2012-07-31 11:00:54.000000000 +0200 +@@ -44,6 +44,7 @@ + tool_$(CONFIG_KERNEL_BZIP2) = bzip2 + tool_$(CONFIG_KERNEL_LZMA) = lzma + tool_$(CONFIG_KERNEL_LZO) = lzo ++tool_$(CONFIG_KERNEL_XZ) = xzkern + + targets += vmlinux.bin.z + $(obj)/vmlinux.bin.z: $(obj)/vmlinux.bin FORCE +@@ -58,8 +59,13 @@ + # Calculate the load address of the compressed kernel image + hostprogs-y := calc_vmlinuz_load_addr + ++ifdef CONFIG_BCM47XX ++# XXX just after CFE, just pray the address is static ++VMLINUZ_LOAD_ADDRESS = 0xffffffff80900000 ++else + VMLINUZ_LOAD_ADDRESS = $(shell $(obj)/calc_vmlinuz_load_addr \ + $(obj)/vmlinux.bin $(VMLINUX_LOAD_ADDRESS)) ++endif + + vmlinuzobjs-y += $(obj)/piggy.o + +@@ -105,4 +111,12 @@ + vmlinuz.srec: vmlinuz + $(call cmd,objcopy) + +-clean-files := $(objtree)/vmlinuz $(objtree)/vmlinuz.{32,ecoff,bin,srec} ++AFLAGS_selfreloc.o := -DVMLINUZ_LOAD_ADDRESS=$(VMLINUZ_LOAD_ADDRESS) ++CPPFLAGS_selfreloc.lds := $(KBUILD_CFLAGS) ++ ++arch/mips/boot/compressed/selfreloc.o: arch/mips/boot/compressed/selfreloc.S vmlinuz.bin FORCE ++ ++vmlinuz.elf: arch/mips/boot/compressed/selfreloc.o arch/mips/boot/compressed/selfreloc.lds FORCE ++ $(LD) $(LDFLAGS) -T arch/mips/boot/compressed/selfreloc.lds arch/mips/boot/compressed/selfreloc.o -o $@ ++ ++clean-files := $(objtree)/vmlinuz $(objtree)/vmlinuz.{32,ecoff,bin,srec,elf} $(objtree)/arch/mips/boot/compressed/selfreloc.{o,lds} +diff -Nur linux-3.5.orig//arch/mips/boot/compressed/selfreloc.lds.S linux-3.5/arch/mips/boot/compressed/selfreloc.lds.S +--- linux-3.5.orig//arch/mips/boot/compressed/selfreloc.lds.S 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.5/arch/mips/boot/compressed/selfreloc.lds.S 2012-07-31 11:00:54.000000000 +0200 +@@ -0,0 +1,39 @@ ++/*- ++ * written 2010 by Thorsten Glaser <tg@debian.org> based on ++ * arch/mips/kernel/vmlinux.lds and arch/mips/boot/compressed/ld.script ++ */ ++ ++#include <asm/asm-offsets.h> ++#include <asm/page.h> ++#include <asm-generic/vmlinux.lds.h> ++ ++#undef mips ++#define mips mips ++OUTPUT_ARCH(mips) ++ENTRY(selfreloc_start) ++PHDRS { ++ text PT_LOAD FLAGS(7); /* RWX */ ++} ++SECTIONS ++{ ++ . = VMLINUX_LOAD_ADDRESS; ++ .text : { ++ *(.text) ++ *(.text.*) ++ *(.rodata) ++ *(.rodata.*) ++ *(.data) ++ *(.data.*) ++ *(.bss) ++ *(.bss.*) ++ } :text ++ /DISCARD/ : { ++ *(.MIPS.options) ++ *(.options) ++ *(.pdr) ++ *(.reginfo) ++ *(.comment) ++ *(.note) ++ *(.gnu.attributes) ++ } ++} +diff -Nur linux-3.5.orig//arch/mips/boot/compressed/selfreloc.S linux-3.5/arch/mips/boot/compressed/selfreloc.S +--- linux-3.5.orig//arch/mips/boot/compressed/selfreloc.S 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.5/arch/mips/boot/compressed/selfreloc.S 2012-07-31 11:00:54.000000000 +0200 +@@ -0,0 +1,54 @@ ++/*- ++ * written 2011 by Thorsten Glaser <tg@freewrt.org> based on ++ * arch/mips/boot/compressed/head.S ++ */ ++ ++#include <asm/asm.h> ++#include <asm/regdef.h> ++ ++ .set noreorder ++ .cprestore ++ ++ .text ++ LEAF(selfreloc_start) ++selfreloc_start: ++ /* Save boot rom start args */ ++ move s0, a0 ++ move s1, a1 ++ move s2, a2 ++ move s3, a3 ++ ++ /* Copy code to the correct place */ ++ PTR_LI a0, VMLINUZ_LOAD_ADDRESS ++ PTR_LA a1, imgbeg ++ PTR_LA a2, imgend ++1: lw t0, 0(a1) ++ sw t0, 0(a0) ++ add a1, 4 ++ add a0, 4 ++ blt a1, a2, 1b ++ nop ++ ++ /* Restore boot rom start args */ ++ move a0, s0 ++ move a1, s1 ++ move a2, s2 ++ move a3, s3 ++ ++ /* Jump to the code at its new location */ ++ PTR_LI k0, VMLINUZ_LOAD_ADDRESS ++ jr k0 ++ nop ++ ++ /* Just in case we come back… */ ++3: ++ b 3b ++ nop ++ END(selfreloc_start) ++ ++ .globl imgbeg ++ .p2align 2 ++imgbeg: .incbin "vmlinuz.bin" ++ .globl imgend ++ .p2align 2 ++imgend: +diff -Nur linux-3.5.orig//arch/mips/boot/compressed/uart-16550.c linux-3.5/arch/mips/boot/compressed/uart-16550.c +--- linux-3.5.orig//arch/mips/boot/compressed/uart-16550.c 2012-07-21 22:58:29.000000000 +0200 ++++ linux-3.5/arch/mips/boot/compressed/uart-16550.c 2012-07-31 11:00:54.000000000 +0200 +@@ -18,6 +18,11 @@ + #define PORT(offset) (CKSEG1ADDR(AR7_REGS_UART0) + (4 * offset)) + #endif + ++#ifdef CONFIG_BCM47XX ++#define UART_BASE 0x18000300 ++#define PORT(offset) (CKSEG1ADDR(UART_BASE) + (offset)) ++#endif ++ + #ifndef PORT + #error please define the serial port address for your own machine + #endif +diff -Nur linux-3.5.orig//arch/mips/Kconfig linux-3.5/arch/mips/Kconfig +--- linux-3.5.orig//arch/mips/Kconfig 2012-07-21 22:58:29.000000000 +0200 ++++ linux-3.5/arch/mips/Kconfig 2012-07-31 11:00:54.000000000 +0200 +@@ -107,6 +107,12 @@ + select GENERIC_GPIO + select SYS_HAS_EARLY_PRINTK + select CFE ++ select SYS_SUPPORTS_ZBOOT_UART16550 ++ select HAVE_KERNEL_GZIP ++ select HAVE_KERNEL_BZIP2 ++ select HAVE_KERNEL_LZMA ++ select HAVE_KERNEL_XZ ++ select HAVE_KERNEL_LZO + help + Support for BCM47XX based boards + +diff -Nur linux-3.5.orig//arch/mips/Makefile linux-3.5/arch/mips/Makefile +--- linux-3.5.orig//arch/mips/Makefile 2012-07-21 22:58:29.000000000 +0200 ++++ linux-3.5/arch/mips/Makefile 2012-07-31 11:00:54.000000000 +0200 +@@ -76,6 +76,7 @@ + all-$(CONFIG_BOOT_ELF32) := $(vmlinux-32) + all-$(CONFIG_BOOT_ELF64) := $(vmlinux-64) + all-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlinuz ++all-$(CONFIG_BCM47XX) += vmlinuz.elf + + # + # GCC uses -G 0 -mabicalls -fpic as default. We don't want PIC in the kernel +@@ -277,7 +278,7 @@ + $(Q)$(MAKE) $(build)=arch/mips/boot VMLINUX=$(vmlinux-32) arch/mips/boot/$@ + + # boot/compressed +-vmlinuz vmlinuz.bin vmlinuz.ecoff vmlinuz.srec: $(vmlinux-32) FORCE ++vmlinuz vmlinuz.bin vmlinuz.ecoff vmlinuz.srec vmlinuz.elf: $(vmlinux-32) FORCE + $(Q)$(MAKE) $(build)=arch/mips/boot/compressed \ + VMLINUX_LOAD_ADDRESS=$(load-y) 32bit-bfd=$(32bit-bfd) $@ + +@@ -316,6 +317,7 @@ + echo ' vmlinuz.ecoff - ECOFF zboot image' + echo ' vmlinuz.bin - Raw binary zboot image' + echo ' vmlinuz.srec - SREC zboot image' ++ echo ' vmlinuz.elf - ELF self-relocating zboot image' + echo + echo ' These will be default as appropriate for a configured platform.' + endef +diff -Nur linux-3.5.orig//drivers/ssb/driver_mipscore.c linux-3.5/drivers/ssb/driver_mipscore.c +--- linux-3.5.orig//drivers/ssb/driver_mipscore.c 2012-07-21 22:58:29.000000000 +0200 ++++ linux-3.5/drivers/ssb/driver_mipscore.c 2012-07-31 11:00:54.000000000 +0200 +@@ -190,10 +190,11 @@ + { + struct ssb_bus *bus = mcore->dev->bus; + ++ printk("Check for vendor with value: %d", bus->chipco.dev->id.vendor); + mcore->flash_buswidth = 2; + if (bus->chipco.dev) { + mcore->flash_window = 0x1c000000; +- mcore->flash_window_size = 0x02000000; ++ mcore->flash_window_size = 0x00800000; + if ((ssb_read32(bus->chipco.dev, SSB_CHIPCO_FLASH_CFG) + & SSB_CHIPCO_CFG_DS16) == 0) + mcore->flash_buswidth = 1; +diff -Nur linux-3.5.orig//init/Kconfig linux-3.5/init/Kconfig +--- linux-3.5.orig//init/Kconfig 2012-07-21 22:58:29.000000000 +0200 ++++ linux-3.5/init/Kconfig 2012-07-31 11:00:54.000000000 +0200 +@@ -158,6 +158,7 @@ + config KERNEL_GZIP + bool "Gzip" + depends on HAVE_KERNEL_GZIP ++ select DECOMPRESS_GZIP + help + The old and tried gzip compression. It provides a good balance + between compression ratio and decompression speed. +@@ -165,6 +166,7 @@ + config KERNEL_BZIP2 + bool "Bzip2" + depends on HAVE_KERNEL_BZIP2 ++ select DECOMPRESS_BZIP2 + help + Its compression ratio and speed is intermediate. + Decompression speed is slowest among the choices. The kernel +@@ -175,6 +177,7 @@ + config KERNEL_LZMA + bool "LZMA" + depends on HAVE_KERNEL_LZMA ++ select DECOMPRESS_LZMA + help + This compression algorithm's ratio is best. Decompression speed + is between gzip and bzip2. Compression is slowest. +@@ -183,6 +186,7 @@ + config KERNEL_XZ + bool "XZ" + depends on HAVE_KERNEL_XZ ++ select DECOMPRESS_XZ + help + XZ uses the LZMA2 algorithm and instruction set specific + BCJ filters which can improve compression ratio of executable +@@ -198,6 +202,7 @@ + config KERNEL_LZO + bool "LZO" + depends on HAVE_KERNEL_LZO ++ select DECOMPRESS_LZO + help + Its compression ratio is the poorest among the choices. The kernel + size is about 10% bigger than gzip; however its speed +diff -Nur linux-3.5.orig//lib/xz/xz_stream.h linux-3.5/lib/xz/xz_stream.h +--- linux-3.5.orig//lib/xz/xz_stream.h 2012-07-21 22:58:29.000000000 +0200 ++++ linux-3.5/lib/xz/xz_stream.h 2012-07-31 11:00:54.000000000 +0200 +@@ -40,7 +40,12 @@ + * compressed size of the file to less than 256 MiB and may also weaken + * error detection slightly. + */ ++ ++#ifdef __mips__ ++typedef uint32_t vli_type; ++#else + typedef uint64_t vli_type; ++#endif + + #define VLI_MAX ((vli_type)-1 / 2) + #define VLI_UNKNOWN ((vli_type)-1) diff --git a/target/linux/patches/3.6.1/bsd-compatibility.patch b/target/linux/patches/3.6.1/bsd-compatibility.patch new file mode 100644 index 000000000..9e91a62de --- /dev/null +++ b/target/linux/patches/3.6.1/bsd-compatibility.patch @@ -0,0 +1,2512 @@ +diff -Nur linux-2.6.36.orig/scripts/Makefile.lib linux-2.6.36/scripts/Makefile.lib +--- linux-2.6.36.orig/scripts/Makefile.lib 2010-10-20 22:30:22.000000000 +0200 ++++ linux-2.6.36/scripts/Makefile.lib 2010-11-28 18:34:22.000000000 +0100 +@@ -216,7 +216,12 @@ + size_append = printf $(shell \ + dec_size=0; \ + for F in $1; do \ +- fsize=$$(stat -c "%s" $$F); \ ++ if stat -qs .>/dev/null 2>&1; then \ ++ statcmd='stat -f %z'; \ ++ else \ ++ statcmd='stat -c %s'; \ ++ fi; \ ++ fsize=$$($$statcmd $$F); \ + dec_size=$$(expr $$dec_size + $$fsize); \ + done; \ + printf "%08x\n" $$dec_size | \ +diff -Nur linux-2.6.36.orig/scripts/mod/mk_elfconfig.c linux-2.6.36/scripts/mod/mk_elfconfig.c +--- linux-2.6.36.orig/scripts/mod/mk_elfconfig.c 2010-10-20 22:30:22.000000000 +0200 ++++ linux-2.6.36/scripts/mod/mk_elfconfig.c 2010-11-28 18:33:24.000000000 +0100 +@@ -1,7 +1,18 @@ + #include <stdio.h> + #include <stdlib.h> + #include <string.h> +-#include <elf.h> ++ ++#define EI_NIDENT (16) ++#define ELFMAG "\177ELF" ++ ++#define SELFMAG 4 ++#define EI_CLASS 4 ++#define ELFCLASS32 1 /* 32-bit objects */ ++#define ELFCLASS64 2 /* 64-bit objects */ ++ ++#define EI_DATA 5 /* Data encoding byte index */ ++#define ELFDATA2LSB 1 /* 2's complement, little endian */ ++#define ELFDATA2MSB 2 /* 2's complement, big endian */ + + int + main(int argc, char **argv) +diff -Nur linux-2.6.36.orig/scripts/mod/modpost.h linux-2.6.36/scripts/mod/modpost.h +--- linux-2.6.36.orig/scripts/mod/modpost.h 2010-10-20 22:30:22.000000000 +0200 ++++ linux-2.6.36/scripts/mod/modpost.h 2010-11-28 18:33:24.000000000 +0100 +@@ -7,7 +7,2453 @@ + #include <sys/mman.h> + #include <fcntl.h> + #include <unistd.h> +-#include <elf.h> ++ ++ ++/* This file defines standard ELF types, structures, and macros. ++ Copyright (C) 1995-1999,2000,2001,2002,2003 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _ELF_H ++#define _ELF_H 1 ++ ++__BEGIN_DECLS ++ ++/* Standard ELF types. */ ++ ++#include <stdint.h> ++ ++/* Type for a 16-bit quantity. */ ++typedef uint16_t Elf32_Half; ++typedef uint16_t Elf64_Half; ++ ++/* Types for signed and unsigned 32-bit quantities. */ ++typedef uint32_t Elf32_Word; ++typedef int32_t Elf32_Sword; ++typedef uint32_t Elf64_Word; ++typedef int32_t Elf64_Sword; ++ ++/* Types for signed and unsigned 64-bit quantities. */ ++typedef uint64_t Elf32_Xword; ++typedef int64_t Elf32_Sxword; ++typedef uint64_t Elf64_Xword; ++typedef int64_t Elf64_Sxword; ++ ++/* Type of addresses. */ ++typedef uint32_t Elf32_Addr; ++typedef uint64_t Elf64_Addr; ++ ++/* Type of file offsets. */ ++typedef uint32_t Elf32_Off; ++typedef uint64_t Elf64_Off; ++ ++/* Type for section indices, which are 16-bit quantities. */ ++typedef uint16_t Elf32_Section; ++typedef uint16_t Elf64_Section; ++ ++/* Type for version symbol information. */ ++typedef Elf32_Half Elf32_Versym; ++typedef Elf64_Half Elf64_Versym; ++ ++ ++/* The ELF file header. This appears at the start of every ELF file. */ ++ ++#define EI_NIDENT (16) ++ ++typedef struct ++{ ++ unsigned char e_ident[EI_NIDENT]; /* Magic number and other info */ ++ Elf32_Half e_type; /* Object file type */ ++ Elf32_Half e_machine; /* Architecture */ ++ Elf32_Word e_version; /* Object file version */ ++ Elf32_Addr e_entry; /* Entry point virtual address */ ++ Elf32_Off e_phoff; /* Program header table file offset */ ++ Elf32_Off e_shoff; /* Section header table file offset */ ++ Elf32_Word e_flags; /* Processor-specific flags */ ++ Elf32_Half e_ehsize; /* ELF header size in bytes */ ++ Elf32_Half e_phentsize; /* Program header table entry size */ ++ Elf32_Half e_phnum; /* Program header table entry count */ ++ Elf32_Half e_shentsize; /* Section header table entry size */ ++ Elf32_Half e_shnum; /* Section header table entry count */ ++ Elf32_Half e_shstrndx; /* Section header string table index */ ++} Elf32_Ehdr; ++ ++typedef struct ++{ ++ unsigned char e_ident[EI_NIDENT]; /* Magic number and other info */ ++ Elf64_Half e_type; /* Object file type */ ++ Elf64_Half e_machine; /* Architecture */ ++ Elf64_Word e_version; /* Object file version */ ++ Elf64_Addr e_entry; /* Entry point virtual address */ ++ Elf64_Off e_phoff; /* Program header table file offset */ ++ Elf64_Off e_shoff; /* Section header table file offset */ ++ Elf64_Word e_flags; /* Processor-specific flags */ ++ Elf64_Half e_ehsize; /* ELF header size in bytes */ ++ Elf64_Half e_phentsize; /* Program header table entry size */ ++ Elf64_Half e_phnum; /* Program header table entry count */ ++ Elf64_Half e_shentsize; /* Section header table entry size */ ++ Elf64_Half e_shnum; /* Section header table entry count */ ++ Elf64_Half e_shstrndx; /* Section header string table index */ ++} Elf64_Ehdr; ++ ++/* Fields in the e_ident array. The EI_* macros are indices into the ++ array. The macros under each EI_* macro are the values the byte ++ may have. */ ++ ++#define EI_MAG0 0 /* File identification byte 0 index */ ++#define ELFMAG0 0x7f /* Magic number byte 0 */ ++ ++#define EI_MAG1 1 /* File identification byte 1 index */ ++#define ELFMAG1 'E' /* Magic number byte 1 */ ++ ++#define EI_MAG2 2 /* File identification byte 2 index */ ++#define ELFMAG2 'L' /* Magic number byte 2 */ ++ ++#define EI_MAG3 3 /* File identification byte 3 index */ ++#define ELFMAG3 'F' /* Magic number byte 3 */ ++ ++/* Conglomeration of the identification bytes, for easy testing as a word. */ ++#define ELFMAG "\177ELF" ++#define SELFMAG 4 ++ ++#define EI_CLASS 4 /* File class byte index */ ++#define ELFCLASSNONE 0 /* Invalid class */ ++#define ELFCLASS32 1 /* 32-bit objects */ ++#define ELFCLASS64 2 /* 64-bit objects */ ++#define ELFCLASSNUM 3 ++ ++#define EI_DATA 5 /* Data encoding byte index */ ++#define ELFDATANONE 0 /* Invalid data encoding */ ++#define ELFDATA2LSB 1 /* 2's complement, little endian */ ++#define ELFDATA2MSB 2 /* 2's complement, big endian */ ++#define ELFDATANUM 3 ++ ++#define EI_VERSION 6 /* File version byte index */ ++ /* Value must be EV_CURRENT */ ++ ++#define EI_OSABI 7 /* OS ABI identification */ ++#define ELFOSABI_NONE 0 /* UNIX System V ABI */ ++#define ELFOSABI_SYSV 0 /* Alias. */ ++#define ELFOSABI_HPUX 1 /* HP-UX */ ++#define ELFOSABI_NETBSD 2 /* NetBSD. */ ++#define ELFOSABI_LINUX 3 /* Linux. */ ++#define ELFOSABI_SOLARIS 6 /* Sun Solaris. */ ++#define ELFOSABI_AIX 7 /* IBM AIX. */ ++#define ELFOSABI_IRIX 8 /* SGI Irix. */ ++#define ELFOSABI_FREEBSD 9 /* FreeBSD. */ ++#define ELFOSABI_TRU64 10 /* Compaq TRU64 UNIX. */ ++#define ELFOSABI_MODESTO 11 /* Novell Modesto. */ ++#define ELFOSABI_OPENBSD 12 /* OpenBSD. */ ++#define ELFOSABI_ARM 97 /* ARM */ ++#define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */ ++ ++#define EI_ABIVERSION 8 /* ABI version */ ++ ++#define EI_PAD 9 /* Byte index of padding bytes */ ++ ++/* Legal values for e_type (object file type). */ ++ ++#define ET_NONE 0 /* No file type */ ++#define ET_REL 1 /* Relocatable file */ ++#define ET_EXEC 2 /* Executable file */ ++#define ET_DYN 3 /* Shared object file */ ++#define ET_CORE 4 /* Core file */ ++#define ET_NUM 5 /* Number of defined types */ ++#define ET_LOOS 0xfe00 /* OS-specific range start */ ++#define ET_HIOS 0xfeff /* OS-specific range end */ ++#define ET_LOPROC 0xff00 /* Processor-specific range start */ ++#define ET_HIPROC 0xffff /* Processor-specific range end */ ++ ++/* Legal values for e_machine (architecture). */ ++ ++#define EM_NONE 0 /* No machine */ ++#define EM_M32 1 /* AT&T WE 32100 */ ++#define EM_SPARC 2 /* SUN SPARC */ ++#define EM_386 3 /* Intel 80386 */ ++#define EM_68K 4 /* Motorola m68k family */ ++#define EM_88K 5 /* Motorola m88k family */ ++#define EM_860 7 /* Intel 80860 */ ++#define EM_MIPS 8 /* MIPS R3000 big-endian */ ++#define EM_S370 9 /* IBM System/370 */ ++#define EM_MIPS_RS3_LE 10 /* MIPS R3000 little-endian */ ++ ++#define EM_PARISC 15 /* HPPA */ ++#define EM_VPP500 17 /* Fujitsu VPP500 */ ++#define EM_SPARC32PLUS 18 /* Sun's "v8plus" */ ++#define EM_960 19 /* Intel 80960 */ ++#define EM_PPC 20 /* PowerPC */ ++#define EM_PPC64 21 /* PowerPC 64-bit */ ++#define EM_S390 22 /* IBM S390 */ ++ ++#define EM_V800 36 /* NEC V800 series */ ++#define EM_FR20 37 /* Fujitsu FR20 */ ++#define EM_RH32 38 /* TRW RH-32 */ ++#define EM_RCE 39 /* Motorola RCE */ ++#define EM_ARM 40 /* ARM */ ++#define EM_FAKE_ALPHA 41 /* Digital Alpha */ ++#define EM_SH 42 /* Hitachi SH */ ++#define EM_SPARCV9 43 /* SPARC v9 64-bit */ ++#define EM_TRICORE 44 /* Siemens Tricore */ ++#define EM_ARC 45 /* Argonaut RISC Core */ ++#define EM_H8_300 46 /* Hitachi H8/300 */ ++#define EM_H8_300H 47 /* Hitachi H8/300H */ ++#define EM_H8S 48 /* Hitachi H8S */ ++#define EM_H8_500 49 /* Hitachi H8/500 */ ++#define EM_IA_64 50 /* Intel Merced */ ++#define EM_MIPS_X 51 /* Stanford MIPS-X */ ++#define EM_COLDFIRE 52 /* Motorola Coldfire */ ++#define EM_68HC12 53 /* Motorola M68HC12 */ ++#define EM_MMA 54 /* Fujitsu MMA Multimedia Accelerator*/ ++#define EM_PCP 55 /* Siemens PCP */ ++#define EM_NCPU 56 /* Sony nCPU embeeded RISC */ ++#define EM_NDR1 57 /* Denso NDR1 microprocessor */ ++#define EM_STARCORE 58 /* Motorola Start*Core processor */ ++#define EM_ME16 59 /* Toyota ME16 processor */ ++#define EM_ST100 60 /* STMicroelectronic ST100 processor */ ++#define EM_TINYJ 61 /* Advanced Logic Corp. Tinyj emb.fam*/ ++#define EM_X86_64 62 /* AMD x86-64 architecture */ ++#define EM_PDSP 63 /* Sony DSP Processor */ ++ ++#define EM_FX66 66 /* Siemens FX66 microcontroller */ ++#define EM_ST9PLUS 67 /* STMicroelectronics ST9+ 8/16 mc */ ++#define EM_ST7 68 /* STmicroelectronics ST7 8 bit mc */ ++#define EM_68HC16 69 /* Motorola MC68HC16 microcontroller */ ++#define EM_68HC11 70 /* Motorola MC68HC11 microcontroller */ ++#define EM_68HC08 71 /* Motorola MC68HC08 microcontroller */ ++#define EM_68HC05 72 /* Motorola MC68HC05 microcontroller */ ++#define EM_SVX 73 /* Silicon Graphics SVx */ ++#define EM_ST19 74 /* STMicroelectronics ST19 8 bit mc */ ++#define EM_VAX 75 /* Digital VAX */ ++#define EM_CRIS 76 /* Axis Communications 32-bit embedded processor */ ++#define EM_JAVELIN 77 /* Infineon Technologies 32-bit embedded processor */ ++#define EM_FIREPATH 78 /* Element 14 64-bit DSP Processor */ ++#define EM_ZSP 79 /* LSI Logic 16-bit DSP Processor */ ++#define EM_MMIX 80 /* Donald Knuth's educational 64-bit processor */ ++#define EM_HUANY 81 /* Harvard University machine-independent object files */ ++#define EM_PRISM 82 /* SiTera Prism */ ++#define EM_AVR 83 /* Atmel AVR 8-bit microcontroller */ ++#define EM_FR30 84 /* Fujitsu FR30 */ ++#define EM_D10V 85 /* Mitsubishi D10V */ ++#define EM_D30V 86 /* Mitsubishi D30V */ ++#define EM_V850 87 /* NEC v850 */ ++#define EM_M32R 88 /* Mitsubishi M32R */ ++#define EM_MN10300 89 /* Matsushita MN10300 */ ++#define EM_MN10200 90 /* Matsushita MN10200 */ ++#define EM_PJ 91 /* picoJava */ ++#define EM_OPENRISC 92 /* OpenRISC 32-bit embedded processor */ ++#define EM_ARC_A5 93 /* ARC Cores Tangent-A5 */ ++#define EM_XTENSA 94 /* Tensilica Xtensa Architecture */ ++#define EM_NUM 95 ++ ++/* If it is necessary to assign new unofficial EM_* values, please ++ pick large random numbers (0x8523, 0xa7f2, etc.) to minimize the ++ chances of collision with official or non-GNU unofficial values. */ ++ ++#define EM_ALPHA 0x9026 ++ ++/* Legal values for e_version (version). */ ++ ++#define EV_NONE 0 /* Invalid ELF version */ ++#define EV_CURRENT 1 /* Current version */ ++#define EV_NUM 2 ++ ++/* Section header. */ ++ ++typedef struct ++{ ++ Elf32_Word sh_name; /* Section name (string tbl index) */ ++ Elf32_Word sh_type; /* Section type */ ++ Elf32_Word sh_flags; /* Section flags */ ++ Elf32_Addr sh_addr; /* Section virtual addr at execution */ ++ Elf32_Off sh_offset; /* Section file offset */ ++ Elf32_Word sh_size; /* Section size in bytes */ ++ Elf32_Word sh_link; /* Link to another section */ ++ Elf32_Word sh_info; /* Additional section information */ ++ Elf32_Word sh_addralign; /* Section alignment */ ++ Elf32_Word sh_entsize; /* Entry size if section holds table */ ++} Elf32_Shdr; ++ ++typedef struct ++{ ++ Elf64_Word sh_name; /* Section name (string tbl index) */ ++ Elf64_Word sh_type; /* Section type */ ++ Elf64_Xword sh_flags; /* Section flags */ ++ Elf64_Addr sh_addr; /* Section virtual addr at execution */ ++ Elf64_Off sh_offset; /* Section file offset */ ++ Elf64_Xword sh_size; /* Section size in bytes */ ++ Elf64_Word sh_link; /* Link to another section */ ++ Elf64_Word sh_info; /* Additional section information */ ++ Elf64_Xword sh_addralign; /* Section alignment */ ++ Elf64_Xword sh_entsize; /* Entry size if section holds table */ ++} Elf64_Shdr; ++ ++/* Special section indices. */ ++ ++#define SHN_UNDEF 0 /* Undefined section */ ++#define SHN_LORESERVE 0xff00 /* Start of reserved indices */ ++#define SHN_LOPROC 0xff00 /* Start of processor-specific */ ++#define SHN_HIPROC 0xff1f /* End of processor-specific */ ++#define SHN_LOOS 0xff20 /* Start of OS-specific */ ++#define SHN_HIOS 0xff3f /* End of OS-specific */ ++#define SHN_ABS 0xfff1 /* Associated symbol is absolute */ ++#define SHN_COMMON 0xfff2 /* Associated symbol is common */ ++#define SHN_XINDEX 0xffff /* Index is in extra table. */ ++#define SHN_HIRESERVE 0xffff /* End of reserved indices */ ++ ++/* Legal values for sh_type (section type). */ ++ ++#define SHT_NULL 0 /* Section header table entry unused */ ++#define SHT_PROGBITS 1 /* Program data */ ++#define SHT_SYMTAB 2 /* Symbol table */ ++#define SHT_STRTAB 3 /* String table */ ++#define SHT_RELA 4 /* Relocation entries with addends */ ++#define SHT_HASH 5 /* Symbol hash table */ ++#define SHT_DYNAMIC 6 /* Dynamic linking information */ ++#define SHT_NOTE 7 /* Notes */ ++#define SHT_NOBITS 8 /* Program space with no data (bss) */ ++#define SHT_REL 9 /* Relocation entries, no addends */ ++#define SHT_SHLIB 10 /* Reserved */ ++#define SHT_DYNSYM 11 /* Dynamic linker symbol table */ ++#define SHT_INIT_ARRAY 14 /* Array of constructors */ ++#define SHT_FINI_ARRAY 15 /* Array of destructors */ ++#define SHT_PREINIT_ARRAY 16 /* Array of pre-constructors */ ++#define SHT_GROUP 17 /* Section group */ ++#define SHT_SYMTAB_SHNDX 18 /* Extended section indeces */ ++#define SHT_NUM 19 /* Number of defined types. */ ++#define SHT_LOOS 0x60000000 /* Start OS-specific */ ++#define SHT_GNU_LIBLIST 0x6ffffff7 /* Prelink library list */ ++#define SHT_CHECKSUM 0x6ffffff8 /* Checksum for DSO content. */ ++#define SHT_LOSUNW 0x6ffffffa /* Sun-specific low bound. */ ++#define SHT_SUNW_move 0x6ffffffa ++#define SHT_SUNW_COMDAT 0x6ffffffb ++#define SHT_SUNW_syminfo 0x6ffffffc ++#define SHT_GNU_verdef 0x6ffffffd /* Version definition section. */ ++#define SHT_GNU_verneed 0x6ffffffe /* Version needs section. */ ++#define SHT_GNU_versym 0x6fffffff /* Version symbol table. */ ++#define SHT_HISUNW 0x6fffffff /* Sun-specific high bound. */ ++#define SHT_HIOS 0x6fffffff /* End OS-specific type */ ++#define SHT_LOPROC 0x70000000 /* Start of processor-specific */ ++#define SHT_HIPROC 0x7fffffff /* End of processor-specific */ ++#define SHT_LOUSER 0x80000000 /* Start of application-specific */ ++#define SHT_HIUSER 0x8fffffff /* End of application-specific */ ++ ++/* Legal values for sh_flags (section flags). */ ++ ++#define SHF_WRITE (1 << 0) /* Writable */ ++#define SHF_ALLOC (1 << 1) /* Occupies memory during execution */ ++#d |