Cross compiling using separate output directory problems

From: Peter Chubb
Date: Tue Oct 07 2003 - 22:56:52 EST



Hi Sam,
Thanks for doing the work to make comnpilation work with a separate
output directory.

I found the following changes necessary to get it to work properly
when crosscompiling for IA64. Otherwise include/asm-ia64 hasn't been
created when setting up offsets.h.

There's also a minor change to tell make where to find the
toolchain-flags and check-gas scripts.

===== Makefile 1.36 vs edited =====
--- 1.36/arch/ia64/Makefile Wed Sep 10 14:17:40 2003
+++ edited/Makefile Wed Oct 8 13:48:53 2003
@@ -25,9 +25,9 @@
GCC_VERSION=$(shell $(CC) -v 2>&1 | fgrep 'gcc version' | cut -f3 -d' ' | cut -f1 -d'.')
GCC_MINOR_VERSION=$(shell $(CC) -v 2>&1 | fgrep 'gcc version' | cut -f3 -d' ' | cut -f2 -d'.')

-GAS_STATUS=$(shell arch/ia64/scripts/check-gas $(CC) $(OBJDUMP))
+GAS_STATUS=$(shell $(src)/arch/ia64/scripts/check-gas $(CC) $(OBJDUMP))

-CPPFLAGS += $(shell arch/ia64/scripts/toolchain-flags $(CC) $(OBJDUMP))
+CPPFLAGS += $(shell $(src)/arch/ia64/scripts/toolchain-flags $(CC) $(OBJDUMP))

ifeq ($(GAS_STATUS),buggy)
$(error Sorry, you need a newer version of the assember, one that is built from \
@@ -84,18 +84,21 @@
archclean:
$(Q)$(MAKE) $(clean)=$(boot)

-CLEAN_FILES += include/asm-ia64/.offsets.h.stamp include/asm-ia64/offsets.h vmlinux.gz bootloader
+CLEAN_FILES += include/asm-$(ARCH)/.offsets.h.stamp include/asm-$(ARCH)/offsets.h vmlinux.gz bootloader

-prepare: include/asm-ia64/offsets.h
+prepare: include/asm-$(ARCH)/offsets.h
+
+arch/$(ARCH)/kernel/asm-offsets.s: include/asm include/linux/version.h

include/asm-$(ARCH)/offsets.h: arch/$(ARCH)/kernel/asm-offsets.s
$(call filechk,gen-asm-offsets)

-arch/ia64/kernel/asm-offsets.s: include/asm-ia64/.offsets.h.stamp
+arch/ia64/kernel/asm-offsets.s: include/asm-$(ARCH)/.offsets.h.stamp

-include/asm-ia64/.offsets.h.stamp:
- [ -s include/asm-ia64/offsets.h ] \
- || echo "#define IA64_TASK_SIZE 0" > include/asm-ia64/offsets.h
+include/asm-$(ARCH)/.offsets.h.stamp:
+ mkdir -p include/asm-$(ARCH)
+ [ -s include/asm-$(ARCH)/offsets.h ] \
+ || echo "#define IA64_TASK_SIZE 0" > include/asm-$(ARCH)/offsets.h
touch $@

boot: lib/lib.a vmlinux
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/