[Box Backup] Cross-compilation with i586-mingw32msvc under Ubuntu Hard

Achim boxbackup@boxbackup.org
Thu, 19 Mar 2009 11:10:10 +0100


Hello Chris:

On Wed, 18 Mar 2009 22:35:48 +0000 (GMT), Chris Wilson <chris@qwirx.com>
wrote:
> I did successfully build a MinGW cross-compiler from source on CentOS 5, 
> so I will check the instructions.

Great!

>> make CC=i586-mingw32msvc-gcc RANLIB=i586-mingw32msvc-ranlib
>> NM=i586-mingw32msvc-nm
>> [..]
>> set_key.c:72: error: static declaration of _hide_DES_check_key follows
>> non-static declaration
>> set_key.c:72: error: previous declaration of _hide_DES_check_key was
here
> 
> Looks like a bug in old openssl/recent gcc compatibility.

Yes, apparently only more recent GCCs complain about this, according to the
OpenSSL list.

> Why did you choose to build openssl shared? In my view this adds an extra

> dependency DLL for no good reason in this case.

No particular reason, it might as well be static.

> I decided to try to follow your 0.9.8j instructions, as 0.9.8b is out of 
> date, but I could not get the patch that you recommended to apply cleanly

> to it (2 hunks failed).

The patch comes from an OpenSSL thread about cross-compilation in Linux
using MinGW32. It is dated 20 October 2006, so it is natural that it does
not apply cleanly to the latest version. There is more information
available though:

Initial version:
<http://marc.info/?l=openssl-dev&m=116134451010737&w=2>

Update (the one that I use):
<http://marc.info/?l=openssl-dev&m=116134515700535>

There are also a couple of recent OpenSSL tickets about this:
<http://rt.openssl.org/Ticket/Display.html?id=1451&user=guest&pass=guest>
<http://rt.openssl.org/index.html?q=1552>

>> I started to look into cross-compiling in the first place because it was
>> impossible for me to set up a sane build environment under Windows XP.
> 
> Why? I did it with cygwin. That's how I've always build Box Backup for 
> Windows distributions, except for my own experimentation with 
> cross-compiling.

I remember to have read in one of your replies that you are now building
"native", and not cygwin anymore, also from the 0.10 release notes:

---- snip ----
Experimental: Native win32 port integrated into main source tree, fixes and
improved build
Experimental: Support for MinGW and MSVC under Win32
NOTE Features are marked as experimental if no automated test exists.
However, the developers have been running them on live systems. Win32
support is not totally complete. 
---- snap ----

>> Would somebody on the list perhaps be willing to upload their complete 
>> build directory (with all dependencies and tool such as GCC, MinGW, 
>> OpenSSL, wxWidgets, ...) that they use for Boxi and/or Box backup 
>> compilation from SVN?
> 
> I will if I get it working, but please note that as far as I know,
nobody, 
> including me, has ever successfully build Boxi in a cross-compiler.

With the last point, I was referring to a windows environment. As I said in
my original message, I started looking into cross-compilation only because
I was not able to set up a Windows-based build system.

I would be more than happy to use the existing Windows build environment if
somebody is willing to share: it should be as easy as zipping up the
contents of the folder?

Comiling Boxi and Box Backup at last on Windows would be great, and perhaps
this would also result in more testers? Imagine if we could provide a
"playground" with all dependencies that builds Box Backup, Boxi, perhaps
the new QT4 client out of the box? It would make developing and compiling
Box Backup so much more accessible!

Best regards,

Achim