build warnings when compiling Mercurial C extensions on x64 Python

Steve Borho steve at borho.org
Thu Nov 25 15:16:48 CST 2010


(using VC9's C compiler)

See attached.

Most of them are from doing implicit casts from size_t to integer types.

Do we have a compelling reason not to use Python's size_t types?

-- 
Steve Borho
-------------- next part --------------
running build_ext
building 'mercurial.base85' extension
creating build\temp.win-amd64-2.6
creating build\temp.win-amd64-2.6\Release
creating build\temp.win-amd64-2.6\Release\mercurial
c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -IC:\Python26_x64\include -IC:\Python26_x64\PC /Tcmercurial/base85.c /Fobuild\temp.win-amd64-2.6\Release\mercurial/base85.obj
base85.c
c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\amd64\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:C:\Python26_x64\libs /LIBPATH:C:\Python26_x64\PCbuild\amd64 /EXPORT:initbase85 build\temp.win-amd64-2.6\Release\mercurial/base85.obj /OUT:build\lib.win-amd64-2.6\mercurial\base85.pyd /IMPLIB:build\temp.win-amd64-2.6\Release\mercurial\base85.lib /MANIFESTFILE:build\temp.win-amd64-2.6\Release\mercurial\base85.pyd.manifest
base85.obj : warning LNK4197: export 'initbase85' specified multiple times; using first specification
   Creating library build\temp.win-amd64-2.6\Release\mercurial\base85.lib and object build\temp.win-amd64-2.6\Release\mercurial\base85.exp
C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\x64\mt.exe -nologo -manifest build\temp.win-amd64-2.6\Release\mercurial\base85.pyd.manifest -outputresource:build\lib.win-amd64-2.6\mercurial\base85.pyd;2
building 'mercurial.bdiff' extension
c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -IC:\Python26_x64\include -IC:\Python26_x64\PC /Tcmercurial/bdiff.c /Fobuild\temp.win-amd64-2.6\Release\mercurial/bdiff.obj
bdiff.c
mercurial/bdiff.c(94) : warning C4244: '=' : conversion from '__int64' to 'int', possible loss of data
mercurial/bdiff.c(314) : warning C4244: 'function' : conversion from 'Py_ssize_t' to 'int', possible loss of data
mercurial/bdiff.c(315) : warning C4244: 'function' : conversion from 'Py_ssize_t' to 'int', possible loss of data
mercurial/bdiff.c(364) : warning C4244: '+=' : conversion from '__int64' to 'int', possible loss of data
mercurial/bdiff.c(380) : warning C4244: '=' : conversion from '__int64' to 'int', possible loss of data
mercurial/bdiff.c(381) : warning C4244: 'function' : conversion from '__int64' to 'uint32_t', possible loss of data
mercurial/bdiff.c(382) : warning C4244: 'function' : conversion from '__int64' to 'uint32_t', possible loss of data
c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\amd64\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:C:\Python26_x64\libs /LIBPATH:C:\Python26_x64\PCbuild\amd64 /EXPORT:initbdiff build\temp.win-amd64-2.6\Release\mercurial/bdiff.obj /OUT:build\lib.win-amd64-2.6\mercurial\bdiff.pyd /IMPLIB:build\temp.win-amd64-2.6\Release\mercurial\bdiff.lib /MANIFESTFILE:build\temp.win-amd64-2.6\Release\mercurial\bdiff.pyd.manifest
bdiff.obj : warning LNK4197: export 'initbdiff' specified multiple times; using first specification
   Creating library build\temp.win-amd64-2.6\Release\mercurial\bdiff.lib and object build\temp.win-amd64-2.6\Release\mercurial\bdiff.exp
C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\x64\mt.exe -nologo -manifest build\temp.win-amd64-2.6\Release\mercurial\bdiff.pyd.manifest -outputresource:build\lib.win-amd64-2.6\mercurial\bdiff.pyd;2
building 'mercurial.diffhelpers' extension
c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -IC:\Python26_x64\include -IC:\Python26_x64\PC /Tcmercurial/diffhelpers.c /Fobuild\temp.win-amd64-2.6\Release\mercurial/diffhelpers.obj
diffhelpers.c
mercurial/diffhelpers.c(23) : warning C4244: 'initializing' : conversion from 'Py_ssize_t' to 'int', possible loss of data
mercurial/diffhelpers.c(26) : warning C4244: 'initializing' : conversion from 'Py_ssize_t' to 'int', possible loss of data
mercurial/diffhelpers.c(27) : warning C4244: 'initializing' : conversion from 'Py_ssize_t' to 'int', possible loss of data
mercurial/diffhelpers.c(30) : warning C4244: 'initializing' : conversion from 'Py_ssize_t' to 'int', possible loss of data
mercurial/diffhelpers.c(81) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
mercurial/diffhelpers.c(82) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
mercurial/diffhelpers.c(136) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
mercurial/diffhelpers.c(137) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\amd64\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:C:\Python26_x64\libs /LIBPATH:C:\Python26_x64\PCbuild\amd64 /EXPORT:initdiffhelpers build\temp.win-amd64-2.6\Release\mercurial/diffhelpers.obj /OUT:build\lib.win-amd64-2.6\mercurial\diffhelpers.pyd /IMPLIB:build\temp.win-amd64-2.6\Release\mercurial\diffhelpers.lib /MANIFESTFILE:build\temp.win-amd64-2.6\Release\mercurial\diffhelpers.pyd.manifest
diffhelpers.obj : warning LNK4197: export 'initdiffhelpers' specified multiple times; using first specification
   Creating library build\temp.win-amd64-2.6\Release\mercurial\diffhelpers.lib and object build\temp.win-amd64-2.6\Release\mercurial\diffhelpers.exp
C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\x64\mt.exe -nologo -manifest build\temp.win-amd64-2.6\Release\mercurial\diffhelpers.pyd.manifest -outputresource:build\lib.win-amd64-2.6\mercurial\diffhelpers.pyd;2
building 'mercurial.mpatch' extension
c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -IC:\Python26_x64\include -IC:\Python26_x64\PC /Tcmercurial/mpatch.c /Fobuild\temp.win-amd64-2.6\Release\mercurial/mpatch.obj
mpatch.c
mercurial/mpatch.c(109) : warning C4244: 'return' : conversion from '__int64' to 'int', possible loss of data
mercurial/mpatch.c(337) : warning C4244: 'function' : conversion from 'Py_ssize_t' to 'int', possible loss of data
mercurial/mpatch.c(359) : warning C4244: '=' : conversion from 'Py_ssize_t' to 'int', possible loss of data
mercurial/mpatch.c(373) : warning C4244: 'function' : conversion from 'Py_ssize_t' to 'int', possible loss of data
mercurial/mpatch.c(384) : warning C4244: 'function' : conversion from 'Py_ssize_t' to 'int', possible loss of data
c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\amd64\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:C:\Python26_x64\libs /LIBPATH:C:\Python26_x64\PCbuild\amd64 /EXPORT:initmpatch build\temp.win-amd64-2.6\Release\mercurial/mpatch.obj /OUT:build\lib.win-amd64-2.6\mercurial\mpatch.pyd /IMPLIB:build\temp.win-amd64-2.6\Release\mercurial\mpatch.lib /MANIFESTFILE:build\temp.win-amd64-2.6\Release\mercurial\mpatch.pyd.manifest
mpatch.obj : warning LNK4197: export 'initmpatch' specified multiple times; using first specification
   Creating library build\temp.win-amd64-2.6\Release\mercurial\mpatch.lib and object build\temp.win-amd64-2.6\Release\mercurial\mpatch.exp
C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\x64\mt.exe -nologo -manifest build\temp.win-amd64-2.6\Release\mercurial\mpatch.pyd.manifest -outputresource:build\lib.win-amd64-2.6\mercurial\mpatch.pyd;2
building 'mercurial.parsers' extension
c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -IC:\Python26_x64\include -IC:\Python26_x64\PC /Tcmercurial/parsers.c /Fobuild\temp.win-amd64-2.6\Release\mercurial/parsers.obj
parsers.c
mercurial/parsers.c(93) : warning C4244: '=' : conversion from '__int64' to 'int', possible loss of data
c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\amd64\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:C:\Python26_x64\libs /LIBPATH:C:\Python26_x64\PCbuild\amd64 /EXPORT:initparsers build\temp.win-amd64-2.6\Release\mercurial/parsers.obj /OUT:build\lib.win-amd64-2.6\mercurial\parsers.pyd /IMPLIB:build\temp.win-amd64-2.6\Release\mercurial\parsers.lib /MANIFESTFILE:build\temp.win-amd64-2.6\Release\mercurial\parsers.pyd.manifest
parsers.obj : warning LNK4197: export 'initparsers' specified multiple times; using first specification
   Creating library build\temp.win-amd64-2.6\Release\mercurial\parsers.lib and object build\temp.win-amd64-2.6\Release\mercurial\parsers.exp
C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\x64\mt.exe -nologo -manifest build\temp.win-amd64-2.6\Release\mercurial\parsers.pyd.manifest -outputresource:build\lib.win-amd64-2.6\mercurial\parsers.pyd;2
building 'mercurial.osutil' extension
c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -IC:\Python26_x64\include -IC:\Python26_x64\PC /Tcmercurial/osutil.c /Fobuild\temp.win-amd64-2.6\Release\mercurial/osutil.obj
osutil.c
c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\amd64\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:C:\Python26_x64\libs /LIBPATH:C:\Python26_x64\PCbuild\amd64 /EXPORT:initosutil build\temp.win-amd64-2.6\Release\mercurial/osutil.obj /OUT:build\lib.win-amd64-2.6\mercurial\osutil.pyd /IMPLIB:build\temp.win-amd64-2.6\Release\mercurial\osutil.lib /MANIFESTFILE:build\temp.win-amd64-2.6\Release\mercurial\osutil.pyd.manifest
osutil.obj : warning LNK4197: export 'initosutil' specified multiple times; using first specification
   Creating library build\temp.win-amd64-2.6\Release\mercurial\osutil.lib and object build\temp.win-amd64-2.6\Release\mercurial\osutil.exp
C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\x64\mt.exe -nologo -manifest build\temp.win-amd64-2.6\Release\mercurial\osutil.pyd.manifest -outputresource:build\lib.win-amd64-2.6\mercurial\osutil.pyd;2


More information about the Mercurial-devel mailing list