Since NSIS only compiles 32-bit installers anyway, I added the option to compile for a 32-bit host. Now "makensis" works on my amd64 host, cross-compiling for a 32-bit Windows target. Reproducible: Always Steps to Reproduce: diff -r -c nsis-2.23-src/SCons/Config/gnu nsis-2.23-works/SCons/Config/gnu *** nsis-2.23-src/SCons/Config/gnu Sat Nov 11 15:04:17 2006 --- nsis-2.23-works/SCons/Config/gnu Mon Jan 22 15:13:52 2007 *************** *** 54,59 **** --- 54,61 ---- if defenv['DEBUG']: defenv.Append(CCFLAGS = '-g') + defenv.Append(CCFLAGS = '-m32') # 32-bit host + defenv.Append(LINKFLAGS = '-m32') # 32-bit host ### stub environment Unfortunately, I don't know anything about the ebuild system other than from a user's perspective, so I don't know if (a) this patch even makes sense (though it definitely works for me), and (b) how to submit it properly, if it does. I'm submitting it here in case it interests anyone.
I think nsis can be installed on a amd64 host without this patch, but I didn't had the time to test it. Try to install it as is - it installs only one native executable, namely makensis.
Turns out you're right: the native code is not portable on 64-bit arches. The patch and ~amd64 keyword have been added to nsis-2.23. Thanks!
Please remember to submit this to upstream as it is very receptive! strict aliasing and STRIP=no will be available at next version too!
Done in http://sourceforge.net/tracker/index.php?func=detail&aid=1646170&group_id=22049&atid=373085