www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 793] New: OBJ file names conflict => linker error

reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=793

           Summary: OBJ file names conflict => linker error
           Product: D
           Version: 1.00
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla digitalmars.com
        ReportedBy: nick.atamas gmail.com


.obj files conflict when I use the -od flag to redirect
intermediate output to a directory. Shouldn't obj files get the name of their
package? So, sdl.timer.obj instead of just timer.obj.

e.g.

c:\proj> bud -odbin src/main.d
[proj]
  |--[bin]
  \--[src]
      |--[A]
      |  \--Timer.d
      |
      |--[sdl]
      |   \--timer.d
      |
      \--main.d  #imports and uses both timers


This will cause a linker error because bin/Timer.obj will be overwritten by
bin/timer.obj.

Problem experienced on Windows. Should exist on all other OSes.


-- 
Jan 04 2007
next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=793


bugzilla digitalmars.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |INVALID





This is working as designed. When you specify an output directory, that's where
the output files should go.


-- 
Jan 04 2007
prev sibling parent reply Sean Kelly <sean f4.ca> writes:
d-bugmail puremagic.com wrote:
 ..obj files conflict when I use the -od flag to redirect
 intermediate output to a directory. Shouldn't obj files get the name of their
 package? So, sdl.timer.obj instead of just timer.obj.
 
 e.g.
 
 c:\proj> bud -odbin src/main.d
Try adding the -op option as well. This should preserve directory structure in bin. To link you'll have to perform a recursive search in bin for object files.
Jan 04 2007
parent Nick Atamas <nick.atamas gmail.com> writes:
Adding -op seems to do nothing when used with Bud.
When using dmd directly, using -op does fix the problem.

I guess this issue should be raised with in Bud.
Jan 04 2007