RE: linking problems after switching from GHC5 to GHC6

I can't link with a library any longer, after switching from ghc5 to ghc6.2. I've recompiled the library with the new compiler version, so that's not the problem.
[snip]
ghc -o build/test0 build/test0.o -odir build `src/lib/hsunix-config --local --libs` build/test0.o(.text+0x25): In function `__stginit_Main_': : undefined reference to `__stginit_HsUnix_' build/test0.o(.text+0xec): In function `Main_main_srt': : undefined reference to `HsUnix_mainwrapper_closure' build/test0.o(.text+0x151): In function `Main_main_entry': : undefined reference to `HsUnix_mainwrapper_closure' collect2: ld returned 1 exit status make: *** [build/test0] Error 1 rm build/test0.o
Strange. Could you send us the output from -v? Cheers, Simon

I can't link with a library any longer, after switching from ghc5 to ghc6.2. I've recompiled the library with the new compiler version, so that's not the problem.
[snip]
ghc -o build/test0 build/test0.o -odir build `src/lib/hsunix-config --local --libs` build/test0.o(.text+0x25): In function `__stginit_Main_': : undefined reference to `__stginit_HsUnix_' build/test0.o(.text+0xec): In function `Main_main_srt': : undefined reference to `HsUnix_mainwrapper_closure' build/test0.o(.text+0x151): In function `Main_main_entry': : undefined reference to `HsUnix_mainwrapper_closure' collect2: ld returned 1 exit status make: *** [build/test0] Error 1 rm build/test0.o
Strange. Could you send us the output from -v?
Okay: Glasgow Haskell Compiler, Version 6.2, for Haskell 98, compiled by GHC version 6.2 Using package config file: /usr/lib/ghc-6.2/package.conf ==================== Packages ==================== Package {name = "data", auto = False, import_dirs = ["/usr/lib/ghc-6.2/hslibs-imports/data"], source_dirs = [], library_dirs = ["/usr/lib/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 = "lang", auto = False, import_dirs = ["/usr/lib/ghc-6.2/hslibs-imports/lang"], source_dirs = [], library_dirs = ["/usr/lib/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 = "base", auto = True, import_dirs = ["/usr/lib/ghc-6.2/imports"], source_dirs = [], library_dirs = ["/usr/lib/ghc-6.2"], hs_libraries = ["HSbase"], extra_libraries = ["HSbase_cbits"], include_dirs = [], c_includes = ["HsBase.h"], package_deps = ["rts"], extra_ghc_opts = [], extra_cc_opts = [], extra_ld_opts = [], framework_dirs = [], extra_frameworks = []} Package {name = "rts", auto = False, import_dirs = [], source_dirs = [], library_dirs = ["/usr/lib/ghc-6.2"], hs_libraries = ["HSrts"], extra_libraries = ["m", "gmp", "dl"], include_dirs = ["/usr/lib/ghc-6.2/include"], 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 = "haskell98", auto = True, import_dirs = ["/usr/lib/ghc-6.2/imports"], source_dirs = [], library_dirs = ["/usr/lib/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 = ["/usr/lib/ghc-6.2/imports"], source_dirs = [], library_dirs = ["/usr/lib/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 = ["/usr/lib/ghc-6.2/imports"], source_dirs = [], library_dirs = ["/usr/lib/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 = ["/usr/lib/ghc-6.2/imports"], source_dirs = [], library_dirs = ["/usr/lib/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 = ["/usr/lib/ghc-6.2/imports"], source_dirs = [], library_dirs = ["/usr/lib/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 = "readline", auto = True, import_dirs = ["/usr/lib/ghc-6.2/imports"], source_dirs = [], library_dirs = ["/usr/lib/ghc-6.2"], hs_libraries = ["HSreadline"], extra_libraries = ["readline", "ncurses"], include_dirs = [], c_includes = ["HsReadline.h"], package_deps = ["base"], extra_ghc_opts = [], extra_cc_opts = [], extra_ld_opts = [], framework_dirs = [], extra_frameworks = []} Package {name = "OpenGL", auto = True, import_dirs = ["/usr/lib/ghc-6.2/imports"], source_dirs = [], library_dirs = ["/usr/lib/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 = ["-I/usr/X11R6/include"], extra_ld_opts = ["-lGLU", "-lGL", "-L/usr/X11R6/lib", "-lSM", "-lICE", "-lXext", "-lX11", "-lm"], framework_dirs = [], extra_frameworks = []} Package {name = "GLUT", auto = True, import_dirs = ["/usr/lib/ghc-6.2/imports"], source_dirs = [], library_dirs = ["/usr/lib/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 = ["-I/usr/X11R6/include"], extra_ld_opts = ["-lglut", "-lGLU", "-lGL", "-L/usr/X11R6/lib", "-lSM", "-lICE", "-lXmu", "-lXt", "-lXi", "-lXext", "-lX11", "-lm"], framework_dirs = [], extra_frameworks = []} Package {name = "unix", auto = True, import_dirs = ["/usr/lib/ghc-6.2/imports"], source_dirs = [], library_dirs = ["/usr/lib/ghc-6.2"], hs_libraries = ["HSunix"], extra_libraries = ["HSunix_cbits", "dl"], include_dirs = [], c_includes = ["HsUnix.h"], package_deps = ["base"], extra_ghc_opts = [], extra_cc_opts = [], extra_ld_opts = [], framework_dirs = [], extra_frameworks = []} Package {name = "concurrent", auto = False, import_dirs = ["/usr/lib/ghc-6.2/hslibs-imports/concurrent"], source_dirs = [], library_dirs = ["/usr/lib/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 = "posix", auto = False, import_dirs = ["/usr/lib/ghc-6.2/hslibs-imports/posix"], source_dirs = [], library_dirs = ["/usr/lib/ghc-6.2"], hs_libraries = ["HSposix"], extra_libraries = ["HSposix_cbits", "dl"], include_dirs = [], c_includes = ["HsPosix.h"], package_deps = ["lang", "unix"], extra_ghc_opts = [], extra_cc_opts = [], extra_ld_opts = [], framework_dirs = [], extra_frameworks = []} Package {name = "util", auto = False, import_dirs = ["/usr/lib/ghc-6.2/hslibs-imports/util"], source_dirs = [], library_dirs = ["/usr/lib/ghc-6.2"], hs_libraries = ["HSutil"], extra_libraries = ["HSutil_cbits"], include_dirs = [], c_includes = ["HsUtil.h"], package_deps = ["lang", "concurrent", "QuickCheck", "readline", "posix"], extra_ghc_opts = [], extra_cc_opts = [], extra_ld_opts = [], framework_dirs = [], extra_frameworks = []} Package {name = "text", auto = False, import_dirs = ["/usr/lib/ghc-6.2/hslibs-imports/text"], source_dirs = [], library_dirs = ["/usr/lib/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 = ["/usr/lib/ghc-6.2/hslibs-imports/net"], source_dirs = [], library_dirs = ["/usr/lib/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 = ["/usr/lib/ghc-6.2/hslibs-imports/hssource"], source_dirs = [], library_dirs = ["/usr/lib/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 = []} Hsc static flags: -static *** Linker gcc -v -o build/test0 -DDONT_WANT_WIN32_DLL_SUPPORT build/libhsunix.a build/test0.o -L/usr/lib/ghc-6.2 -lHShaskell98 -lHSutil -lHSutil_cbits -lHSreadline -lreadline -lncurses -lHSQuickCheck -lHSconcurrent -lHStext -lHSparsec -lHSposix -lHSposix_cbits -ldl -lHSunix -lHSunix_cbits -ldl -lHSlang -lHSlang_cbits -lHSbase -lHSbase_cbits -lHSrts -lm -lgmp -ldl -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 Reading specs from /usr/lib/gcc-lib/i386-linux/3.2.3/specs Configured with: ../src/configure -v --enable-languages=c,c++,java,f77,objc,ada --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.2 --enable-shared --with-system-zlib --enable-nls --without-included-gettext --enable-__cxa_atexit --enable-clocale=gnu --enable-java-gc=boehm --enable-objc-gc i386-linux Thread model: posix gcc version 3.2.3 /usr/lib/gcc-lib/i386-linux/3.2.3/collect2 --eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o build/test0 -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 /usr/lib/gcc-lib/i386-linux/3.2.3/../../../crt1.o /usr/lib/gcc-lib/i386-linux/3.2.3/../../../crti.o /usr/lib/gcc-lib/i386-linux/3.2.3/crtbegin.o -L/usr/lib/ghc-6.2 -L/usr/lib/gcc-lib/i386-linux/3.2.3 -L/usr/lib/gcc-lib/i386-linux/3.2.3/../../.. build/libhsunix.a build/test0.o -lHShaskell98 -lHSutil -lHSutil_cbits -lHSreadline -lreadline -lncurses -lHSQuickCheck -lHSconcurrent -lHStext -lHSparsec -lHSposix -lHSposix_cbits -ldl -lHSunix -lHSunix_cbits -ldl -lHSlang -lHSlang_cbits -lHSbase -lHSbase_cbits -lHSrts -lm -lgmp -ldl -lgcc -lgcc_eh -lc -lgcc -lgcc_eh /usr/lib/gcc-lib/i386-linux/3.2.3/crtend.o /usr/lib/gcc-lib/i386-linux/3.2.3/../../../crtn.o build/test0.o(.text+0x1b): In function `__stginit_Main_': : undefined reference to `__stginit_HsUnix_' build/test0.o(.text+0xec): In function `Main_main_srt': : undefined reference to `HsUnix_mainwrapper_closure' build/test0.o(.text+0x151): In function `Main_main_entry': : undefined reference to `HsUnix_mainwrapper_closure' collect2: ld returned 1 exit status *** Deleting temp files Deleting:
participants (2)
-
Simon Marlow
-
Volker Wysk