[dmd-internals] "Previous Definition Different" w/ array ops

Jason House jason.james.house at gmail.com
Tue Feb 15 09:07:13 PST 2011


The complete linker error with mangled symbol name and the candidate code generating the symbol in the first place is probably enough. At one point, I posted an error message, and Don was able to infer everything else without seeing a line of my code. That might not be the case here, but it's probably the bulk of the needed info.

Sent from my iPhone

On Feb 15, 2011, at 11:33 AM, David Simcha <dsimcha at gmail.com> wrote:

> Whenever I use array ops in multi-module projects, I always seem to run into "Previous definition different" linker errors.  This seems to occur when I call the same array op using library function from multiple modules in the same project.  Moving things around to different modules and recompiling always seems to solve them at the expense of uglifying my code.  Unfortunately, this is one of those frustrating bugs that only seems to occur on real-world code, i.e. code that has multiple modules, lots of indirection, libraries, etc.  I can't for the life of me come up with a reduced test case.
> 
> Has anyone else been experiencing similar issues?  Alternatively, can someone with a better mental model of how things work at the binary level please suggest how this bug might be reproduced in a test case that's less than 20 thousand lines of code?  (I find linker bugs very difficult to isolate and file bug reports on because I have no mental model of how things work at that low a level.  My mental model basically only goes down to assembly language, not the process of turning a pile of assembly language files into a working executable or shared library.)
> _______________________________________________
> dmd-internals mailing list
> dmd-internals at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/dmd-internals


More information about the dmd-internals mailing list