Sun Nov 24 23:10:08 2013: Request 90597 was acted upon.
Transaction: Correspondence added by BULKDD
Queue: Win32-API
Subject: module Win::API (0.75) installation failed
Broken in: (no value)
Severity: (no value)
Owner: Nobody
Requestors: [email protected]
Status: open
Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=90597 >
Since you are not a native english speaker (Google говорит вы пишит на русском
языке), I will use simpler language from now on.
On Sun Nov 24 04:29:07 2013, [email protected] wrote:
> perl -V
> Summary of my perl5 (revision 5 version 14 subversion 4) configuration:
>
> Platform:
> osname=cygwin, osvers=1.7.18(0.26353), archname=cygwin-thread-multi
> uname='cygwin_nt-6.1 yaakov04 1.7.18(0.26353) 2013-03-07 19:25 x86_64
> cygwin '
> config_args='-d -e -Dprefix=/usr -Dmksymlinks -Dusethreads
> -Darchname=x86_64-cygwin-threads -Dlibperl=cygperl5_14.dll -Dcc=gcc
> -Dld=g++'
> hint=recommended, useposix=true, d_sigaction=define
> useithreads=define, usemultiplicity=define
> useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
> use64bitint=define, use64bitall=define, uselongdouble=undef
> usemymalloc=n, bincompat5005=undef
> Compiler:
> cc='gcc', ccflags ='-DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__
> -fno-strict-aliasing -pipe -fstack-protector',
> optimize='-O3',
> cppflags='-DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -fno-strict-aliasing
> -pipe -fstack-protector'
> ccversion='', gccversion='4.8.0 20130307 (experimental)',
> gccosandvers=''
> intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
> d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
> ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t',
> lseeksize=8
> alignbytes=8, prototype=define
> Linker and Libraries:
> ld='g++', ldflags =' -Wl,--enable-auto-import -Wl,--export-all-symbols
> -Wl,--enable-auto-image-base -fstack-protector'
> libpth=/usr/lib /lib
> libs=-lgdbm -ldb -ldl -lcrypt -lgdbm_compat
> perllibs=-ldl -lcrypt
> libc=/usr/lib/libc.a, so=dll, useshrplib=true, libperl=cygperl5_14.dll
> gnulibc_version=''
> Dynamic Linking:
> dlsrc=dl_dlopen.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' '
> cccdlflags=' ', lddlflags=' --shared -Wl,--enable-auto-import
> -Wl,--export-all-symbols -Wl,--enable-auto-image-base -fstack-protector'
>
>
> Characteristics of this binary (from libperl):
> Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV
> PERL_IMPLICIT_CONTEXT PERL_PRESERVE_IVUV
> PERL_USE_SAFE_PUTENV USE_64_BIT_ALL USE_64_BIT_INT
> USE_ITHREADS USE_LARGE_FILES USE_PERLIO
> USE_PERL_ATOF
> USE_REENTRANT_API
> Locally applied patches:
> Bug#55162 File::Spec::case_tolerant performance
> CYG07 $vendorarch/auto/.rebase
> CYG15 static Win32CORE
> CYG17 cyg-1.7 paths-utf8
> 0c612ce82 Fix building static extensions on cygwin, -UUSEIMPORTLIB
> 1bac5ecc1 Fix 64-bit threading sv.c: S_anonymise_cv_maybe
> Cygwin::sync_winenv added
> Built under cygwin
> Compiled at Mar 11 2013 18:25:23
> @INC:
> /usr/lib/perl5/site_perl/5.14/x86_64-cygwin-threads
> /usr/lib/perl5/site_perl/5.14
> /usr/lib/perl5/vendor_perl/5.14/x86_64-cygwin-threads
> /usr/lib/perl5/vendor_perl/5.14
> /usr/lib/perl5/5.14/x86_64-cygwin-threads
> /usr/lib/perl5/5.14
>
> ./Callback/t/02_Callback.t
> use: Command not found.
> use: Command not found.
> use: Command not found.
> Badly placed ()'s.
I did not see the above "use: Command not found" myself.
>
> ./Callback/t/03_Jim_Shaw.t
> 1..6
> ok 1 - use Win32::API;
> ok 2 - use Win32::API::Callback;
> ok 3 - use Win32::API::Test;
> ok 4 - loaded
> get_window_pids: Desktop hwnd: 6555
> Illegal instruction (core dumped)
>
> the dump file attached
>
The dump file is useless. It does not include a C callstack.
I see you are using 64 bit Cygwin. This is a new product I have never used
before, and Win32::API has never been tested on before. To go back and forth
with you to solve all crashes will take a dozen or more posts and very many
days. Instead I downloaded Cygwin 64 bit. I found and fixed many small problems
in WIn32::API to make Cygwin 64 bit work, (see
https://github.com/bulk88/perl5-win32-api/commit/57a4457011b915c8581bb84e47664eb3ec4c0183
). Win32::API::Callback first failed because 32 or 64 bit detection code was
less than perfect. This caused Win32::API::Callback to create 32 bit machine
code at runtime instead of 64 bit machine code. Callback's return value (42 vs
0 test fail) problem was new -fstack-protector option, which corrupted RAX
register in function Stage2CallbackX64.
Another problem was native Win32 Perl, with Visual C or Mingw, when compiling
64 bit, Perl's authors define "WIN64" macro. WIN64 is not a Microsoft macro.
Cygwin Perl does not define WIN64, only Microsoft's _WIN64 macro. This caused
junk parameters to be passed to Call_asm function, which causes SEGV in all
Win32::API (note, not Win32::API::Callback) calls to C functions.
I made new release of Win32::API with Cygwin 64 fixes, version 0.76_05, it on
CPAN at http://search.cpan.org/~bulkdd/Win32-API/ . Please try it and report if
it passes tests without failure.