From: Luis L. <lui...@gm...> - 2011-01-24 19:19:24
|
Hello, Recently I've started to work on compiling FreeTDS library with MinGW (and mingw-w64): http://freetds.org/ Thanks to autoconf tools and the amazing work of FreeTDS developers, this pretty much went painless. Now, I've encountered one issue that I've reported to them here: http://lists.ibiblio.org/pipermail/freetds/2011q1/026670.html Which happens during cross-compilation (need to verify later today about antive compilation) sqlfront.h defines LPCBYTE, which is also defined in winscard.h, which is required by windows.h even on LEAN_AND_MEAN mode: if i686-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I../../../src/apps -I../../include -I../../../include -D_FREETDS_LIBRARY_SOURCE -DUNIXODBC -D_REENTRANT -D_THREAD_SAFE -DDEBUG=1 -Wall -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -g -O2 -Wdeclaration-after-statement -MT bsqldb.o -MD -MP -MF ".deps/bsqldb.Tpo" -c -o bsqldb.o ../../../src/apps/bsqldb.c; \ then mv -f ".deps/bsqldb.Tpo" ".deps/bsqldb.Po"; else rm -f ".deps/bsqldb.Tpo"; exit 1; fi In file included from ../../../src/apps/bsqldb.c:52:0: ../../../include/sqlfront.h:39:30: error: conflicting type qualifiers for ‘LPCBYTE’ /Users/luis/mingw/w32/bin/../lib/gcc/i686-w64-mingw32/4.5.2/../../../../i686-w64-mingw32/include/winscard.h:22:23: note: previous declaration of ‘LPCBYTE’ was here make[3]: *** [bsqldb.o] Error 1 make[2]: *** [all-recursive] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all-recursive] Error 1 This do not happen with mingw.org build. Looking for this particular issue on Google, found that VC6 versus VS2005 suffered the same issue. Could mingw-w64 behavior match the VS2005 and thus affecting the assumption of sqlfront.h that LPCBYTE is missing? Any suggestion around this? I know I can check with ifndef, but wanted to be sure and be consistent if this is really required or this is a fluke. Thank you in advance. -- Luis Lavena AREA 17 - Perfection in design is achieved not when there is nothing more to add, but rather when there is nothing more to take away. Antoine de Saint-Exupéry |
From: JonY <jo...@us...> - 2011-01-25 04:40:54
Attachments:
0xED74C077.asc
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 1/25/2011 03:15, Luis Lavena wrote: > Hello, > > Recently I've started to work on compiling FreeTDS library with MinGW > (and mingw-w64): > > http://freetds.org/ > > Thanks to autoconf tools and the amazing work of FreeTDS developers, > this pretty much went painless. > > Now, I've encountered one issue that I've reported to them here: > > http://lists.ibiblio.org/pipermail/freetds/2011q1/026670.html > > Which happens during cross-compilation (need to verify later today > about antive compilation) > > sqlfront.h defines LPCBYTE, which is also defined in winscard.h, which > is required by windows.h even on LEAN_AND_MEAN mode: > > if i686-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I../../../src/apps > -I../../include -I../../../include -D_FREETDS_LIBRARY_SOURCE > -DUNIXODBC -D_REENTRANT -D_THREAD_SAFE -DDEBUG=1 -Wall > -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -g -O2 > -Wdeclaration-after-statement -MT bsqldb.o -MD -MP -MF > ".deps/bsqldb.Tpo" -c -o bsqldb.o ../../../src/apps/bsqldb.c; \ > then mv -f ".deps/bsqldb.Tpo" ".deps/bsqldb.Po"; else rm -f > ".deps/bsqldb.Tpo"; exit 1; fi > In file included from ../../../src/apps/bsqldb.c:52:0: > ../../../include/sqlfront.h:39:30: error: conflicting type qualifiers > for ‘LPCBYTE’ > /Users/luis/mingw/w32/bin/../lib/gcc/i686-w64-mingw32/4.5.2/../../../../i686-w64-mingw32/include/winscard.h:22:23: > note: previous declaration of ‘LPCBYTE’ was here > make[3]: *** [bsqldb.o] Error 1 > make[2]: *** [all-recursive] Error 1 > make[1]: *** [all-recursive] Error 1 > make: *** [all-recursive] Error 1 > > This do not happen with mingw.org build. > > Looking for this particular issue on Google, found that VC6 versus > VS2005 suffered the same issue. > > Could mingw-w64 behavior match the VS2005 and thus affecting the > assumption of sqlfront.h that LPCBYTE is missing? > > Any suggestion around this? > > I know I can check with ifndef, but wanted to be sure and be > consistent if this is really required or this is a fluke. > > Thank you in advance. Hi, afaik, mingw.org doesn't have winscard.h, so its not affected. Redefining something that MS has established isn't a good idea at all. I don't think sqlfront.h should be messing with LPCBYTE when its already used by windows headers, even when LEAN_AND_MEAN is in use. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.16 (MingW32) iEYEARECAAYFAk0+T8wACgkQp56AKe10wHepQQCfTTRV8uBFKR3jWbTpnCFoN5WY v9wAn1cD9xxg9+kRG2NT87k0DhjyyvFM =sfbV -----END PGP SIGNATURE----- |
From: Luis L. <lui...@gm...> - 2011-01-25 13:50:14
|
On Tue, Jan 25, 2011 at 1:21 AM, JonY <jo...@us...> wrote: > > Hi, > > afaik, mingw.org doesn't have winscard.h, so its not affected. > Redefining something that MS has established isn't a good idea at all. > > I don't think sqlfront.h should be messing with LPCBYTE when its already > used by windows headers, even when LEAN_AND_MEAN is in use. > Thank you JonY, already discussed with FreeTDS developers and will provide patches to avoid these issues. Regards, -- Luis Lavena AREA 17 - Perfection in design is achieved not when there is nothing more to add, but rather when there is nothing more to take away. Antoine de Saint-Exupéry |
From: Dongsheng S. <don...@gm...> - 2011-01-27 15:23:35
|
Hi Luis, Please try the following patch (include VC6 trick): include/sqlfront.h | 5 +++++ include/tds_sysdep_private.h | 2 +- win32/config.h | 7 ++++--- 3 files changed, 10 insertions(+), 4 deletions(-) --- a/include/sqlfront.h +++ b/include/sqlfront.h @@ -29,11 +29,16 @@ typedef DBPROCESS * PDBPROCESS; typedef LOGINREC * PLOGINREC; typedef DBCURSOR * PDBCURSOR; +#ifndef _WIN32 +/* + Some Windows Data Types ( http://msdn.microsoft.com/en-us/library/aa383751%28VS.85%29.aspx) + */ typedef int * LPINT; typedef char * LPSTR; typedef BYTE * LPBYTE; typedef void * LPVOID; typedef const char * LPCSTR; +#endif typedef const LPINT LPCINT; typedef const LPBYTE LPCBYTE ; --- a/include/tds_sysdep_private.h +++ b/include/tds_sysdep_private.h @@ -107,7 +107,7 @@ typedef DWORD pid_t; #define TDS_SDIR_SEPARATOR "\\" /* use macros to use new style names */ -#if defined(__MSVCRT__) || defined(_MSC_VER) +#if _MSC_VER > 1200 #define getpid() _getpid() #define strdup(s) _strdup(s) #undef fileno --- a/win32/config.h +++ b/win32/config.h @@ -89,7 +89,7 @@ #define HAVE_INT64 1 /* Define to 1 if you have the <inttypes.h> header file. */ -#define HAVE_INTTYPES_H 1 +/* #undef HAVE_INTTYPES_H */ /* Define to 1 if you have the <limits.h> header file. */ #define HAVE_LIMITS_H 1 @@ -281,7 +281,8 @@ #endif #include <winsock2.h> -#include <BaseTsd.h> +#include <basetsd.h> +#ifndef _SSIZE_T_DEFINED typedef SSIZE_T ssize_t; - +#endif -- Dongsheng On Tue, Jan 25, 2011 at 21:49, Luis Lavena <lui...@gm...> wrote: > On Tue, Jan 25, 2011 at 1:21 AM, JonY <jo...@us...> wrote: > > > > Hi, > > > > afaik, mingw.org doesn't have winscard.h, so its not affected. > > Redefining something that MS has established isn't a good idea at all. > > > > I don't think sqlfront.h should be messing with LPCBYTE when its already > > used by windows headers, even when LEAN_AND_MEAN is in use. > > > > Thank you JonY, already discussed with FreeTDS developers and will > provide patches to avoid these issues. > > Regards, > -- > Luis Lavena > AREA 17 > - > Perfection in design is achieved not when there is nothing more to add, > but rather when there is nothing more to take away. > Antoine de Saint-Exupéry > > > ------------------------------------------------------------------------------ > Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! > Finally, a world-class log management solution at an even better > price-free! > Download using promo code Free_Logger_4_Dev2Dev. Offer expires > February 28th, so secure your free ArcSight Logger TODAY! > http://p.sf.net/sfu/arcsight-sfd2d > _______________________________________________ > Mingw-w64-public mailing list > Min...@li... > https://lists.sourceforge.net/lists/listinfo/mingw-w64-public > |