Discussion:
[Sisuite-devel] compiling old release 4.1.6-1 with recent fedora 11
Daniel Goering
2009-10-29 15:29:51 UTC
Permalink
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
Bernard Li
2009-10-29 18:04:58 UTC
Permalink
Post by Daniel Goering
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?
Please try to build the snapshot from trunk available here:

http://therealms.org/oss/systemimager/snapshots/

Typically there isn't a real need to build the RPMs for the specific
distro, since all the RPMs are noarch anyways (well unless you are on
SuSE). As long as you can install them, they are fine.

Granted, we should probably keep our code up to date so that they can
be built on newer releases.

I was able to build the tarball on Fedora 9 and CentOS 5, please test
it against Fedora 11 and see if any of your patches are still needed.
I have updated the kernel, LVM, kexec, tar, etc.

Thanks for your help.

Cheers,

Bernard
Bernard Li
2009-10-29 18:05:43 UTC
Permalink
P.S. If you are going to submit patches, please re-base them against
trunk, or at the minimum against the snapshot tarball, thanks!
Post by Bernard Li
Post by Daniel Goering
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?
http://therealms.org/oss/systemimager/snapshots/
Typically there isn't a real need to build the RPMs for the specific
distro, since all the RPMs are noarch anyways (well unless you are on
SuSE).  As long as you can install them, they are fine.
Granted, we should probably keep our code up to date so that they can
be built on newer releases.
I was able to build the tarball on Fedora 9 and CentOS 5, please test
it against Fedora 11 and see if any of your patches are still needed.
I have updated the kernel, LVM, kexec, tar, etc.
Thanks for your help.
Cheers,
Bernard
Loading...