#1978: Error message: Undefined reference to `XXX_closure'
-------------------------+--------------------------------------------------
    Reporter:  Andriy    |       Owner:       
        Type:  bug       |      Status:  new  
    Priority:  normal    |   Milestone:       
   Component:  Compiler  |     Version:  6.6  
    Severity:  major     |    Keywords:       
  Difficulty:  Unknown   |    Testcase:       
Architecture:  x86       |          Os:  Linux
-------------------------+--------------------------------------------------
 When I try to compile the following test case:
 {{{
 import System.IO
 import Text.XML.HXT.Arrow

 main = do
  runX $ application

 application =
  readDocument [(a_validate, v_0)] "url"
    >>> generateItemsXml
    -- >>. takeLast
    >>. \t -> [last t]
    >>> getErrStatus
  where
    takeLast xs = [last xs]

 generateItemsXml = root [] []
 }}}
 the compilation fails because of the line ">>. \t -> [last t]". If I
 extract this line into a separate function (here takeLast) or take it into
 parentheses, the compilation proceeds.
 For this test case compilation actually fails later with more sensible
 error message, but the original full program compiles after this fix
 successfully. I can provide the full program if necessary. It is not very
 big. Contact me at c at hlsoft com.

 The GHC compilation failure is:

 {{{
 ~/prj/pubStats$ ./run.sh
 [123 of 123] Compiling Main             ( src/testGhc.hs, src/testGhc.o )
 Linking src/testGhc ...
 src/testGhc.o: In function `Main_lvl3_info':
 ghc26321_0.hc:(.text+0x166): undefined reference to
 `Main_application_closure'
 src/testGhc.o:(.rodata+0x10): undefined reference to
 `Main_application_closure'
 collect2: ld returned 1 exit status
 }}}

 The GHCi fails with following message:

 {{{
 During interactive linking, GHCi couldn't find the following symbol:
  Main_application_closure
 This may be due to you not asking GHCi to load extra object files,
 archives or DLLs needed by your current session.  Restart GHCi, specifying
 the missing library using the -L/path/to/object/dir and -lmissinglibname
 flags, or simply by naming the relevant files on the GHCi command line.
 Alternatively, this link failure might indicate a bug in GHCi.
 If you suspect the latter, please send a bug report to:
  [email protected]
 }}}

 The GHC version:
 "The Glorious Glasgow Haskell Compilation System, version 6.6" on Ubuntu
 Linux 7.04. Currently I don't have time to try to reproduce the problem on
 the latest version of the compiler.

 I compile my program with the HXT library using the following command:

 {{{
 ghc --make -O -fglasgow-exts -farrows -iinc src/testGhc.hs
 }}}

 where the inc directory contains the HXT library.
 Sorry if it is not a bug, or it is already fixed. I could not decide
 whether other occurrences of this error indicate the same problem. Decided
 that submitting an invalid bug is better than missing it completely.

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