2009/7/14 <[email protected]>:
> Can't figure out where exactly it's coming from. Environmental perhaps?
> Is there a magic export to save the day?
>
> Here's the make error:
> gcc -shared -o par.dll -Wl,--out-implib=libpar.dll.a
> -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--stack,8388608
> -Wl,--enable-auto-image-base \
> main.o my_par_pl.o win32.coff -s -s -s -L/usr/local/lib
> /usr/lib/perl5/5.8/cygwin/auto/DynaLoader/DynaLoader.a
> /usr/lib/perl5/5.8/cygwin/auto/Win32CORE/Win32CORE.a
> -L/usr/lib/perl5/5.8/cygwin/CORE -lperl -ldl
> -lcrypt -lgdbm_compat
>
> Creating library file: libpar.dll.a
There is the error: mv to ./ will fail. There is some dir missing
> mv par.dll libpar.dll.a ./
> mv: `par.dll' and `./par.dll' are the same file
> mv: `libpar.dll.a' and `./libpar.dll.a' are the same file
> perlld: *** system() failed to execute
> mv par.dll libpar.dll.a ./
This happens at
if ($path) {
$command ="mv $dllname";
$command .=" $libname.dll$LIB_EXT" if $LIB_EXT;
shellexec("$command $path\n");
};
As you see $path is ./ and ./ is invalid.
Wher is this coming from:
# Check for path:
if( $dllname =~ /.*[\/\\]/){
$dllname = $';
$path = $&;
$path =~ s,[/\\](\.[/\\])*,/,g;
}
so path is the dirname of the given dll.
do not use "-o ./par.dll", just "-o par.dll"
I (as cygwin's perl maintainer) have fixed the perlld nonsense with the
current perl5.10 releases.
So best is to try the current perl.
---
Reini Urban
http://phpwiki.org/ http://murbreak.at/