Hi!

I tried to compile systemimager-4.1.6-1.src.rpm on Fedora 11 x86_64 using
        rpmbuild --rebuild systemimager-4.1.6-1.src.rpm

The build dies with:

arch/x86/boot/boot.h: Assembler messages:
arch/x86/boot/boot.h:112: Error: bad register name `%dil'
make[2]: *** [arch/x86/boot/video.o] Error 1
make[2]: *** Waiting for unfinished jobs....
  GZIP    arch/x86/boot/compressed/vmlinux.bin.gz
  LD      arch/x86/boot/compressed/piggy.o
  LD      arch/x86/boot/compressed/vmlinux
make[1]: *** [bzImage] Error 2
make[1]: Leaving directory
`/root/rpmbuild/BUILD/systemimager-4.1.6/src/linux-2.6.24.2'
make: ***
[/root/rpmbuild/BUILD/systemimager-4.1.6/src/linux-2.6.24.2/arch/x86_64/boot/bzImage]
Error 2

I found the following hints on the web:
http://portabilityblog.com/blog/archives/11-Bad-register-name-dil-or-sil.html

Using the attached patch [dil.patch] I could compile the kernel on my
system.

Then the compilation failed during the link step in
initrd_source/src/sysvinit-2.86.ds1.orig/src and I had to patch the
Makefile [crypt.patch]

Next I had to remove an obsolete header from fsck.cramfs.c [asm.patch]

The step
# Copy over the standard libs. -BEF-
failed, as the lib dir is called lib64 on x84_64
a quick workaround is attached in cp_lib_ld.patch, but this should of
course be dependent on the arch...

tar could not be built due to double linking.
gcc -std=gnu99  -g -O2   -o tar  buffer.o compare.o create.o delete.o
extract.o xheader.o incremen.o list.o misc.o names.o sparse.o system.o
tar.o transform.o update.o utf8.o ../lib/libtar.a   -lrt
../lib/libtar.a(argp-fmtstream.o): In function `argp_fmtstream_putc':
/root/rpmbuild/BUILD/systemimager-4.1.6/src/tar-1.19/lib/argp-fmtstream.h:233:
multiple definition of `argp_fmtstream_putc'
tar.o:/root/rpmbuild/BUILD/systemimager-4.1.6/src/tar-1.19/src/../lib/argp-fmtstream.h:233:
first defined here
...
../lib/libtar.a(argp-eexst.o): In function `argp_usage':
/root/rpmbuild/BUILD/systemimager-4.1.6/src/tar-1.19/lib/argp.h:589:
multiple definition of `argp_usage'
tar.o:/root/rpmbuild/BUILD/systemimager-4.1.6/src/tar-1.19/src/../lib/argp.h:589:
first defined here
collect2: ld returned 1 exit status

Didn't figure out how to fix this yet, but may be I can look into this
in more detail tomorrow.

Are there plans to create rpms for more recent Fedora or redhat
releases? Should I have a look into the SVN and most of these issues are
already solved in the head version, or is it worth for me to keep on
trying to fix my old initrd template?

Cheers
        Daniel
--- arch/x86/boot/boot.h~       2008-02-11 05:51:11.000000000 +0000
+++ arch/x86/boot/boot.h        2009-10-29 14:24:20.000000000 +0000
@@ -109,7 +109,7 @@
 static inline u8 rdfs8(addr_t addr)
 {
        u8 v;
-       asm volatile("movb %%fs:%1,%0" : "=r" (v) : "m" (*(u8 *)addr));
+       asm volatile("movb %%fs:%1,%0" : "=q" (v) : "m" (*(u8 *)addr));
        return v;
 }
 static inline u16 rdfs16(addr_t addr)
--- initrd_source/src/sysvinit-2.86.ds1.orig/src/Makefile~      2009-10-29 
14:37:27.000000000 +0000
+++ initrd_source/src/sysvinit-2.86.ds1.orig/src/Makefile       2009-10-29 
14:43:38.000000000 +0000
@@ -78,7 +78,7 @@
                $(CC) $(LDFLAGS) -o $@ runlevel.o
 
 sulogin:       sulogin.o
-               $(CC) $(LDFLAGS) $(STATIC) -o $@ sulogin.o $(LCRYPT)
+               $(CC) $(LDFLAGS) $(STATIC) -lcrypt -o $@ sulogin.o $(LCRYPT)
 
 wall:          dowall.o wall.o
                $(CC) $(LDFLAGS) -o $@ dowall.o wall.o
--- src/util-linux-2.12r/disk-utils/fsck.cramfs.c~      2009-10-29 
14:37:27.000000000 +0000
+++ src/util-linux-2.12r/disk-utils/fsck.cramfs.c       2009-10-29 
14:53:30.000000000 +0000
@@ -76,7 +76,6 @@
 
 #define PAD_SIZE 512
 
-#include <asm/page.h>
 #ifdef PAGE_SIZE
 #define PAGE_CACHE_SIZE ((int) PAGE_SIZE)
 #elif defined __ia64__
--- initrd_source/initrd.rul~   2007-09-09 08:40:20.000000000 +0000
+++ initrd_source/initrd.rul    2009-10-29 15:05:01.000000000 +0000
@@ -132,7 +132,7 @@
        cp -a $(UDPCAST_BINARY)                 $(INITRD_BUILD_DIR)/bin
 
        # Copy over the standard libs. -BEF-
-       cp -a /lib/ld*   $(INITRD_BUILD_DIR)/lib
+       cp -a /lib64/ld*   $(INITRD_BUILD_DIR)/lib
        test ! -d /lib64 || cp -a /lib64/ld* $(INITRD_BUILD_DIR)/lib64
        # Explicitly include more w/mklibs -L.  -dawild-
 ifeq ($(ARCH),x86_64)

Attachment: signature.asc
Description: OpenPGP digital signature

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
sisuite-devel mailing list
sisuite-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sisuite-devel

Reply via email to