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

Kevin Kofler kevin.kofler at chello.at
Tue Oct 7 17:40:15 UTC 2008


Richard W.M. Jones <rjones <at> redhat.com> writes:
> It turns out that [NSIS is] not just built for 32 bit because of the
> general hideousness of the code, but because it builds Windows 32 bit
> plugins.  Somehow -- and I've no idea how it does this -- the Windows
> plugins get loaded into the native Fedora binary at runtime.

Those plugins don't actually get loaded into the Fedora binary. They get packed 
into the generated installer image.

> Even though the main binary is Fedora native, it still has to be built as
> 32 bit to achieve this minor miracle.

The Debian folks worked hard on making NSIS build as a true 64-bit binary, not 
with -m32, and as far as I know their patches got merged upstream already.

The W32 plugins need to be built with the MinGW cross-compiler of course, not 
the native compiler, so they aren't affected by this problem at all.

I can have a try at making a proper x86_64 package with the plugins actually 
built from source. What I know is that my hack (packaging the binary plugins 
from the prebuilt ZIP and rebuilding makensis from source as 64-bit) worked.

What's clear is that 32-bit binaries on a 64-bit system are not a solution, you 
have to be very special like WINE to get away with this (and even WINE is not 
built with -m32, it's simply copied from the i386 repo by a multilib whitelist 
entry; fake x86_64 packages with 32-bit stuff in it are a bad idea), NSIS has 
really no valid reason to use 32-bit binaries.

        Kevin Kofler




More information about the fedora-devel-list mailing list