Hi,
You are right, my native language is Russian:) And second is Hebrew :)
From some historical reasons we're using the Cygwin environment. Till now
it was 32-bit version, now I try to
I tried to productize the new 64-bit version, but met with some problems
with perl modules ;(
I downloaded the updated version of the the Win32::Api module. All tests
are passed. But I faced other problem. This fragment of the perl code does
not work now:
*$jtagConnect = new Win32::API('jtagvsdll', 'jtagConnect','I', 'I',
'_cdecl');*
*$jtagDisConnect = new Win32::API('jtagvsdll', 'jtagDisConnect','', 'V');#,
'_cdecl'*
*$JtagReadMem = new Win32::API('jtagvsdll', 'JtagReadMem','NNP','I',
'_cdecl');*
*$JtagWriteMem = new Win32::API('jtagvsdll', 'JtagWriteMem','NNP','I',
'_cdecl');*
*$JtagWriteReg = new Win32::API('jtagvsdll', 'JtagWriteReg','NN','I',
'_cdecl' );*
*$JtagReadReg = new Win32::API('jtagvsdll', 'JtagReadReg','N','N', '_cdecl'
);*
*$JtagRun = new Win32::API('jtagvsdll', 'JtagRun', '', '', '_cdecl' );*
*$JtagStep = new Win32::API('jtagvsdll', 'JtagStep', '', '', '_cdecl' );*
But it works perfect in the Cygwin 32-bit environment , with your module
(releases 72,73,74,75).
Regards,
Eduard
On Mon, Nov 25, 2013 at 6:10 AM, Daniel Dragan via RT <
bug-Win32-API@rt.cpan.org> wrote:
Show quoted text> <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, eduard1963@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.
>
--
Best regards,
Eduard