From b2c5b9109efa14a02f0581092cb39fac20b58e67 Mon Sep 17 00:00:00 2001 From: Peter Korsgaard Date: Mon, 12 Jan 2009 20:16:16 +0000 Subject: [PATCH] toolchain: fix cris build with 2.6.28 kernel headers Patch by Hinko Kocevar --- target/linux/Makefile.in | 4 ++ .../kernel-headers-new.makefile | 5 +++ .../linux-2.6.28-cris-headers.patch | 28 ++++++++++++ .../linux-2.6.28-cris-objcopy-flags.patch | 45 +++++++++++++++++++ 4 files changed, 82 insertions(+) create mode 100644 toolchain/kernel-headers/linux-2.6.28-cris-headers.patch create mode 100644 toolchain/kernel-headers/linux-2.6.28-cris-objcopy-flags.patch diff --git a/target/linux/Makefile.in b/target/linux/Makefile.in index e6ec351d2e..625a2e2444 100644 --- a/target/linux/Makefile.in +++ b/target/linux/Makefile.in @@ -59,9 +59,13 @@ ifndef LINUX26_BINLOC ifeq ($(LINUX26_FORMAT),vmlinux) LINUX26_BINLOC=$(LINUX26_FORMAT) else +ifeq ($(BR2_ARCH),"cris") +LINUX26_BINLOC=arch/$(KERNEL_ARCH)/arch-v10/boot/$(LINUX26_FORMAT) +else LINUX26_BINLOC=arch/$(KERNEL_ARCH)/boot/$(LINUX26_FORMAT) endif endif +endif # File name for the Linux kernel binary ifndef LINUX26_KERNEL diff --git a/toolchain/kernel-headers/kernel-headers-new.makefile b/toolchain/kernel-headers/kernel-headers-new.makefile index dce9ee8a5c..42c943d878 100644 --- a/toolchain/kernel-headers/kernel-headers-new.makefile +++ b/toolchain/kernel-headers/kernel-headers-new.makefile @@ -86,6 +86,11 @@ $(LINUX_HEADERS_DIR)/.configured: $(LINUX_HEADERS_UNPACK_DIR)/.patched HOSTCXX="$(HOSTCXX)" \ INSTALL_HDR_PATH=$(LINUX_HEADERS_DIR) headers_install; \ ) +ifeq ($(BR2_ARCH),"cris") + ln -s $(LINUX_HEADERS_DIR)/include/arch-v10/arch $(LINUX_HEADERS_DIR)/include/arch + cp -a $(LINUX_HEADERS_UNPACK_DIR)/include/linux/user.h $(LINUX_HEADERS_DIR)/include/linux + $(SED) "/^#include /d" $(LINUX_HEADERS_DIR)/include/asm/user.h +endif touch $@ endif diff --git a/toolchain/kernel-headers/linux-2.6.28-cris-headers.patch b/toolchain/kernel-headers/linux-2.6.28-cris-headers.patch new file mode 100644 index 0000000000..ff2fa49c5c --- /dev/null +++ b/toolchain/kernel-headers/linux-2.6.28-cris-headers.patch @@ -0,0 +1,28 @@ +diff -urN linux-2.6.28/arch/cris/include/arch-v10/arch/Kbuild linux-2.6.28.my/arch/cris/include/arch-v10/arch/Kbuild +--- linux-2.6.28/arch/cris/include/arch-v10/arch/Kbuild 2008-12-25 00:26:37.000000000 +0100 ++++ linux-2.6.28.my/arch/cris/include/arch-v10/arch/Kbuild 2009-01-12 12:59:06.000000000 +0100 +@@ -1,3 +1,5 @@ ++header-y += elf.h ++header-y += ptrace.h + header-y += user.h + header-y += svinto.h + header-y += sv_addr_ag.h +diff -urN linux-2.6.28/arch/cris/include/asm/Kbuild linux-2.6.28.my/arch/cris/include/asm/Kbuild +--- linux-2.6.28/arch/cris/include/asm/Kbuild 2008-12-25 00:26:37.000000000 +0100 ++++ linux-2.6.28.my/arch/cris/include/asm/Kbuild 2009-01-12 13:14:40.000000000 +0100 +@@ -1,11 +1,13 @@ + include include/asm-generic/Kbuild.asm + +-header-y += arch-v10/ +-header-y += arch-v32/ ++header-y += ../arch-v10/arch/ ++header-y += ../arch-v32/arch/ + ++header-y += elf.h + header-y += ethernet.h + header-y += rtc.h + header-y += sync_serial.h ++header-y += user.h + + unifdef-y += etraxgpio.h + unifdef-y += rs485.h diff --git a/toolchain/kernel-headers/linux-2.6.28-cris-objcopy-flags.patch b/toolchain/kernel-headers/linux-2.6.28-cris-objcopy-flags.patch new file mode 100644 index 0000000000..32da2f0873 --- /dev/null +++ b/toolchain/kernel-headers/linux-2.6.28-cris-objcopy-flags.patch @@ -0,0 +1,45 @@ +--- linux-2.6.28/arch/cris/Makefile 2008-12-25 00:26:37.000000000 +0100 ++++ linux-2.6.28.my/arch/cris/Makefile 2009-01-12 13:21:44.000000000 +0100 +@@ -40,7 +40,7 @@ + + LD = $(CROSS_COMPILE)ld -mcrislinux + +-OBJCOPYFLAGS := -O binary -R .note -R .comment -S ++OBJCOPYFLAGS := -O binary -R .note -R .note.gnu.build-id -R .comment + + CPPFLAGS_vmlinux.lds = -DDRAM_VIRTUAL_BASE=0x$(CONFIG_ETRAX_DRAM_VIRTUAL_BASE) + +diff -urN linux-2.6.28/arch/cris/arch-v10/boot/Makefile linux-2.6.28.my/arch/cris/arch-v10/boot/Makefile +--- linux-2.6.28/arch/cris/arch-v10/boot/Makefile 2008-12-25 00:26:37.000000000 +0100 ++++ linux-2.6.28.my/arch/cris/arch-v10/boot/Makefile 2009-01-12 13:28:25.000000000 +0100 +@@ -2,8 +2,6 @@ + # arch/cris/arch-v10/boot/Makefile + # + +-OBJCOPYFLAGS = -O binary --remove-section=.bss +- + subdir- := compressed rescue + targets := Image + +diff -urN linux-2.6.28/arch/cris/arch-v10/boot/compressed/Makefile linux-2.6.28.my/arch/cris/arch-v10/boot/compressed/Makefile +--- linux-2.6.28/arch/cris/arch-v10/boot/compressed/Makefile 2008-12-25 00:26:37.000000000 +0100 ++++ linux-2.6.28.my/arch/cris/arch-v10/boot/compressed/Makefile 2009-01-12 13:28:33.000000000 +0100 +@@ -6,7 +6,6 @@ + ccflags-y += -O2 $(LINUXINCLUDE) + ldflags-y += -T $(srctree)/$(src)/decompress.lds + OBJECTS = $(obj)/head.o $(obj)/misc.o +-OBJCOPYFLAGS = -O binary --remove-section=.bss + + quiet_cmd_image = BUILD $@ + cmd_image = cat $(obj)/decompress.bin $(obj)/piggy.gz > $@ +diff -urN linux-2.6.28/arch/cris/arch-v10/boot/rescue/Makefile linux-2.6.28.my/arch/cris/arch-v10/boot/rescue/Makefile +--- linux-2.6.28/arch/cris/arch-v10/boot/rescue/Makefile 2008-12-25 00:26:37.000000000 +0100 ++++ linux-2.6.28.my/arch/cris/arch-v10/boot/rescue/Makefile 2009-01-12 13:28:40.000000000 +0100 +@@ -5,7 +5,6 @@ + ccflags-y += -O2 $(LINUXINCLUDE) + asflags-y += $(LINUXINCLUDE) + ldflags-y += -T $(srctree)/$(src)/rescue.lds +-OBJCOPYFLAGS = -O binary --remove-section=.bss + obj-$(CONFIG_ETRAX_AXISFLASHMAP) = head.o + OBJECT := $(obj)/head.o +