Subject: | MS Visual Studio 2017: need -D_ALLOW_KEYWORD_MACROS to build PropertyGrid.c in debug mode |
Hi,
I'm building the Wx extension on perl 5.28.0.
Here's the failing build (without -D_ALLOW_KEYWORD_MACROS) including the error message:
15:29:49 cl -GF -TP /c /nologo /TP /MD /Zi /Od /W4 /GR /EHsc -c -I. -I.. -Id:\701\w\elyeqw6zq8\gen\out\perl-5.28.0-sap7-master-SNAPSHOT-ntamd64-debug-c\lib\Alien\wxWidgets\msw_3_0_4_dbg_uni_cl_8\lib -Id:\701\w\elyeqw6zq8\gen\out\perl-5.28.0-sap7-master-SNAPSHOT-ntamd64-debug-c\lib\Alien\wxWidgets\msw_3_0_4_dbg_uni_cl_8\include -I. -I. -Id:\701\w\elyeqw6zq8\gen\out\perl-5.28.0-sap7-master-SNAPSHOT-ntamd64-debug-c\lib\Alien\wxWidgets\msw_3_0_4_dbg_uni_cl_8\lib -Id:\701\w\elyeqw6zq8\gen\out\perl-5.28.0-sap7-master-SNAPSHOT-ntamd64-debug-c\lib\Alien\wxWidgets\msw_3_0_4_dbg_uni_cl_8\include -I. -I..\.. -Id:\701\w\elyeqw6zq8\gen\out\perl-5.28.0-sap7-master-SNAPSHOT-ntamd64-debug-c\lib\Alien\wxWidgets\msw_3_0_4_dbg_uni_cl_8\lib -Id:\701\w\elyeqw6zq8\gen\out\perl-5.28.0-sap7-master-SNAPSHOT-ntamd64-debug-c\lib\Alien\wxWidgets\msw_3_0_4_dbg_uni_cl_8\include -nologo -GF -W3 -Od -MDd -Zi -D_DEBUG -DDEBUGGING -fp:precise -DWIN32 -D_CONSOLE -DNO_STRICT -DWIN64 -DCONSERVATIVE -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_WINSOCK_DEPRECATED_NO_WARNINGS -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DVERSION=\"0.01\" -DXS_VERSION=\"0.01\" "-ID:\701\w\elyeqw6zq8\gen\out\perl-5.28.0-sap7-master-SNAPSHOT-ntamd64-debug-c\lib\CORE" -DWXPL_EXT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE=1 -D_CRT_NON_CONFORMING_SWPRINTFS=1 -D_SCL_SECURE_NO_WARNINGS=1 -D__NO_VC_CRTDBG__ -D__WXMSW__ -DNDEBUG -D_UNICODE -DWXUSINGDLL -D_WINDOWS -DNOPCH -D_CRT_SECURE_NO_DEPRECATE -DWIN32 -D_CRT_SECURE_NO_DEPRECATE=1 -D_CRT_NON_CONFORMING_SWPRINTFS=1 -D_SCL_SECURE_NO_WARNINGS=1 -D__NO_VC_CRTDBG__ -D__WXMSW__ -DNDEBUG -D_UNICODE -DWXUSINGDLL -D_WINDOWS -DNOPCH -D_CRT_SECURE_NO_DEPRECATE -DWXPL_EXT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE=1 -D_CRT_NON_CONFORMING_SWPRINTFS=1 -D_SCL_SECURE_NO_WARNINGS=1 -D__NO_VC_CRTDBG__ -D__WXMSW__ -DNDEBUG -D_UNICODE -DWXUSINGDLL -D_WINDOWS -DNOPCH -D_CRT_SECURE_NO_DEPRECATE PropertyGrid.c
15:29:49 cl : Command line warning D9025 : overriding '/W4' with '/W3'
15:29:49 cl : Command line warning D9025 : overriding '/MD' with '/MDd'
15:29:49 PropertyGrid.c
15:29:49 C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.14.26428\include\xkeycheck.h(221): warning C4005: 'register': macro redefinition
15:29:49 D:\701\w\elyeqw6zq8\gen\out\perl-5.28.0-sap7-master-SNAPSHOT-ntamd64-debug-c\lib\CORE\perl.h(4227): note: see previous definition of 'register'
15:29:49 C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.14.26428\include\xkeycheck.h(260): fatal error C1189: #error: The C++ Standard Library forbids macroizing keywords. Enable warning C4005 to find the forbidden macro.
15:29:49 NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.14.26428\bin\HostX64\x64\cl.EXE"' : return code '0x2'
15:29:49 Stop.
Here's a succeeding build:
20:07:46 cl -GF -TP /c /nologo /TP /MD /Zi /Od /W4 /GR /EHsc -c -I. -I.. -Id:\701\w\elyeqw6zq8\gen\out\perl-5.28.0-sap7-master-SNAPSHOT-ntamd64-debug-c\lib\Alien\wxWidgets\msw_3_0_4_dbg_uni_cl_8\lib -Id:\701\w\elyeqw6zq8\gen\out\perl-5.28.0-sap7-master-SNAPSHOT-ntamd64-debug-c\lib\Alien\wxWidgets\msw_3_0_4_dbg_uni_cl_8\include -I. -I. -Id:\701\w\elyeqw6zq8\gen\out\perl-5.28.0-sap7-master-SNAPSHOT-ntamd64-debug-c\lib\Alien\wxWidgets\msw_3_0_4_dbg_uni_cl_8\lib -Id:\701\w\elyeqw6zq8\gen\out\perl-5.28.0-sap7-master-SNAPSHOT-ntamd64-debug-c\lib\Alien\wxWidgets\msw_3_0_4_dbg_uni_cl_8\include -I. -I..\.. -Id:\701\w\elyeqw6zq8\gen\out\perl-5.28.0-sap7-master-SNAPSHOT-ntamd64-debug-c\lib\Alien\wxWidgets\msw_3_0_4_dbg_uni_cl_8\lib -Id:\701\w\elyeqw6zq8\gen\out\perl-5.28.0-sap7-master-SNAPSHOT-ntamd64-debug-c\lib\Alien\wxWidgets\msw_3_0_4_dbg_uni_cl_8\include -nologo -GF -W3 -Od -MDd -Zi -D_DEBUG -DDEBUGGING -fp:precise -DWIN32 -D_CONSOLE -DNO_STRICT -DWIN64 -DCONSERVATIVE -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_WINSOCK_DEPRECATED_NO_WARNINGS -D_ALLOW_KEYWORD_MACROS -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DVERSION=\"0.01\" -DXS_VERSION=\"0.01\" "-ID:\701\w\elyeqw6zq8\gen\out\perl-5.28.0-sap7-master-SNAPSHOT-ntamd64-debug-c\lib\CORE" -DWXPL_EXT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE=1 -D_CRT_NON_CONFORMING_SWPRINTFS=1 -D_SCL_SECURE_NO_WARNINGS=1 -D__NO_VC_CRTDBG__ -D__WXMSW__ -DNDEBUG -D_UNICODE -DWXUSINGDLL -D_WINDOWS -DNOPCH -D_CRT_SECURE_NO_DEPRECATE -DWIN32 -D_CRT_SECURE_NO_DEPRECATE=1 -D_CRT_NON_CONFORMING_SWPRINTFS=1 -D_SCL_SECURE_NO_WARNINGS=1 -D__NO_VC_CRTDBG__ -D__WXMSW__ -DNDEBUG -D_UNICODE -DWXUSINGDLL -D_WINDOWS -DNOPCH -D_CRT_SECURE_NO_DEPRECATE -DWXPL_EXT -DWIN32 -D_CRT_SECURE_NO_DEPRECATE=1 -D_CRT_NON_CONFORMING_SWPRINTFS=1 -D_SCL_SECURE_NO_WARNINGS=1 -D__NO_VC_CRTDBG__ -D__WXMSW__ -DNDEBUG -D_UNICODE -DWXUSINGDLL -D_WINDOWS -DNOPCH -D_CRT_SECURE_NO_DEPRECATE PropertyGrid.c
Could you have a look?
T&R
Marc-Philip
Here's the perl -V output of the succeeding Wx build (the failing one is similar except the -D_ALLOW_KEYWORD_MACROS):
Summary of my perl5 (revision 5 version 28 subversion 0) configuration:
Platform:
osname=MSWin32
osvers=6.1.7601
archname=MSWin32-x64-multi-thread
uname=''
config_args='undef'
hint=recommended
useposix=true
d_sigaction=undef
useithreads=define
usemultiplicity=define
use64bitint=define
use64bitall=undef
uselongdouble=undef
usemymalloc=n
default_inc_excludes_dot=define
bincompat5005=undef
Compiler:
cc='cl'
ccflags ='-nologo -GF -W3 -Od -MDd -Zi -D_DEBUG -DDEBUGGING -fp:precise -DWIN32 -D_CONSOLE -DNO_STRICT -DWIN64 -DCONSERVATIVE -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_WINSOCK_DEPRECATED_NO_WARNINGS -D_ALLOW_KEYWORD_MACROS -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS'
optimize='-Od -MDd -Zi -D_DEBUG -DDEBUGGING -fp:precise'
cppflags='-DWIN32'
ccversion='19.14.26431'
gccversion=''
gccosandvers=''
intsize=4
longsize=4
ptrsize=8
doublesize=8
byteorder=12345678
doublekind=3
d_longlong=undef
longlongsize=8
d_longdbl=define
longdblsize=8
longdblkind=0
ivtype='__int64'
ivsize=8
nvtype='double'
nvsize=8
Off_t='__int64'
lseeksize=8
alignbytes=8
prototype=define
Linker and Libraries:
ld='link'
ldflags ='-nologo -nodefaultlib -debug -libpath:"d:\701\w\elyeqw6zq8\gen\out\perl-5.28.0-sap7-master-SNAPSHOT-ntamd64-debug-c\lib\CORE" -machine:AMD64'
libpth="C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.14.26428\\lib\x64"
libs=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 msvcrtd.lib vcruntimed.lib ucrtd.lib
perllibs=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 msvcrtd.lib vcruntimed.lib ucrtd.lib
libc=ucrtd.lib
so=dll
useshrplib=true
libperl=perl528.lib
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_win32.xs
dlext=dll
d_dlsymun=undef
ccdlflags=' '
cccdlflags=' '
lddlflags='-dll -nologo -nodefaultlib -debug -libpath:"d:\701\w\elyeqw6zq8\gen\out\perl-5.28.0-sap7-master-SNAPSHOT-ntamd64-debug-c\lib\CORE" -machine:AMD64'
Characteristics of this binary (from libperl):
Compile-time options:
DEBUGGING
HAS_TIMES
HAVE_INTERP_INTERN
MULTIPLICITY
PERLIO_LAYERS
PERL_COPY_ON_WRITE
PERL_DONT_CREATE_GVSV
PERL_IMPLICIT_CONTEXT
PERL_IMPLICIT_SYS
PERL_MALLOC_WRAP
PERL_OP_PARENT
PERL_PRESERVE_IVUV
PERL_TRACK_MEMPOOL
USE_64_BIT_INT
USE_ITHREADS
USE_LARGE_FILES
USE_LOCALE
USE_LOCALE_COLLATE
USE_LOCALE_CTYPE
USE_LOCALE_NUMERIC
USE_LOCALE_TIME
USE_PERLIO
USE_PERL_ATOF
Built under MSWin32
Compiled at Nov 18 2018 20:38:09
@INC:
C:/SAPDevelop/hmexternals/perl/perl-5.28.0-sap7-master-SNAPSHOT-ntamd64-debug-c/lib