From: <a.o...@bl...> - 2004-07-20 23:34:23
|
On Sat, Jul 17, 2004 at 10:36:40PM -0500, Mike Goggin wrote: > I downloaded the 2.6.7 source, and got it patched to support the GC. > make vmlinux compiles fine. But make zImage.initrd gives me the > following error: > > [tosk@cavalier ~/linux-2.6.7]$ make zImage.initrd > make[1]: `arch/ppc/kernel/asm-offsets.s' is up to date. > CHK include/linux/compile.h > SKIPPED include/linux/compile.h > AS arch/ppc/boot/simple/head.o > AS arch/ppc/boot/simple/relocate.o > CC arch/ppc/boot/simple/misc-embedded.o > arch/ppc/boot/simple/misc-embedded.c: In function `load_kernel': > arch/ppc/boot/simple/misc-embedded.c:80: warning: unused variable `ch' > arch/ppc/boot/simple/misc-embedded.c:81: warning: unused variable `timer' > CC arch/ppc/boot/simple/embed_config.o > arch/ppc/boot/simple/embed_config.c:45: warning: `def_enet_addr' defined > but not used > objcopy -O elf32-powerpc \ > --add-section=.ramdisk=arch/ppc/boot/images/ramdisk.image.gz \ > --set-section-flags=.ramdisk=contents,alloc,load,readonly,data \ > --add-section=.image=arch/ppc/boot/images/vmlinux.gz \ > --set-section-flags=.image=contents,alloc,load,readonly,data \ > arch/ppc/boot/simple/dummy.o arch/ppc/boot/simple/image.o > ld -T /home/tosk/linux-2.6.7/arch/ppc/boot/ld.script -Ttext 0x00800000 > -Bstatic > -o arch/ppc/boot/simple/zvmlinux.initrd arch/ppc/boot/simple/head.o > arch/ppc/boot/simple/relocate.o arch/ppc/boot/simple/misc-embedded.o > arch/ppc/boot/simple/embed_config.o arch/ppc/boot/simple/image.o > arch/ppc/boot/common/lib.a arch/ppc/boot/lib/lib.a > objcopy -O elf32-powerpc arch/ppc/boot/simple/zvmlinux.initrd > arch/ppc/boot/simple/zvmlinux.initrd --change-addresses=-0x80000000 -R > .comment -R .stab \ > -R .stabstr -R .sysmap > objcopy: --change-addresses: bad number: -0x80000000 > make[2]: *** [arch/ppc/boot/simple/zvmlinux.initrd] Error 1 > make[1]: *** [simple] Error 2 > make: *** [zImage.initrd] Error 2 > > Did I do something wrong? No. The -0x80000000 is not a valid incremental value for --change-addresses. Good catch. Funny how this doesn't barf on making zImage; the same funkiness appears there as well. Looking at the build output, I assume that you're building on a PPC host? What version of binutils (objcopy --version)? In any case, this patch, hackish at best, should fix things. Please confirm. Index: arch/ppc/boot/simple/Makefile =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/ppc/boot/simple/Makefile,v retrieving revision 1.6 diff -u -r1.6 Makefile --- arch/ppc/boot/simple/Makefile 16 Jun 2004 17:30:42 -0000 1.6 +++ arch/ppc/boot/simple/Makefile 20 Jul 2004 23:16:25 -0000 @@ -113,6 +113,10 @@ entrypoint-$(CONFIG_SPRUCE) := 0x00800000 misc-$(CONFIG_SPRUCE) += misc-spruce.o + zimage-$(CONFIG_GAMECUBE) := zImage-DOL +zimageinitrd-$(CONFIG_GAMECUBE) := zImage.initrd-DOL + end-$(CONFIG_GAMECUBE) := dol + # SMP images should have a '.smp' suffix. end-$(CONFIG_SMP) := $(end-y).smp @@ -167,7 +171,7 @@ --set-section-flags=.image=contents,alloc,load,readonly,data \ $(obj)/dummy.o $(obj)/image.o $(LD) $(LD_ARGS) -o $@ $(OBJS) $(obj)/image.o $(LIBS) - $(OBJCOPY) $(OBJCOPY_ARGS) $@ $@ --change-addresses=-0x80000000 -R .comment -R .stab \ + $(OBJCOPY) $(OBJCOPY_ARGS) $@ $@ -R .comment -R .stab \ -R .stabstr -R .ramdisk -R .sysmap $(obj)/zvmlinux.initrd: $(OBJS) $(LIBS) $(srctree)/$(boot)/ld.script \ @@ -179,7 +183,7 @@ --set-section-flags=.image=contents,alloc,load,readonly,data \ $(obj)/dummy.o $(obj)/image.o $(LD) $(LD_ARGS) -o $@ $(OBJS) $(obj)/image.o $(LIBS) - $(OBJCOPY) $(OBJCOPY_ARGS) $@ $@ --change-addresses=-0x80000000 -R .comment -R .stab \ + $(OBJCOPY) $(OBJCOPY_ARGS) $@ $@ -R .comment -R .stab \ -R .stabstr -R .sysmap # Sort-of dummy rules, that let us format the image we want. @@ -218,3 +222,14 @@ $(images)/zImage.initrd-PPLUS: $(obj)/zvmlinux.initrd $(MKPREP) $(MKBUGBOOT) $(MKPREP) -pbp $(obj)/zvmlinux.initrd $(images)/zImage.initrd.$(end-y) $(MKBUGBOOT) $(obj)/zvmlinux.initrd $(images)/zImage.initrd.bugboot + +# +# FIXME Must generate actual .dol's. All these targets do ATM is to adjust +# VMA/LMA addresses of all sections in the respective images so we can just +# feed the result into `doltool'. Ick. +# +$(images)/zImage-DOL: $(obj)/zvmlinux + $(OBJCOPY) $(OBJCOPY_ARGS) $^ $^ --change-addresses=0x80000000 + +$(images)/zImage.initrd-DOL: $(obj)/zvmlinux.initrd + $(OBJCOPY) $(OBJCOPY_ARGS) $^ $^ --change-addresses=0x80000000 |