Compiling x86 rpms on x86_64

Gene C. czar at czarc.net
Thu Feb 5 09:09:25 UTC 2004


On Wednesday 04 February 2004 19:01, Mark wrote:
> I am finding some interesting problems trying to rebuild mozilla-1.6-0.i386
> on my x86_64 system. It seems that even if I tell it "rpmbuild -ba
> --target=i386 mozilla.spec",  it still builds the 64Bit version. What am I
> missing?
>
> I have already specifically set ${_libdir) to /usr/lib.

I am not sure what you problem is but, from my experience, it is likely that 
mozilla is not being compiled with -m32 or -m64 specified.  Without this 
specification, gcc will default to produce 32 bit code on a 32 bit OS and 64 
bit code on a 64 bit OS.  To compile for 32 bits, you will need to add -m32 
to all compiles.

Now, this is likely not the end of your problems.  As I found out rebuilding 
the gcc package, you will also need the i386 versions of some devel packages 
(such as glibc-devel).

I would suggest that it is more reliable (less aggravation) to compile your 32 
bit applications on a 32 bit OS.  Assuming that the needed runtime libraries 
are installed (e.g., glibc i686), you will then be able to install the 
package on your 64 bit OS.

While FC1 x86_64 has some support for running 32 bit applications and the 64 
bit gcc will compile 32 bit applications, it does not currently (and likely 
never will) have a 32 bit development environment that is very meaningful.  
Now just how extensive the 32 bit runtime and development capabilities should 
be for the x86_64 version of Fedora Core is something that should be 
discussed.

While SUSE for the x86_64 does have more extensive runtime (and development?) 
support for 32 bit applications, it also requires two DVDs for the full 
binary+source distribution ... double the size of Fedora Core or other Red 
Hat distributions.  Right now, the decision for Fedora Core appears to be for 
a minimal 32 bit capability ... enough to support the Fedora Core 
applications which currently are not (cannot be) ported to 64 bits.

The situation is further complicated by the difficulty of installing ix86 
packages post system installation ... while the libraries are put in separate 
directory trees (/usr/lib and /usr/lib64), binary executables are put into a 
single directory (e.g., /usr/bin) and some library packages have executable 
files (e.g., openssl).
-- 
Gene





More information about the fedora-test-list mailing list