How to package code compiled with 'gcc -m32'?

Richard W.M. Jones rjones at redhat.com
Tue Oct 7 13:35:18 UTC 2008


I've got a nasty program I'm trying to package for Fedora.  To cut a
very long story short, this C/C++ mixed program started out on Windows
and makes lots of 32 bit assumptions.  So it's compiled with 'gcc -m32'.

Expressing the build requirements so it can build on a 64 bit platform
is proving troublesome.  (It builds fine on i386).

First problem is that it uses <gnu/stubs.h> which includes
<gnu/stubs-[WORDSIZE].h> (ie. <gnu/stubs-32.h>).  That file isn't in
glibc-devel.x86_64, but only in glibc-devel.i386.

I've expressed that with a file dependency which breaks Fedora
packaging guidelines:

  BuildRequires:  /usr/include/gnu/stubs-32.h

The second and much larger problem is that the code uses wxGTK-devel,
and (because it's being compiled with gcc -m32) it has to have the 32
bit version.

This should work (on x86-64 at least, not ppc64):

  BuildRequires:  wxGTK-devel.i386

but in fact even with the latest version of rpmbuild in Rawhide it
doesn't work.  So I have to write:

  BuildRequires:  wxGTK-devel

which doesn't express the dependency correctly, or:

  BuildRequires:  /usr/lib/libwx_baseu-2.8.so

which doesn't work on platforms which don't have the lib/lib64 split.

Any ideas?  I'm sure others must have hit this problem before ...

Rich.

-- 
Richard Jones, Emerging Technologies, Red Hat  http://et.redhat.com/~rjones
virt-top is 'top' for virtual machines.  Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://et.redhat.com/~rjones/virt-top




More information about the fedora-devel-list mailing list