#3892: some libraries work with runghc but not ghc
--------------------------+-------------------------------------------------
    Reporter:  dougbrown  |       Owner:                           
        Type:  bug        |      Status:  new                      
    Priority:  normal     |   Component:  Compiler                 
     Version:  6.10.4     |    Keywords:                           
          Os:  MacOS X    |    Testcase:                           
Architecture:  x86        |     Failure:  GHC rejects valid program
--------------------------+-------------------------------------------------
 Symptom:

 Code using some libraries (e.g. array, complex, list) works
 interpretted (runghc) and compiled (ghc).  Code using some other
 libraries (e.g. graph, intset, map, set, tree) works interpretted,
 but has undefined symbols when compiled with ghc.

 ghc and platform are installed on a mac mini running snow leopard
 from haskell-platform-2009.2.0.2-i386.dmg.

 -optc-m32 -opta-m32 -optl-m32 are inserted into
 /Library/Frameworks/GHC.framework/Versions/Current/usr/bin/ghc-6.10.4.


 Example working:

 > cat testarray.hs
 import Data.Array
 main :: IO ()
 main = do
         putStrLn $ show $ array (1,3) [(1,"one"),(2,"two"),(3,"three")]
 > runghc testarray.hs
 array (1,3) [(1,"one"),(2,"two"),(3,"three")]
 > ghc testarray.hs
 > ./a.out
 array (1,3) [(1,"one"),(2,"two"),(3,"three")]

 Example failure:

 > cat testset.hs
 import Data.Set as Set
 main :: IO ()
 main = do
         putStrLn $ show $ Set.fromList [3..5]
 > runghc testset.hs
 fromList [3,4,5]
 > ghc testset.hs
 Undefined symbols:
   "_containerszm0zi2zi0zi1_DataziSet_fromList_closure", referenced from:
       _rBM_info in testset.o
       _rBM_srt in testset.o
   "_containerszm0zi2zi0zi1_DataziSet_zdf3_closure", referenced from:
       _rBK_info in testset.o
       _rBK_srt in testset.o
   "___stginit_containerszm0zi2zi0zi1_DataziSet_", referenced from:
       ___stginit_Main_ in testset.o
 ld: symbol(s) not found
 collect2: ld returned 1 exit status

 Some other info:

 ghc -v shows it loading these libraries:

 -L/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.4
 
-L/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.4/array-0.2.0.0
 
-L/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.4/base-4.1.0.0
 
-L/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.4/directory-1.0.0.3
 
-L/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.4/filepath-1.1.0.2
 -L/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.4/ghc-
 prim-0.1.0.0
 
-L/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.4/haskell98-1.0.1.0
 
-L/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.4/integer-0.1.0.1
 -L/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.4/old-
 locale-1.0.0.1
 -L/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.4/old-
 time-1.0.0.2
 
-L/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.4/process-1.0.1.1
 
-L/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.4/random-1.0.0.1
 -L/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.4/syb-0.1.0.1
 
-L/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.4/unix-2.3.2.0

 Now we're getting outside my area of expertise...

 It looks to me like the working libraries are in array and base,
 which ARE loaded by ghc, and the failing libraries are in
 
/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.4/containers-0.2.0.1
 which is NOT loaded by ghc.

 I tried to work around it with
 ghc
 
-L/Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.4/containers-0.2.0.1
 testset.hs
 and it did NOT work.

 It looks to me like all the .a files contain code for the correct
 architecture.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/3892>
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