This is a todo for myself. From
http://ppm4.activestate.com/MSWin32-x64/5.16/1600/B/BU/BULKDD/Win32/Win32-API-0.73.d/log-20121021T040314.txt
The compiler is identified as ver 14 in 02_Callback.t, which is VS 2005
or SDK/DDK equivalent. VS 2005 and newer are -GS on by default. There
are 2 ways to fix this.
-Add -GS- to the CCFLAGS in makefile.pl if >= VS 2005 (easy fix,
Win32::API never used fixed length stack alloced buffers)
-call __security_init_cookie without calling the rest of the CRT code.
Now the issue is, what if -GS- was specified and __security_init_cookie
is still in the source?
Obviously this compiler warning doesn't cause any visible runtime errors
but probably the security cookie is not randomized correctly.
Show quoted text
________________________________________________________________
C:\Perl64-5.16\bin\perl.exe C:\cpanfly-5.16\var\megalib\ExtUtils\xsubpp
-typemap C:\Perl64-5.16\lib\ExtUtils\typemap Callback.xs >
Callback.xsc && C:\Perl64-5.16\bin\perl.exe -MExtUtils::Command -e mv --
Callback.xsc Callback.c
cl -c -nologo -GF -W3 -MD -Zi -DNDEBUG -Ox -GL -fp:precise -DWIN32
-D_CONSOLE -DNO_STRICT -DWIN64 -DCONSERVATIVE -DPERL_TEXTMODE_SCRIPTS
-DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS
-DUSE_PERLIO -MD -Zi -DNDEBUG -Ox -GL -fp:precise -DVERSION=\"0.73\"
-DXS_VERSION=\"0.73\" "-IC:\Perl64-5.16\lib\CORE" Callback.c
Callback.c
Callback.xs(639) : warning C4244: '=' : conversion from 'UV' to 'int',
possible loss of data
Running Mkbootstrap for Win32::API::Callback ()
C:\Perl64-5.16\bin\perl.exe -MExtUtils::Command -e chmod -- 644 Callback.bs
C:\Perl64-5.16\bin\perl.exe -MExtUtils::Mksymlists -e
"Mksymlists('NAME'=>\"Win32::API::Callback\", 'DLBASE' => 'Callback',
'DL_FUNCS' => { }, 'FUNCLIST' => [], 'IMPORTS' => { }, 'DL_VARS' => []);"
link -out:..\blib\arch\auto\Win32\API\Callback\Callback.dll -dll
-nologo -nodefaultlib -debug -opt:ref,icf -ltcg
-libpath:"C:\Perl64-5.16\lib\CORE" -machine:AMD64 Callback.obj
C:\Perl64-5.16\lib\CORE\perl516.lib oldnames.lib kernel32.lib user32.lib
gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib
oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib
version.lib odbc32.lib odbccp32.lib comctl32.lib bufferoverflowU.lib
msvcrt.lib -def:Callback.def
Creating library ..\blib\arch\auto\Win32\API\Callback\Callback.lib
and object ..\blib\arch\auto\Win32\API\Callback\Callback.exp
Generating code
Finished generating code
bufferoverflowU.lib(gs_support.obj) : warning LNK4210: .CRT section
exists; there may be unhandled static initializers or terminators
if exist ..\blib\arch\auto\Win32\API\Callback\Callback.dll.manifest mt
-nologo -manifest
..\blib\arch\auto\Win32\API\Callback\Callback.dll.manifest
-outputresource:..\blib\arch\auto\Win32\API\Callback\Callback.dll;2
if exist ..\blib\arch\auto\Win32\API\Callback\Callback.dll.manifest del
..\blib\arch\auto\Win32\API\Callback\Callback.dll.manifest
C:\Perl64-5.16\bin\perl.exe -MExtUtils::Command -e chmod -- 755
..\blib\arch\auto\Win32\API\Callback\Callback.dll
C:\Perl64-5.16\bin\perl.exe -MExtUtils::Command -e cp -- Callback.bs
..\blib\arch\auto\Win32\API\Callback\Callback.bs
C:\Perl64-5.16\bin\perl.exe -MExtUtils::Command -e chmod -- 644
..\blib\arch\auto\Win32\API\Callback\Callback.bs
cd ..
C:\Perl64-5.16\bin\perl.exe C:\cpanfly-5.16\var\megalib\ExtUtils\xsubpp
-nolinenumbers -typemap C:\Perl64-5.16\lib\ExtUtils\typemap -typemap
typemap API.xs > API.xsc && C:\Perl64-5.16\bin\perl.exe
-MExtUtils::Command -e mv -- API.xsc API.c
cl -c -nologo -GF -W3 -MD -Zi -DNDEBUG -Ox -GL -fp:precise -DWIN32
-D_CONSOLE -DNO_STRICT -DWIN64 -DCONSERVATIVE -DPERL_TEXTMODE_SCRIPTS
-DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS
-DUSE_PERLIO -MD -Zi -DNDEBUG -Ox -GL -fp:precise -DVERSION=\"0.73\"
-DXS_VERSION=\"0.73\" "-IC:\Perl64-5.16\lib\CORE" API.c
API.c
ml64 -Zi -c call_asm_x64_msvc.asm
Assembling: call_asm_x64_msvc.asm
Microsoft (R) Macro Assembler (AMD64) Version 8.00.40310.39
Copyright (C) Microsoft Corporation. All rights reserved.
Running Mkbootstrap for Win32::API ()
C:\Perl64-5.16\bin\perl.exe -MExtUtils::Command -e chmod -- 644 API.bs
C:\Perl64-5.16\bin\perl.exe -MExtUtils::Mksymlists -e
"Mksymlists('NAME'=>\"Win32::API\", 'DLBASE' => 'API', 'DL_FUNCS' => {
}, 'FUNCLIST' => [], 'IMPORTS' => { }, 'DL_VARS' => []);"
link -out:blib\arch\auto\Win32\API\API.dll -dll -nologo -nodefaultlib
-debug -opt:ref,icf -ltcg -libpath:"C:\Perl64-5.16\lib\CORE"
-machine:AMD64 API.obj call_asm_x64_msvc.obj
C:\Perl64-5.16\lib\CORE\perl516.lib oldnames.lib kernel32.lib user32.lib
gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib
oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib
version.lib odbc32.lib odbccp32.lib comctl32.lib bufferoverflowU.lib
msvcrt.lib -def:API.def
Creating library blib\arch\auto\Win32\API\API.lib and object
blib\arch\auto\Win32\API\API.exp
Generating code
Finished generating code
bufferoverflowU.lib(gs_support.obj) : warning LNK4210: .CRT section
exists; there may be unhandled static initializers or terminators
if exist blib\arch\auto
___________________________________________________________