This is the mail archive of the mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

dllwrap calling dlltool wrong; workaround

Hi folks,

I'm building DBI on cygwin, and have the following problem and workaround.  I looked for this on the list and didn't find it, so here is the bug report.  I'd fix it but I can't figure out which component of cygwin contains dllwrap, so no source.

dlltool: Unable to open object file: and
dllwrap: dlltool exited with status 1
perlld: *** system() failed to execute
dllwrap --dllname DBI.dll --driver-name gcc --dlltool dlltool --export-all-symbols --as as --output-def libDBI.def --output-lib libDBI.a \
-s -L/usr/local/lib DBI.o  /usr/lib/perl5/5.6.1/cygwin-multi/CORE/libperl5_6_1.

This is caused by dllwrap calling dlltool with a temp directory with spaces in it ("c:\Documents and Settings" is in the path, which is where that "and" comes from that dlltool can't open.

The workaround is simple: you redefine the TMP and TEMP environment variables to not have spaces in them.
e.g.: unset TMP;unset TEMP;

 I discovered this by replacing dlltool with a wrapper that reported its arguments, and found that "c:\documents and settings\local~1\Temp\1" was three arguments, not one.

I guess the fix would be for dllwrap to manage its parsing so as to pass the entire directory, with spaces, to dlltool, as one argument.


Unsubscribe info:
Bug reporting:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]