|
Having difficulty with GHC 6.2 -main-is flag on Windows: msg#00010lang.haskell.glasgow.bugs
Hi, I'm trying to use the new GHC -main-is flag to compile programs from files with module names other than Main, but it doesn't seem to be working. I've tried this under Windows 2000 and Windows XP. Here's my test program: [[ -- HelloWorld.hs -- module HelloWorld where module Main where main :: IO () main = putStrLn "Hello, World" ]] I switch the commented module line as needed below. Sample output in what follows has been cut-and-pasted from a console command window into this email message. ----- Compiling the above without a -main-is flag: [[ D:\Cvs\DEV\HaskellRDF>ghc --make -fglasgow-exts -iC:\Dev\Haskell\Lib\HUnit;C:\De v\Haskell\Lib\Parsec;C:\Dev\Haskell\Lib\Sort;C:\Dev\Haskell\Lib\Dfa -o HelloWorl d.exe HelloWorld Chasing modules from: HelloWorld Compiling Main ( HelloWorld.hs, HelloWorld.o ) Linking ... D:\Cvs\DEV\HaskellRDF>HelloWorld Hello, World ]] ----- Compiling the above with -main-is Main.main: [[ DD:\Cvs\DEV\HaskellRDF>ghc --make -fglasgow-exts -iC:\Dev\Haskell\Lib\HUnit;C:\De v\Haskell\Lib\Parsec;C:\Dev\Haskell\Lib\Sort;C:\Dev\Haskell\Lib\Dfa -o HelloWorl d.exe -main-is Main.main HelloWorld Chasing modules from: HelloWorld Compiling Main ( HelloWorld.hs, HelloWorld.o ) Linking ... D:\Cvs\DEV\HaskellRDF>HelloWorld Hello, World ]] ----- Compiling the above with -main-is HelloWorld.main [[ D:\Cvs\DEV\HaskellRDF>ghc --make -fglasgow-exts -iC:\Dev\Haskell\Lib\HUnit;C:\De v\Haskell\Lib\Parsec;C:\Dev\Haskell\Lib\Sort;C:\Dev\Haskell\Lib\Dfa -o HelloWorl d.exe -main-is HelloWorld.main HelloWorld Chasing modules from: HelloWorld Compiling Main ( HelloWorld.hs, HelloWorld.o ) Linking ... C:/DEV/ghc/ghc-6.2/libHSrts.a(Main.o)(.text+0x87):Main.c: undefined reference to `__stginit_ZCMain' C:/DEV/ghc/ghc-6.2/libHSrts.a(Main.o)(.text+0xa1):Main.c: undefined reference to `ZCMain_main_closure' ]] ----- Finally, changing the source code module name to HelloWorld: [[ D:\Cvs\DEV\HaskellRDF>ghc --make -fglasgow-exts -iC:\Dev\Haskell\Lib\HUnit;C:\De v\Haskell\Lib\Parsec;C:\Dev\Haskell\Lib\Sort;C:\Dev\Haskell\Lib\Dfa -o HelloWorl d.exe -main-is HelloWorld.main HelloWorld Chasing modules from: HelloWorld Compiling HelloWorld ( HelloWorld.hs, HelloWorld.o ) Warning: output was redirected with -o, but no output will be generated because there is no Main module. ]] ----- Repeating the last case with a compiler -v option [[ D:\Cvs\DEV\HaskellRDF>ghc -v --make -fglasgow-exts -iC:\Dev\Haskell\Lib\HUnit;C: \Dev\Haskell\Lib\Parsec;C:\Dev\Haskell\Lib\Sort;C:\Dev\Haskell\Lib\Dfa -o HelloW orld.exe -main-is HelloWorld.main HelloWorld 1>a.tmp Glasgow Haskell Compiler, Version 6.2, for Haskell 98, compiled by GHC version 6 .0.1 Using package config file: C:\DEV\ghc\ghc-6.2\package.conf Hsc static flags: -static *** Chasing dependencies: Chasing modules from: HelloWorld Stable modules: *** Compiling HelloWorld: compile: input file HelloWorld.hs *** Checking old interface for HelloWorld: Compiling HelloWorld ( HelloWorld.hs, HelloWorld.o ) *** Parser: *** Renamer/typechecker: *** Desugar: Result size = 10 *** Simplify: Result size = 10 Result size = 8 Result size = 8 *** Tidy Core: Result size = 8 *** CorePrep: Result size = 10 *** Stg2Stg: *** CodeGen: *** CodeOutput: *** Assembler C:\DEV\ghc\ghc-6.2\gcc -B"C:\DEV\ghc\ghc-6.2\gcc-lib/" -I. -c C:\DOCUME~1\Graham \LOCALS~1\Temp\ghc3332.s -o HelloWorld.o *** Deleting temp files Deleting: C:/DOCUME~1/Graham/LOCALS~1/Temp/ghc3332.s Upsweep completely successful. *** Deleting temp files Deleting: Warning: output was redirected with -o, but no output will be generated because there is no Main module. link(batch): upsweep (partially) failed OR Main.main not exported; not linking. *** Deleting temp files Deleting: ]] And the standard output (captured to a.tmp): [[ ==================== Packages ==================== Package {name = "data", auto = False, import_dirs = ["C:/DEV/ghc/ghc-6.2/hslibs-imports/data"], source_dirs = [], library_dirs = ["C:/DEV/ghc/ghc-6.2"], hs_libraries = ["HSdata"], extra_libraries = [], include_dirs = [], c_includes = [], package_deps = ["haskell98", "lang", "util"], extra_ghc_opts = [], extra_cc_opts = [], extra_ld_opts = [], framework_dirs = [], extra_frameworks = []} Package {name = "rts", auto = False, import_dirs = [], source_dirs = [], library_dirs = ["C:/DEV/ghc/ghc-6.2", "C:/DEV/ghc/ghc-6.2/gcc-lib"], hs_libraries = ["HSrts"], extra_libraries = ["m", "gmp", "wsock32"], include_dirs = ["C:/DEV/ghc/ghc-6.2/include", "C:/DEV/ghc/ghc-6.2/include/mingw"], c_includes = ["Stg.h"], package_deps = [], extra_ghc_opts = [], extra_cc_opts = [], extra_ld_opts = ["-u", "_GHCziBase_Izh_static_info", "-u", "_GHCziBase_Czh_static_info", "-u", "_GHCziFloat_Fzh_static_info", "-u", "_GHCziFloat_Dzh_static_info", "-u", "_GHCziPtr_Ptr_static_info", "-u", "_GHCziWord_Wzh_static_info", "-u", "_GHCziInt_I8zh_static_info", "-u", "_GHCziInt_I16zh_static_info", "-u", "_GHCziInt_I32zh_static_info", "-u", "_GHCziInt_I64zh_static_info", "-u", "_GHCziWord_W8zh_static_info", "-u", "_GHCziWord_W16zh_static_info", "-u", "_GHCziWord_W32zh_static_info", "-u", "_GHCziWord_W64zh_static_info", "-u", "_GHCziStable_StablePtr_static_info", "-u", "_GHCziBase_Izh_con_info", "-u", "_GHCziBase_Czh_con_info", "-u", "_GHCziFloat_Fzh_con_info", "-u", "_GHCziFloat_Dzh_con_info", "-u", "_GHCziPtr_Ptr_con_info", "-u", "_GHCziPtr_FunPtr_con_info", "-u", "_GHCziStable_StablePtr_con_info", "-u", "_GHCziBase_False_closure", "-u", "_GHCziBase_True_closure", "-u", "_GHCziPack_unpackCString_closure", "-u", "_GHCziIOBase_stackOverflow_closure", "-u", "_GHCziIOBase_heapOverflow_closure", "-u", "_GHCziIOBase_NonTermination_closure", "-u", "_GHCziIOBase_BlockedOnDeadMVar_closure", "-u", "_GHCziIOBase_Deadlock_closure", "-u", "_GHCziWeak_runFinalizzerBatch_closure", "-u", "___stginit_Prelude"], framework_dirs = [], extra_frameworks = []} Package {name = "base", auto = True, import_dirs = ["C:/DEV/ghc/ghc-6.2/imports"], source_dirs = [], library_dirs = ["C:/DEV/ghc/ghc-6.2"], hs_libraries = ["HSbase1", "HSbase2", "HSbase3"], extra_libraries = ["HSbase_cbits", "wsock32", "msvcrt", "kernel32", "user32"], include_dirs = [], c_includes = ["HsBase.h"], package_deps = ["rts"], extra_ghc_opts = [], extra_cc_opts = [], extra_ld_opts = [], framework_dirs = [], extra_frameworks = []} Package {name = "haskell98", auto = True, import_dirs = ["C:/DEV/ghc/ghc-6.2/imports"], source_dirs = [], library_dirs = ["C:/DEV/ghc/ghc-6.2"], hs_libraries = ["HShaskell98"], extra_libraries = [], include_dirs = [], c_includes = [], package_deps = ["base"], extra_ghc_opts = [], extra_cc_opts = [], extra_ld_opts = [], framework_dirs = [], extra_frameworks = []} Package {name = "haskell-src", auto = True, import_dirs = ["C:/DEV/ghc/ghc-6.2/imports"], source_dirs = [], library_dirs = ["C:/DEV/ghc/ghc-6.2"], hs_libraries = ["HShaskell-src"], extra_libraries = [], include_dirs = [], c_includes = [], package_deps = ["base", "haskell98"], extra_ghc_opts = [], extra_cc_opts = [], extra_ld_opts = [], framework_dirs = [], extra_frameworks = []} Package {name = "network", auto = True, import_dirs = ["C:/DEV/ghc/ghc-6.2/imports"], source_dirs = [], library_dirs = ["C:/DEV/ghc/ghc-6.2"], hs_libraries = ["HSnetwork"], extra_libraries = [], include_dirs = [], c_includes = ["HsNet.h"], package_deps = ["base"], extra_ghc_opts = [], extra_cc_opts = [], extra_ld_opts = [], framework_dirs = [], extra_frameworks = []} Package {name = "parsec", auto = True, import_dirs = ["C:/DEV/ghc/ghc-6.2/imports"], source_dirs = [], library_dirs = ["C:/DEV/ghc/ghc-6.2"], hs_libraries = ["HSparsec"], extra_libraries = [], include_dirs = [], c_includes = [], package_deps = ["base"], extra_ghc_opts = [], extra_cc_opts = [], extra_ld_opts = [], framework_dirs = [], extra_frameworks = []} Package {name = "QuickCheck", auto = True, import_dirs = ["C:/DEV/ghc/ghc-6.2/imports"], source_dirs = [], library_dirs = ["C:/DEV/ghc/ghc-6.2"], hs_libraries = ["HSQuickCheck"], extra_libraries = [], include_dirs = [], c_includes = [], package_deps = ["base"], extra_ghc_opts = [], extra_cc_opts = [], extra_ld_opts = [], framework_dirs = [], extra_frameworks = []} Package {name = "OpenGL", auto = True, import_dirs = ["C:/DEV/ghc/ghc-6.2/imports"], source_dirs = [], library_dirs = ["C:/DEV/ghc/ghc-6.2"], hs_libraries = ["HSOpenGL"], extra_libraries = ["HSOpenGL_cbits"], include_dirs = [], c_includes = ["HsOpenGL.h"], package_deps = ["base"], extra_ghc_opts = [], extra_cc_opts = [], extra_ld_opts = ["-lglu32", "-lopengl32"], framework_dirs = [], extra_frameworks = []} Package {name = "GLUT", auto = True, import_dirs = ["C:/DEV/ghc/ghc-6.2/imports"], source_dirs = [], library_dirs = ["C:/DEV/ghc/ghc-6.2"], hs_libraries = ["HSGLUT"], extra_libraries = ["HSGLUT_cbits"], include_dirs = [], c_includes = ["HsGLUT.h"], package_deps = ["base", "OpenGL"], extra_ghc_opts = [], extra_cc_opts = [], extra_ld_opts = [], framework_dirs = [], extra_frameworks = []} Package {name = "objectio", auto = False, import_dirs = ["C:/DEV/ghc/ghc-6.2/imports"], source_dirs = [], library_dirs = ["C:/DEV/ghc/ghc-6.2"], hs_libraries = ["HSobjectio1", "HSobjectio2", "HSobjectio3", "HSobjectio4"], extra_libraries = ["user32", "gdi32", "kernel32", "comctl32", "comdlg32", "shell32", "winmm", "winspool", "ole32"], include_dirs = [], c_includes = [], package_deps = ["base"], extra_ghc_opts = [], extra_cc_opts = [], extra_ld_opts = [], framework_dirs = [], extra_frameworks = []} Package {name = "lang", auto = False, import_dirs = ["C:/DEV/ghc/ghc-6.2/hslibs-imports/lang"], source_dirs = [], library_dirs = ["C:/DEV/ghc/ghc-6.2"], hs_libraries = ["HSlang"], extra_libraries = ["HSlang_cbits"], include_dirs = [], c_includes = ["HsLang.h"], package_deps = ["base"], extra_ghc_opts = [], extra_cc_opts = [], extra_ld_opts = [], framework_dirs = [], extra_frameworks = []} Package {name = "concurrent", auto = False, import_dirs = ["C:/DEV/ghc/ghc-6.2/hslibs-imports/concurrent"], source_dirs = [], library_dirs = ["C:/DEV/ghc/ghc-6.2"], hs_libraries = ["HSconcurrent"], extra_libraries = [], include_dirs = [], c_includes = [], package_deps = ["base"], extra_ghc_opts = [], extra_cc_opts = [], extra_ld_opts = [], framework_dirs = [], extra_frameworks = []} Package {name = "text", auto = False, import_dirs = ["C:/DEV/ghc/ghc-6.2/hslibs-imports/text"], source_dirs = [], library_dirs = ["C:/DEV/ghc/ghc-6.2"], hs_libraries = ["HStext"], extra_libraries = [], include_dirs = [], c_includes = [], package_deps = ["lang", "parsec"], extra_ghc_opts = [], extra_cc_opts = [], extra_ld_opts = [], framework_dirs = [], extra_frameworks = []} Package {name = "net", auto = False, import_dirs = ["C:/DEV/ghc/ghc-6.2/hslibs-imports/net"], source_dirs = [], library_dirs = ["C:/DEV/ghc/ghc-6.2"], hs_libraries = ["HSnet"], extra_libraries = [], include_dirs = [], c_includes = [], package_deps = ["network"], extra_ghc_opts = [], extra_cc_opts = [], extra_ld_opts = [], framework_dirs = [], extra_frameworks = []} Package {name = "hssource", auto = False, import_dirs = ["C:/DEV/ghc/ghc-6.2/hslibs-imports/hssource"], source_dirs = [], library_dirs = ["C:/DEV/ghc/ghc-6.2"], hs_libraries = ["HShssource"], extra_libraries = [], include_dirs = [], c_includes = [], package_deps = ["haskell-src"], extra_ghc_opts = [], extra_cc_opts = [], extra_ld_opts = [], framework_dirs = [], extra_frameworks = []} Package {name = "win32", auto = False, import_dirs = ["C:/DEV/ghc/ghc-6.2/hslibs-imports/win32"], source_dirs = [], library_dirs = ["C:/DEV/ghc/ghc-6.2"], hs_libraries = ["HSwin321", "HSwin322"], extra_libraries = ["user32", "gdi32", "winmm", "kernel32", "advapi32"], include_dirs = [], c_includes = [], package_deps = ["haskell98", "lang"], extra_ghc_opts = [], extra_cc_opts = [], extra_ld_opts = [], framework_dirs = [], extra_frameworks = []} Package {name = "util", auto = False, import_dirs = ["C:/DEV/ghc/ghc-6.2/hslibs-imports/util"], source_dirs = [], library_dirs = ["C:/DEV/ghc/ghc-6.2"], hs_libraries = ["HSutil"], extra_libraries = [], include_dirs = [], c_includes = ["HsUtil.h"], package_deps = ["lang", "concurrent", "QuickCheck"], extra_ghc_opts = [], extra_cc_opts = [], extra_ld_opts = [], framework_dirs = [], extra_frameworks = []} ]] #g -- ------------ Graham Klyne For email: http://www.ninebynine.org/#Contact
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | RE: internal error reported, Simon Marlow |
|---|---|
| Next by Date: | impossible in ghc 6.2, Isaac Jones |
| Previous by Thread: | RE: internal error reported, Simon Marlow |
| Next by Thread: | RE: Having difficulty with GHC 6.2 -main-is flag on Windows, Simon Marlow |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |