|
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
|