Cross compilation, warnings and errors
Luis Lavena <[email protected]>
| Newsgroups | gmane.comp.db.tds.freetds |
|---|---|
| Message-ID | <[email protected]> |
Hello, I just checked out freetds current snapshot with the goal of cross compile it, targeting Windows (MinGW) The goal of this is catch possible cross-compilation issues that can affect the success build and testing of FreeTDS on Windows itself. For this purpose, I've previously verified that native build with current snapshot (20110118) works. I've used mingw-w64 32bits compiler (identified with i686-w64-mingw32 GNU triplet): $ i686-w64-mingw32-gcc --version i686-w64-mingw32-gcc (GCC) 4.5.2 20101018 (prerelease) The package was downloaded from mingw-w64 automated builds: http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Automated%20Builds/ mingw-w32-1.0-bin_i686-darwin_20101114.tar.bz2 (49.1MB) Steps used to compilation after extraction: $ mkdir buildwin; cd buildwin $ sh ../configure --host=i686-w64-mingw32 First warning came form configure process: checking odbcss.h usability... no checking odbcss.h presence... yes configure: WARNING: odbcss.h: present but cannot be compiled configure: WARNING: odbcss.h: check for missing prerequisite headers? configure: WARNING: odbcss.h: see the Autoconf documentation configure: WARNING: odbcss.h: section "Present But Cannot Be Compiled" configure: WARNING: odbcss.h: proceeding with the preprocessor's result configure: WARNING: odbcss.h: in the future, the compiler will take precedence configure: WARNING: ## ---------------------------------- ## configure: WARNING: ## Report this to the FreeTDS lists. ## configure: WARNING: ## ---------------------------------- ## I'm reporting as indicated in the configure process. Beyond that, configure completes and makefiles are generated. Now the error is generated during the make process: 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 Here, the issue could be associated an existing declaration of LPCBYTE that exists on mingw-w64 headers (but could be missing from MSVC or mingw.org headers) The goal of this research is succeed in the cross compilation of FreeTDS and proceed to native compilation, aiming to later build TiniTDS, a Ruby extension that wraps FreeTDS and provides access to the FreeTDS supported databases. Any hint on this will be appreciated. On a sidenote, I was unable to find a bug tracker to report this issue (direct link form the website) or source code checkout instructions either. I heard FreeTDS still uses CVS, is that true? Thank you for your time. -- 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