#2190: unionBuildInfo should not always use nub
-----------------------------------+----------------------------------------
    Reporter:  prj                 |       Owner:                   
        Type:  bug                 |      Status:  new              
    Priority:  normal              |   Component:  libraries (other)
     Version:  6.8.2               |    Severity:  normal           
    Keywords:  unionBuildInfo nub  |    Testcase:                   
Architecture:  Multiple            |          Os:  Multiple         
-----------------------------------+----------------------------------------
 In libraries/Cabal/Distribution/PackageDescription.hs, the unionBuildInfo
 function combines, for example, ldOptions from two BuildInfos, using nub
 to eliminate duplicate arguments.  This is wrong for ldOptions and some
 other elements.  For example, if ldOptions contains:

 {{{-Xlinker -R -Xlinker /dir1 -Xlinker -R -Xlinker /dir2}}}

 Then the nubbed result is:

 {{{-Xlinker -R /dir1 /dir2}}}

 which doesn't work at all.  There may be some redundancy that could be
 eliminated, but for arguments passed to external programs, it can only be
 done safely by understanding the semantics of the arguments.  Similarly
 for extraLibs, {{{-lfoo -lbar -lfoo}}} may be necessary if {{{libfoo}}}
 and {{{libbar}}} reference each other's symbols.

 Using nub is wrong for at least cppOptions, ccOptions, ldOptions, and
 extraLibs.  But I think it is necessary for some other BuildInfo
 components, like hsSourceDirs, so it can't be removed completely; that
 results in an error while building GHC:

 {{{
 Preprocessing library unix-2.3.0.0...
 Generating Makefile unix-2.3.0.0...
 Setup: makefile: can't cope with multiple hs-source-dirs yet, sorry
 }}}

 So {{{combine}}} could take an extra arguments, which would be nub in some
 cases or id in others.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/2190>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to