Summary: compiling with -op -od and using absolute paths for
                    source files make dmd write object files anywhere
           Product: D
           Version: 1.057
          Platform: Other
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD

--- Comment #0 from 2010-04-15 17:53:13 PDT ---
When passing absolute paths to dmd, compiling with -op and -od will make dmd
write the object file into the same directory as the source file. But it really
should write somewhere inside the directory passed by -od.

cd /tmp/x/
dmd -op -od/tmp/x/ /tmp/test/foo.d
# dmd creates /tmp/test/foo.o
# it really should crate it somewhere under /tmp/x/
# (maybe /tmp/x/tmp/test/foo.o ?)

This makes -op and -od utterly useless for build scripts or any other advanced
use. Actually, it makes dmd look like dirtying include directories, and you
have to manually clean up them.

What is the point of -od, when dmd decides to write the object files somewhere
else anyway? It doesn't make any sense, thus it must be a bug.

Note that build scripts can not use -od without -op: modules with same name
(but different packages) will map to the same filename. E.g. modules and will both map to foo.o, and dmd will simply overwrite one of these files,
leading to missing symbols in the linker stage.

Configure issuemail:
------- You are receiving this mail because: -------

Reply via email to