|
[ ghc-Bugs-1256533 ] Recompilation check should include flags: msg#00067lang.haskell.glasgow.bugs
Bugs item #1256533, was opened at 2005-08-11 09:06 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=108032&aid=1256533&group_id=8032 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 3 Submitted By: Simon Peyton Jones (simonpj) Assigned to: Nobody/Anonymous (nobody) Summary: Recompilation check should include flags Initial Comment: GHC skips recompilation of a module if the module code hasn't changed, even if the flags in use *have* changed. A benign version is that switching on -O won't recompile modules that were compiled without -O. But here's a nastier version: changing the -main-is flag can lead to an obscure link error. Details below supplied by Niels [cpjvelde@xxxxxxxx] Simon Actually, i reproduced it now and the reason is a bit different. I have an application Test and Test2. They both have a main function. Test imports Test2 for some other function. So this is how those files look like: ~/pancake > cat Test.hs module Test where import Test2 hiding (main) main = doit ~/pancake > cat Test2.hs module Test2 where doit = print "Test2.doit" main = print "Test2.main" I then first compile the first app: ~/pancake > ghc --make -main-is Test.main Test.hs Chasing modules from: Test.hs Compiling Test2 ( ./Test2.hs, ./Test2.o ) Compiling Test ( Test.hs, Test.o ) Linking ... then i compile the second app: ~/pancake > ghc --make -main-is Test2.main Test2.hs Chasing modules from: Test2.hs Skipping Test2 ( Test2.hs, Test2.o ) Linking ... /usr/lib/ghc-6.4/libHSrts.a(Main.o)(.text+0xe): In function `main': : undefined reference to `__stginit_ZCMain' /usr/lib/ghc-6.4/libHSrts.a(Main.o)(.text+0x28): In function `main': : undefined reference to `ZCMain_main_closure' collect2: ld returned 1 exit status So I guess generating Test2.o the first time and using - main-is renamed the main in Test2.o . Since it is not recompiled when I want to compile the second app, it fails because it cant find the main...I thought providing a -main-is flag again when compiling the second app would somehow force recompilation of Test2.o or at least fixing the 'renaming' that the first compilation of Test2.o had caused. greetings, Niels. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=108032&aid=1256533&group_id=8032
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | [ ghc-Bugs-635718 ] Bad space behaviour with huge input file, SourceForge.net |
|---|---|
| Next by Date: | RE: --make and -main-is still not working together?, Simon Peyton-Jones |
| Previous by Thread: | stdin set to nonblocking mode, John Meacham |
| Next by Thread: | [ ghc-Bugs-1256785 ] Recompilation check should include flags, SourceForge.net |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |