Subject: Win32::GUI v1.14 - GUI.c: loadable library and perl binaries are mismatched (during dmake test)
This is a bug report for perl from gregg@bigpond.net.au,
generated with the help of perlbug 1.40 running under perl 5.26.1.
Building Win32-GUI-1.14
I have tried both -MConfig & as below Config_mO both result in the same error message
perl -Ibuild_tools -MConfig_mO Makefile.PL USERESOURCE=0
package Config_m;
require ExtUtils::FakeConfig;
my $values = <<'EOT';
cc='gcc'
ccname='gcc'
ccflags='-O2 -DWIN32 -DPERL_IMPLICIT_CONTEXT -DPERL_MSVCRT_READFIX'
cccdlflags='-DHASATTRIBUTE'
libpth='"(CC)\lib" "(CC)\i386-mingw32msvc\lib"'
libs=' -lmsvcrt -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lwsock32 -lmpr -lwinmm -lversion -lodbc32'
_a='.a'
_o='.o'
ar='ar'
cpp='gcc -E'
cppminus='-'
cpprun='gcc -E'
cppstdin='gcc -E'
d_attribut='define'
d_casti32='define'
i64type='long long'
ld='g++'
lddlflags='-s -mdll -L"(PERL)\lib\CORE"'
ldflags='-s -L"(PERL)\lib\CORE"'
lib_ext='.a'
libc='-lmsvcrt'
libperl='libperl526.a'
longdblsize='12'
lseektype='long long'
make='(MAKE)'
nm='nm'
obj_ext='.o'
optimize='-O2'
perlpath='(PERL)\bin\perl.exe'
perllibs=' -lmsvcrt -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lwsock32 -lmpr -lwinmm -lversion -lodbc32'
quadtype='long long'
u64type='unsigned long long'
uquadtype='unsigned long long'
EOT
my $cc_p = ( ExtUtils::FakeConfig::find_program( 'gcc' ) )[0];
$cc_p || warn "Unable to find compiler 'gcc'";
$cc_p =~ s/[\\/]bin[\\/]?$//;
my $nmake = ( ExtUtils::FakeConfig::find_program( 'nmake' ) )[1];
my $dmake = ( ExtUtils::FakeConfig::find_program( 'dmake' ) )[1];
my %values = ( CC => $cc_p,
PERL => $Config::Config{prefix},
MAKE => $nmake || $dmake,
);
$values =~ s/((\w+))/$values{$1}/ge;
my @arr = $values =~ m/^(\w+)\=\'\"[\'\"]$/mg;
eval 'use ExtUtils::FakeConfig @arr';
1;
dmake test
"C:\Perl\bin\perl.exe" -MExtUtils::Command::MM -e cp_nonempty -- GUI.bs blib\arch\auto\Win32\GUI\GUI.bs 644
"C:\Perl\bin\perl.exe" -MExtUtils::Command::MM -e cp_nonempty -- Constants.bs ..\blib\arch\auto\Win32\GUI\Constants\Constants.bs 644
dmake.exe: Warning: -- Found file corresponding to virtual target [phash.def].
"C:\Perl\bin\perl.exe" "C:\Perl\lib\ExtUtils\xsubpp" -typemap C:\Perl\lib\ExtUtils\typemap Constants.xs > Constants.xsc
"C:\Perl\bin\perl.exe" -MExtUtils::Command -e mv -- Constants.xsc Constants.c
gcc -c -DWIN32 -DPERL_IMPLICIT_CONTEXT -DPERL_MSVCRT_READFIX -Wno-write-strings -Os -DVERSION=\"0.04\" -DXS_VERSION=\"0.04\" -DHASATTRIBUTE "-IC:\Perl\lib\CORE" Constants.c
g++ Constants.def -o ..\blib\arch\auto\Win32\GUI\Constants\Constants.dll -s -mdll -L"C:\Perl\lib\CORE" -s Constants.o Constants.res "C:\Perl\lib\CORE\libperl526.a" -lmsvcrt -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lwsock32 -lmpr -lwinmm -lversion -lodbc32 -Wl,--enable-auto-image-base
"C:\Perl\bin\perl.exe" -MExtUtils::Command -e chmod -- 755 ..\blib\arch\auto\Win32\GUI\Constants\Constants.dll
"C:\Perl\bin\perl.exe" -MExtUtils::Command::MM -e cp_nonempty -- DropFiles.bs ..\blib\arch\auto\Win32\GUI\DropFiles\DropFiles.bs 644
"C:\Perl\bin\perl.exe" -MExtUtils::Command::MM -e cp_nonempty -- Scintilla.bs ..\blib\arch\auto\Win32\GUI\Scintilla\Scintilla.bs 644
"C:\Perl\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef Test::Harness::Switches; test_harness(0, '..\blib\lib', '..\blib\arch')" t/.t
t/01_load.t .......... 1/3 GUI.c: loadable library and perl binaries are mismatched (got handshake key 0000000011800080, needed 0000000011C00080)
t/01_load.t .......... Dubious, test returned 1 (wstat 256, 0x100)
Failed 2/3 subtests
t/02_public_api.t .... GUI.c: loadable library and perl binaries are mismatched (got handshake key 0000000011800080, needed 0000000011C00080)
t/02_public_api.t .... Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests
Flags:
category=install
severity=high
Site configuration information for perl 5.26.1:
Summary of my perl5 (revision 5 version 26 subversion 1) configuration:
Platform:
osname=MSWin32
osvers=6.1
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='c:\Perl\site\bin\gcc.exe'
ccflags =' -s -O2 -DWIN32 -DWIN64 -DCONSERVATIVE -DPERL_TEXTMODE_SCRIPTS -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fwrapv -fno-strict-aliasing -mms-bitfields'
optimize='-s -O2'
cppflags='-DWIN32'
ccversion=''
gccversion='4.6.3'
gccosandvers=''
intsize=4
longsize=4
ptrsize=8
doublesize=8
byteorder=12345678
doublekind=3
d_longlong=define
longlongsize=8
d_longdbl=define
longdblsize=16
longdblkind=3
ivtype='long long'
ivsize=8
nvtype='double'
nvsize=8
Off_t='long long'
lseeksize=8
alignbytes=8
prototype=define
Linker and Libraries:
ld='c:\Perl\site\bin\g++.exe'
ldflags ='-s -static-libgcc -static-libstdc++ -L"C:\Perl\lib\CORE" -L"C:\MinGW\x86_64-w64-mingw32\lib"'
libpth=C:\MinGW\x86_64-w64-mingw32\lib
libs=-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32
perllibs=-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32
libc=
so=dll
useshrplib=true
libperl=libperl526.a
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_win32.xs
dlext=dll
d_dlsymun=undef
ccdlflags=' '
cccdlflags=' '
lddlflags='-mdll -s -static-libgcc -static-libstdc++ -L"C:\Perl\lib\CORE" -L"C:\MinGW\x86_64-w64-mingw32\lib"'
Locally applied patches:
ActivePerl Build 2601 [404865]
@INC for perl 5.26.1:
c:/Perl/site/lib
c:/Perl/lib
Environment for perl 5.26.1:
HOME (unset)
LANG (unset)
LANGUAGE (unset)
LD_LIBRARY_PATH (unset)
LOGDIR (unset)
PATH=C:\ProgramData\Oracle\Java\javapath;C:\IBM\ITM\InstallITM;c:\Perl\site\bin;c:\Perl\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Microsoft SQL Server\130\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn\ManagementStudio\;C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\;C:\IBM\ITM\bin;C:\IBM\ITM\TMAITM6;C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\140\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio\;C:\Program Files (x86)\WinMerge;C:\Program Files\Git\cmd;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Users\greg.george\AppData\Local\Microsoft\WindowsApps;;C:\Perl\site\lib\auto\MinGW\bin
PERL_BADLANG (unset)
SHELL (unset)