Skip to Content.
Sympa Menu

freetds - Re: [freetds] building 0.83.dev.20101013 with VC9: _vsnprintf error

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: Frediano Ziglio <freddy77 AT gmail.com>
  • To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
  • Subject: Re: [freetds] building 0.83.dev.20101013 with VC9: _vsnprintf error
  • Date: Thu, 14 Oct 2010 15:42:55 +0200

2010/10/14 Roman Neuhauser <neuhauser AT sigpipe.cz>:
> here's what i got building yesterday's snapshot with VC9.
>
> c:\MinGW\msys\1.0\home\roman\wc\freetds-0.83.dev.20101013>nmake -nologo -f
> Nmakefile FROM_TARBALL= PLATFORM=win32 CONFIGURATION=debug
>        cl  -nologo     -W3 -Wp64 -EHsc -TC -Gm  -errorReport:prompt -D
> "_MBCS" -D "_LIB" -D "WIN32"  -D "_CRT_SECURE_NO_WARNINGS" -D
> _CRT_NONSTDC_NO_DEPRECATE -D "HAVE_CONFIG_H"  -D "_FREETDS_LIBRARY_SOURCE"
> -I "include" -I "win32" -I "include\x64" -c -MTd -Od -D "_DEBUG"  -ZI -RTC1
>   -Fo"src\replacements\win32\debug\\"  
> -Fd"src\replacements\win32\debug\vc80.pdb"  src\replacements\asprintf.c
> src\replacements\basename.c src\replacements\fakepoll.c
> src\replacements\gettimeofday.c src\replacements\getopt.c
> src\replacements\iconv.c src\replacements\readpassphrase.c
> src\replacements\strlcat.c src\replacements\strlcpy.c
> src\replacements\strtok_r.c src\replacements\vasprintf.c
> cl : Command line warning D9035 : option 'Wp64' has been deprecated and
> will be removed in a future release
> vasprintf.c
> strtok_r.c
> strlcpy.c
> strlcat.c
> readpassphrase.c
> iconv.c
> c:\mingw\msys\1.0\home\roman\wc\freetds-0.83.dev.20101013\src\replacements\iconv.c(390)
> : warning C4312: 'type cast' : conversion from 'TDS_INTPTR' to 'iconv_t'
> of greater size
> c:\mingw\msys\1.0\home\roman\wc\freetds-0.83.dev.20101013\src\replacements\iconv.c(428)
> : warning C4311: 'type cast' : pointer truncation from 'iconv_t' to
> 'TDS_INTPTR'
> c:\mingw\msys\1.0\home\roman\wc\freetds-0.83.dev.20101013\src\replacements\iconv.c(436)
> : warning C4311: 'type cast' : pointer truncation from 'iconv_t' to
> 'TDS_INTPTR'
> c:\mingw\msys\1.0\home\roman\wc\freetds-0.83.dev.20101013\src\replacements\iconv.c(439)
> : warning C4311: 'type cast' : pointer truncation from 'iconv_t' to
> 'TDS_INTPTR'
> c:\mingw\msys\1.0\home\roman\wc\freetds-0.83.dev.20101013\src\replacements\iconv.c(440)
> : warning C4311: 'type cast' : pointer truncation from 'iconv_t' to
> 'TDS_INTPTR'
> c:\mingw\msys\1.0\home\roman\wc\freetds-0.83.dev.20101013\src\replacements\iconv.c(444)
> : warning C4267: 'function' : conversion from 'size_t' to 'int', possible
> loss of data
> c:\mingw\msys\1.0\home\roman\wc\freetds-0.83.dev.20101013\src\replacements\iconv.c(451)
> : warning C4267: 'function' : conversion from 'size_t' to 'int', possible
> loss of data
> getopt.c
> c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(358) :
> error C3163: '_vsnprintf': attributes inconsistent with previous declaration
>        c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(350)
> : see declaration of '_vsnprintf'
> gettimeofday.c
> fakepoll.c
> basename.c
> asprintf.c
> Generating Code...
> NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio
> 9.0\VC\BIN\cl.EXE"' : return code '0x2'
> Stop.
>
> c:\MinGW\msys\1.0\home\roman\wc\freetds-0.83.dev.20101013>
>
> i'm not sure how useful this is, but here's lines 350 and 358
> from stdio.h mentioned above:
>
> stdio.h:350:_Check_return_opt_ _CRT_INSECURE_DEPRECATE(vsnprintf_s) _CRTIMP
> int __cdecl vsnprintf(_Out_cap_(_MaxCount) char * _DstBuf, _In_ size_t
> _MaxCount, _In_z_ _Printf_format_string_ const char * _Format, va_list
> _ArgList);
>
> stdio.h:358:__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST_EX(int,
> __RETURN_POLICY_SAME, _CRTIMP, _snprintf, _vsnprintf, _Pre_notnull_
> _Post_maybez_ char, _Out_cap_(_Count) _Post_maybez_, char, _Dest, _In_
> size_t, _Count, _In_z_ _Printf_format_string_ const char *, _Format)
>

Obfuscated C code ? :)

Try moving the lines

#ifdef _FREETDS_LIBRARY_SOURCE
# include "tds_sysdep_private.h"
#endif /* _FREETDS_LIBRARY_SOURCE */

after these lines

#if !defined(_WIN32)
# include <unistd.h>
#endif

(src/replacements/getopt.c)

freddy77




Archive powered by MHonArc 2.6.24.

Top of Page