[GHC] #9056: --make paths are not deduplicated
GHC
ghc-devs at haskell.org
Mon Mar 16 01:04:18 UTC 2015
#9056: --make paths are not deduplicated
-------------------------------------+-------------------------------------
Reporter: evincarofautumn | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Driver | Version: 7.8.2
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
Type of failure: Incorrect | Unknown/Multiple
warning at compile-time | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Revisions:
-------------------------------------+-------------------------------------
Comment (by thomie):
I was working on a patch for this (attached, unfinished), but now don't
think there's actually a bug here. I find the current error message quite
clear, and think that it can be expected from a build system or the user
not to supply the same filename twice. Please do reopen if you disagree,
perhaps as a feature request.
Fwiw: gcc doesn't seem to deduplicate input filenames either, giving a
similar error message.
{{{
$ cat test.c
int main(void) {
return 0;
}
$ gcc test.c test.c
/tmp/ccL0QwIZ.o: In function `main':
test.c:(.text+0x0): multiple definition of `main'
/tmp/ccxMTZBK.o:test.c:(.text+0x0): first defined here
collect2: error: ld returned 1 exit status
}}}
If we do want this:
It is not as simple as just deduplicating filenames. For starters,
comparing paths with (==) returns False for `./foo` and `foo`, so
`System.FilePath.equalFilePaths` should be used. But what about relative
vs absolute paths? What about `Main` and `Main.hs`, are they the same?
What about `Main.lhs` and `Main.hs`?
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9056#comment:2>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list