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: eduard1...@gmail.com
      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, eduard1...@gmail.com 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.

Reply via email to