On Tue, Feb 07, 2006 at 12:03:22PM +1100, [EMAIL PROTECTED] wrote:
> Hi,
> 
> I have recently learned that the libxml2 does not build with BCB6. The
> problem is the result of the inclusion of the Windows header file
> ws2tcpip.h by wsockcompat.h. The ws2tcpip.h header file (apparently
> supplied to Borland by Microsoft) uses a macro, WS2TCPIP_INLINE, which
> on non-Microsoft compilers gets defined as "extern inline". That's fine
> for C++ compilation, but the "inline" directive is not recognized by BCB
> when doing standard C compilation.
> 
> Arguably this is really a problem in the Borland header file, but it
> would be nice if libxml2 could be compiled without having to modify the
> distributed headers. The best patch I've been able to come up with so
> far is this:
> 
> ------------------------------------
> 
> Index: include/wsockcompat.h
> ===================================================================
> RCS file: /cvs/gnome/libxml2/include/wsockcompat.h,v
> retrieving revision 1.3
> diff -u -r1.3 wsockcompat.h
> --- include/wsockcompat.h     4 Jan 2006 09:55:16 -0000       1.3
> +++ include/wsockcompat.h     7 Feb 2006 00:54:03 -0000
> @@ -10,7 +10,15 @@
>  #else
>  #undef HAVE_ERRNO_H
>  #include <winsock2.h>
> +#if defined(__BORLANDC__) && !defined(__cplusplus)
> +#define extern static
> +#define inline
>  #include <ws2tcpip.h>
> +#undef extern
> +#undef inline
> +#else
> +#include <ws2tcpip.h>
> +#endif
>  /* Check if ws2tcpip.h is a recent version which provides getaddrinfo()
> */
>  #if defined(GetAddrInfo)
>  #define HAVE_GETADDRINFO
> 
> ------------------------------------
> 
> This doesn't seem very elegant, though. Anyone have any better ideas?

  Gasp, yes that's really not nice, I would really prefer if someone 
could come with a nicer way to do this.
  Aren't Borland header using guards to avoid double definitions, maybe
something like this could be used instead.

Daniel

-- 
Daniel Veillard      | Red Hat http://redhat.com/
[EMAIL PROTECTED]  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
[email protected]
http://mail.gnome.org/mailman/listinfo/xml

Reply via email to