Update cross-compiling examples.
[wiki] / examples / cross-compiling-windows-binary.mdwn
index fbfba1e..5574306 100644 (file)
@@ -61,6 +61,7 @@ use the MinGW version of GCC and binutils:
        export PATH="/usr/i586-mingw32msvc/bin:$PATH"
        exec "$@"
        EOF
+       chmod u+x $HOME/bin/mingw
 
 If `$HOME/bin` is not already part of your `$PATH`, you need to add it:
 
@@ -97,13 +98,23 @@ tests, so we only build the static library here:
 
 OpenSSL is always a bit hard to compile, because they have their own
 `Configure` script that needs some tweaking. There is also a small bug in
-e_os2.h that breaks compilation with recent versions of GCC. First download
+e_os2.h in OpenSSL 0.9.8 that breaks compilation with recent versions of GCC.
+If you have this version of OpenSSL, then first download
 this [[openssl-cross-compilation.diff]] to your home directory, then patch
-OpenSSL, and then compile as usual.  Do not use the `-j` option when compiling
-OpenSSL, it will break.
+OpenSSL:
 
        cd $HOME/mingw/openssl-0.9.8k
        patch < $HOME/openssl-cross-compilation.diff
+
+With OpenSSL 1.0.0, this problem is no longer present. However, `apt-get source` will have applied
+Debian-specific patches that break cross-compiling a Windows binary. You need to undo those patches first:
+
+       cd $HOME/mingw/openssl-0.9.8k
+       quilt pop -a
+
+Now you can compile OpenSSL.
+Do not use the `-j` option when compiling OpenSSL, it will break.
+
        mingw ./Configure --openssldir=$HOME/mingw/usr/local mingw
        mingw make
        mingw make install