--make and -make-is

Simon Peyton-Jones simonpj at microsoft.com
Fri Mar 18 06:52:04 EST 2005


Yes; same issue. I've added a note to the documentation of -main-is:

>>>existing stuff
            Strictly speaking, <option>-main-is</option> is not a
link-phase flag at all; it has no effect on the link step.
            The flag must be specified when compiling the module
containing the specified main function (e.g. module <literal>A</literal>
            in the latter two items above).  It has no effect for other
modules,
            and hence can safely be given to <literal>ghc
--make</literal>.

>>>new stuff starts here:
	    However, if all the modules are otherwise up to date, you
may need to force
	    recompilation both of the module where the new "main" is,
and of the
	    module where the "main" function used to be;
	    <literal>ghc</literal> is not clever 
	    enough to figure out that they both need recompiling.  You
can
	    force recompilation by removing the object file, or by using
the
	    <option>-no-recomp</option> flag.

| -----Original Message-----
| From: glasgow-haskell-bugs-bounces at haskell.org
[mailto:glasgow-haskell-bugs-
| bounces at haskell.org] On Behalf Of Kristofer Johannisson
| Sent: 17 March 2005 22:58
| To: glasgow-haskell-bugs at haskell.org
| Subject: --make and -make-is
| 
| Running GHC 6.4 on Mac OS X 10.3.8.
| 
| I have problems using --make and -make-is, which seem to be related to
| bug "[ 935792 ] --make and -main-is don't work together". The shell
| transcript below illustrates the problem.
| 
| / Kristofer Johannisson
| 
| 
| 
| prompt$ ls
| A.hs
| prompt$ more A.hs
| module A where
| 
| main = putStrLn "hello world"
| 
| prompt$ ghc --make A.hs
| Chasing modules from: A.hs
| Compiling A                ( A.hs, A.o )
| prompt$ ls
| A.hi    A.hs    A.o
| prompt$ ghc -main-is A --make A.hs
| Chasing modules from: A.hs
| Skipping  A                ( A.hs, A.o )
| Linking ...
| ld: Undefined symbols:
| _ZCMain_main_closure
| ___stginit_ZCMain
| prompt$ rm -f A.o
| prompt$ ghc -main-is A --make A.hs
| Chasing modules from: A.hs
| Compiling A                ( A.hs, A.o )
| Linking ...
| prompt$ ./a.out
| hello world
| 
| _______________________________________________
| Glasgow-haskell-bugs mailing list
| Glasgow-haskell-bugs at haskell.org
| http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs



More information about the Glasgow-haskell-bugs mailing list