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