I don't know if this is necessarily a problem with Christian's setup as it
is with ASPerl. Given that you (Sisyphus) just gave a recipe for fixing it,
list that module in their dependency list and Just Work.
-----Original Message----- From: Christian Walde
However this sounds to me like you thought i was looking for a workaround
Post by Christian Waldeto get it installed in my Perl. That is not the case and i was hoping to
see a patch for PDL itself come out of this so everyone can install it on
64bit activeperl and i can smoke it properly.
But your problems are not indicative of any failing with PDL (or Inline) -
it's your setup that 's at fault and in need of repair.
http://sourceforge.net/apps/**trac/mingw-w64/wiki/Answer%**
2064%20bit%20MSVC-generated%**20x64%20.lib<http://sourceforge.net/apps/trac/mingw-w64/wiki/Answer%2064%20bit%20MSVC-generated%20x64%20.lib>
.
##############################**##
Why crashes my 64 bit program when using a MSVC-generate x64 *.lib file?
Linking using an MSVC-generated x64 *.lib file is _not_ supported. Yes the
x86 variant is supported but x64 is not, and yes binutils will be silent
and link but will output an all wrong binary.
[snip]
If you generate a binutils-compatbile *.a file by using gendef on the dll
gendef wpcap.dll
dlltool --as-flags=--64 -m i386:x86-64 -k --output-lib libwpcap.a
--input-def wpcap.def ... then things will work.
##############################**##
You're currently linking to "an MSVC-generated x64 *.lib file" (namely,
ActivePerl's lib/CORE/perl516.lib) ... and, as it says in the above faq
entry "this is _not_ supported". (It *is* supported for 32-bit compilers,
but not for 64-bit compilers.)
gendef perl516.dll
(which will create perl516.def)
dlltool --as-flags=--64 -m i386:x86-64 -k --output-lib libperl516.a
--input-def perl516.def
(which will create libperl516.a ... which is suitable for your linker.)
Then move the generated 'libperl516.a' from your perl/bin folder to your
perl/lib/CORE/ folder (same location as perl516.lib).
Then, in ActivePerl/Config.pm, you need to override "libperl" to
"libperl516.a".
This is the same as how we overrode "ivtype" to "long long".
Firstly add "libperl" to that %COMPILER_ENV list near the beginning of the
file.
Then add the override libperl immediately below the ivtype override ... so
..........
_override("d_casti32", "define");
_override("ivtype", "long long");
_override("libperl", "libperl516.a");
Check that 'perl -V:libperl' reports 'libperl516.a'.
Then you should be right to go ... and all tests should pass for PDL (and
Inline) .
Sorry - I should have taken the time to elaborate this in my previous post.
Cheers,
Rob
______________________________**_________________
PDL-porters mailing list
http://mailman.jach.hawaii.**edu/mailman/listinfo/pdl-**porters<http://mailman.jach.hawaii.edu/mailman/listinfo/pdl-porters>