D issues are now tracked on GitHub. This Bugzilla instance remains as a read-only archive.

Issue 4973

Summary: map file with spaces in file name passed without quotes to linker
Product: D Reporter: Rainer Schuetze <r.sagitario>
Component: dmdAssignee: No Owner <nobody>
Status: RESOLVED FIXED
Severity: normal CC: bugzilla
Priority: P2 Keywords: link-failure, patch
Version: D2
Hardware: Other
OS: Windows

Description Rainer Schuetze 2010年10月02日 00:15:31 UTC
Specifying a map file to dmd that contains spaces like this
 dmd test.d -map "a b.map" -v
produces
binary c:\l\dmd-2.048\windows\bin\dmd.exe
version v2.048
[...]
c:\l\dmd-2.048\windows\bin\link.exe test,,a b.map,user32+kernel32/m/noi;
OPTLINK (R) for Win32 Release 8.00.2
Copyright (C) Digital Mars 1989-2009 All rights reserved.
http://www.digitalmars.com/ctg/optlink.html
user32.def(0) : Error 2: File Not Found user32.def
--- errorlevel 1
showing that the map file name is not quoted.
Here's the patch:
Index: link.c
===================================================================
--- link.c	(revision 701)
+++ link.c	(working copy)
@@ -116,7 +116,7 @@
 
 cmdbuf.writeByte(',');
 if (global.params.mapfile)
- cmdbuf.writestring(global.params.mapfile);
+ writeFilename(&cmdbuf, global.params.mapfile);
 else if (global.params.run)
 cmdbuf.writestring("nul");
 cmdbuf.writeByte(',');

AltStyle によって変換されたページ (->オリジナル) /