This is the mail archive of the
cygwin@cygwin.com
mailing list for the Cygwin project.
dllwrap calling dlltool wrong; workaround
- From: "Dave Hildebrandt" <dave dot hildebrandt at plumtree dot com>
- To: <cygwin at cygwin dot com>
- Date: Fri, 21 Jun 2002 17:24:23 -0700
- Subject: 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.
Best,
-dave
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/