[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [PATCH] Improve mingw support

From: Max Bowsher <maxb1_at_ukf.net>
Date: 2006-07-15 18:17:14 CEST

Paul Querna wrote:
> This is a first swing at getting Subversion to build on Windows, using
> only mingw.

> Improve the ability to compile under mingw32.
>
> * libsvn_subr/cmdline.c,
> include/svn_client.h,
> libsvn_subr/simple_providers.c,
> libsvn_client/compat_providers.c: Remove support for the windows
> specific CryptProtectData for authentication. Mingw doesn't include
> the definitions for this in their headers.

The log message makes it sound like you are completely removing support,
 rather than just conditionalizing it further.

> -#ifdef WIN32
> +#if defined(WIN32) && !defined(__MINGW32__)

From what I remember when I was more active in this sphere of things,
adding a function to w32api should be pretty easy, so I'd suggest
looking into that.

I feel a little uncomfortable with conditionally present functions - it
effectively creates a suite of different flavour ABIs, making it hard
for things building on top of Subversion.

I can live with the #ifdef WIN32, because that's clearly identifying
"Windows" as a whole, but since mingw and non-mingw code sometimes
interoperates on the same machine, I'm opposed to the conditional
presence of a function.

Therefore, I suggest that we document that the
svn_auth_get_windows_simple_provider may output NULL, have it do so if
the functionality it needs isn't available, and make calling code check
for that.

Similar concerns probably apply to the keychain provider.

> * libsvn_subr/config_win.c: Define the minimum IE version to 5.0, since
> mingw32 doesn't seem to define this.

> +#ifdef __MINGW32__
> +# ifndef _WIN32_IE
> +# define _WIN32_IE 0x0500
> +# endif
> +#endif

That doesn't seem right at all. If we are setting these 'API level
feature request' macros at all, we should be setting them for all
windows compilers.

It wouldn't hurt to set them somewhere global, either, unless
config_win.c is the only C file in which we include Win32 API headers?

Max.

Received on Sat Jul 15 18:17:55 2006

This is an archived mail posted to the Subversion Dev mailing list.