#5428: Creating executable in OS X Lion
----------------------------------------+-----------------------------------
    Reporter:  sweirich                 |        Owner:                         
  
        Type:  bug                      |       Status:  new                    
  
    Priority:  normal                   |    Milestone:                         
  
   Component:  Compiler                 |      Version:  7.0.3                  
  
    Keywords:  linking main executable  |     Testcase:                         
  
   Blockedby:                           |   Difficulty:                         
  
          Os:  MacOS X                  |     Blocking:                         
  
Architecture:  x86_64 (amd64)           |      Failure:  GHC rejects valid 
program
----------------------------------------+-----------------------------------

Old description:

> Can't seem to create an executable when the module is not named "Main"
>
> For example:
>
> sweirich$ ghc --make lec1.lhs -o hello -main-is Lec1
> Linking hello ...
> ld: warning: could not create compact unwind for _ffi_call_unix64: does
> not use RBP or RSP based frame
> Undefined symbols for architecture x86_64:
>   "_ZCMain_main_closure", referenced from:
>       _main in libHSrtsmain.a(Main.o)
>   "___stginit_ZCMain", referenced from:
>       _main in libHSrtsmain.a(Main.o)
> ld: symbol(s) not found for architecture x86_64
> collect2: ld returned 1 exit status
> sweirich$
>
> on the other hand, if I rename the file 'Main.lhs' and edit the
> module name to 'Main' then everything works correctly.
>

> sweirich$ ghc --make Main.lhs
> [1 of 1] Compiling Main             ( Main.lhs, Main.o )
> Linking Main ...
> ld: warning: could not create compact unwind for _ffi_call_unix64: does
> not use RBP or RSP based frame
> ld: warning: PIE disabled. Absolute addressing (perhaps -mdynamic-no-pic)
> not allowed in code signed PIE, but used in ___gmpn_modexact_1c_odd from
> /Library/Frameworks/GHC.framework/Versions/7.0.3-x86_64/usr/lib/ghc-7.0.3
> /integer-gmp-0.2.0.3/libHSinteger-gmp-0.2.0.3.a(mode1o.o). To fix this
> warning, don't compile with -mdynamic-no-pic or link with -Wl,-no_pie
> sweirich$ ./Main
> Hello World!

New description:

 Can't seem to create an executable when the module is not named "Main"

 For example:

 {{{
 sweirich$ ghc --make lec1.lhs -o hello -main-is Lec1
 Linking hello ...
 ld: warning: could not create compact unwind for _ffi_call_unix64: does
 not use RBP or RSP based frame
 Undefined symbols for architecture x86_64:
   "_ZCMain_main_closure", referenced from:
       _main in libHSrtsmain.a(Main.o)
   "___stginit_ZCMain", referenced from:
       _main in libHSrtsmain.a(Main.o)
 ld: symbol(s) not found for architecture x86_64
 collect2: ld returned 1 exit status
 sweirich$
 }}}

 on the other hand, if I rename the file 'Main.lhs' and edit the
 module name to 'Main' then everything works correctly.

 {{{
 sweirich$ ghc --make Main.lhs
 [1 of 1] Compiling Main             ( Main.lhs, Main.o )
 Linking Main ...
 ld: warning: could not create compact unwind for _ffi_call_unix64: does
 not use RBP or RSP based frame
 ld: warning: PIE disabled. Absolute addressing (perhaps -mdynamic-no-pic)
 not allowed in code signed PIE, but used in ___gmpn_modexact_1c_odd from
 /Library/Frameworks/GHC.framework/Versions/7.0.3-x86_64/usr/lib/ghc-7.0.3
 /integer-gmp-0.2.0.3/libHSinteger-gmp-0.2.0.3.a(mode1o.o). To fix this
 warning, don't compile with -mdynamic-no-pic or link with -Wl,-no_pie
 sweirich$ ./Main
 Hello World!
 }}}

--

Comment(by simonmar):

 It looks like you had already compiled `lec1.lhs` without the `-main-is`
 option, and then added the `-main-is` option later.  Could that be the
 case?  Could you try from scratch, deleting all the `.o` and `.hi` files
 first?

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