--- mysql_config_win32.pl Thu Jan 24 13:23:47 2008 +++ src/mysql_config_win32.pl Thu Jan 24 13:40:18 2008 @@ -53,7 +53,7 @@ my $client_libs = '-lzlib'; $mysqladmin = Win32::GetShortPathName($mysqladmin); -my $v = qx($mysqladmin -V); +my $v = qx($mysqladmin version); unless ($v) { print STDERR "Problem running $mysqladmin - aborting ...\n"; exit(1);
--- Makefile.PL.orig Sun Jul 3 16:01:18 2005 +++ Makefile.PL Wed Jul 20 23:32:10 2005 @@ -3,7 +3,7 @@ BEGIN { use Config; - if ($] == 5.008 && $ENV{"LANG"} ne "C") { + if ($] == 5.008 && $ENV{"LANG"} ne "C" && $^O ne 'MSWin32') { $ENV{LANG} = "C"; print STDERR "\n\n\n\$ENV{LANG} is not 'C' execing 'perl Makefile.PL'". " with ENV{LANG} == 'C'\n You can skip this check by: 'export ". @@ -50,12 +50,13 @@ my $source = {}; -if ($^O !~ /mswin32/i) { #Check for mysql_config first $source->{'mysql_config'}="guessed"; if ($opt->{'mysql_config'}) - { + { + $opt->{'mysql_config'} = Win32::GetShortPathName($opt->{'mysql_config'}) + if $^O eq 'MSWin32'; if (-f $opt->{'mysql_config'}) { $source->{'mysql_config'} = "Users choice"; @@ -396,7 +397,6 @@ by default the port number is choosen from the mysqlclient library --mysql_config=<path> Specify <path> for mysql_config script - (Not supported on Win32) --nocatchstderr Supress using the "myld" script that redirects STDERR while running the linker. --nofoundrows Change the behavoiur of \$sth->rows() so that it @@ -445,7 +445,6 @@ return; } - if ($^O !~ /mswin32/i) { # First try to get options values from mysql_config my $command = $opt->{'mysql_config'} . " --$param";
perl Makefile.PL --testdb=test --testuser=test -–testpass=test
_mangled__foo = foo
Attached is what should be a fairly complete definition file for the exportable functions in libxslt.dll. I was able to get the library open using Dependency Walker. I think what is causing pexports to blow up here is the way it handles a delay-load dependency call to two libraries which exist on Vista, but not XP. From what I understand, the delay-load allows Windows apps to look for these libs, but not crash if they are not present. This is a guess at best on my part. Never-the-less, the def file was missing ~15 functions because of the failure of pexports. This still does not resolve the undef reference errors when the linker runs. Taking a look at the static lib (*.a) that results from dlltool with vim (I realize it is binary), it differs from the static built by compiling libxslt under cygwin in a number of ways which one might expect from platform differences. However, one of those ways is the inclusion of ___lib_libxslt_a_iname and I'm not sure where this comes from as the def file does not include it nor does the dll afaict. But this same type of reference occurs in libxml.a which was produced by dlltool and XML::LibXML builds just fine. So it may be something with the C sections of XML::LibXSLT. It also appears we have to avoid the pitfall of libxslt.dll bearing a similar name to libXSLT.dll on Win32's case-insensitive file system. The oft repeated suggestion is to rebuild libxslt.dll as libxslt-win32.dll. More fun….
Date: Wed, 09 Jan 2008 01:01:57 +0100
From: Igor Zlatkovic
To: Chris Nighswonger
Subject: Re: libxslt-1.1.22.win32.zip 391294 27.08.2007
On 23/12/07 23:42, Chris Nighswonger wrote:
Hi Igor,
I thought maybe you could help me. When running pexports on
libxslt.dll, pexports crashes near the end of the dll. The resullting
definition file does not contain an entire list of functions from the
dll and therefore converting to a static library is incomplete. I did
not know if there was a problem with the dll or if there is something
else I do not understand going on here.
Kind regards,
Hi Chris,
I don't really know what went wrong. If a program you are using crashed,
then it is certainly an error within that program, since programs should
never crash, no matter what input you give them.
Static linking is an issue, since there are incompatibilities with the
C-runtimes involved. Every compiler version seems to supply its own
runtime incompatible with the others. To counter that, I am playing with
the thought to link exclusively to the OS-supplied runtime which would
mean that there can be no precompiled static libs.
If at all possible, use dynamic linking. If that is not an option, then
build your libraries yourself from the source, it is the safest way.
Ciao,
Igor
Sunday November 18, 2007
12:21 AM “Final” set of C libraries for Strawberry Perl[ 13 Comments | #34917 ]
After wrestling with C libraries, I've come up with the final set of C-related CPAN modules I'll be supporting out the box for Strawberry Perl 5.10.0.
The C libraries are zlib, bzlib2, iconv, libxml2 and SQLite (including CPAN::SQLite).
libxslt crashes pexports.
Tuesday November 13, 2007
07:18 PM Building C modules hurts[ 2 Comments | #34892 ]
Slowly working through the various C elements people have requested.
Compress::Zlib, Compress::Bzip2, XML::LibXML(libxml2+zlib+iconv) are all green. Text::Iconv doesn't build properly, but I'm happy to ignore that for now as I don't think anyone actually needs it specifically, they mostly use iconv via XML::LibXML.
LibXSLT is a bust, because pexports crashes trying to extract the .def file. So I'm skipping it for this release. Anyone that wants to look at pexports is welcome to try to get it working for me.