[Haskell-cafe] cannot build greencard

Dan Weston westondan at imageworks.com
Wed Sep 2 17:23:47 EDT 2009


Yet strangely, the last upload was Sun Apr 19 21:42:04 UTC 2009 and 
hackage claims it builds without failure with ghc-6.10.

And in fact it builds just fine for me, so maybe it is worth finding out 
why it doesn't build for you. Are you using ghc-6.10.4 and the latest 
version of cabal? I get:

 > ghc --version
The Glorious Glasgow Haskell Compilation System, version 6.10.4

 > cabal --version
cabal-install version 0.6.2
using version 1.6.0.3 of the Cabal library

 > cabal install greencard

Resolving dependencies...
Downloading greencard-3.0.3...
Configuring greencard-3.0.3...
Preprocessing library greencard-3.0.3...
Preprocessing executables for greencard-3.0.3...
Building greencard-3.0.3...
[1 of 1] Compiling Foreign.GreenCard ( lib/Foreign/GreenCard.hs, 
dist/build/Foreign/GreenCard.o )
/usr/bin/ar: creating dist/build/libHSgreencard-3.0.3.a
[ 1 of 21] Compiling Package          ( src/Package.lhs, 
dist/build/greencard/greencard-tmp/Package.o )
[ 2 of 21] Compiling ErrMonad         ( src/ErrMonad.lhs, 
dist/build/greencard/greencard-tmp/ErrMonad.o )
[ 3 of 21] Compiling PrettyUtils      ( src/PrettyUtils.lhs, 
dist/build/greencard/greencard-tmp/PrettyUtils.o )
[ 4 of 21] Compiling Target           ( src/Target.lhs, 
dist/build/greencard/greencard-tmp/Target.o )
[ 5 of 21] Compiling Casm             ( src/Casm.lhs, 
dist/build/greencard/greencard-tmp/Casm.o )

src/Casm.lhs:544:1:
     Warning: Pattern match(es) are overlapped
              In a case alternative: _ -> ...

src/Casm.lhs:577:1:
     Warning: Pattern match(es) are overlapped
              In a case alternative: _ -> ...

src/Casm.lhs:616:4:
     Warning: Pattern match(es) are overlapped
              In a case alternative: _ -> ...

src/Casm.lhs:631:5:
     Warning: Pattern match(es) are overlapped
              In a case alternative: _ -> ...
[ 6 of 21] Compiling GCToken          ( src/GCToken.lhs, 
dist/build/greencard/greencard-tmp/GCToken.o )
[ 7 of 21] Compiling ListUtils        ( src/ListUtils.lhs, 
dist/build/greencard/greencard-tmp/ListUtils.o )
[ 8 of 21] Compiling Name             ( src/Name.lhs, 
dist/build/greencard/greencard-tmp/Name.o )
[ 9 of 21] Compiling Type             ( src/Type.lhs, 
dist/build/greencard/greencard-tmp/Type.o )
[10 of 21] Compiling DIS              ( src/DIS.lhs, 
dist/build/greencard/greencard-tmp/DIS.o )
[11 of 21] Compiling FillInMonad      ( src/FillInMonad.lhs, 
dist/build/greencard/greencard-tmp/FillInMonad.o )
[12 of 21] Compiling NameSupply       ( src/NameSupply.lhs, 
dist/build/greencard/greencard-tmp/NameSupply.o )
[13 of 21] Compiling Decl             ( src/Decl.lhs, 
dist/build/greencard/greencard-tmp/Decl.o )
[14 of 21] Compiling FillIn           ( src/FillIn.lhs, 
dist/build/greencard/greencard-tmp/FillIn.o )
[15 of 21] Compiling LexM             ( src/LexM.lhs, 
dist/build/greencard/greencard-tmp/LexM.o )
[16 of 21] Compiling Lex              ( src/Lex.lhs, 
dist/build/greencard/greencard-tmp/Lex.o )
[17 of 21] Compiling MarshallMonad    ( src/MarshallMonad.lhs, 
dist/build/greencard/greencard-tmp/MarshallMonad.o )
[18 of 21] Compiling Proc             ( src/Proc.lhs, 
dist/build/greencard/greencard-tmp/Proc.o )
[19 of 21] Compiling Parse            ( 
dist/build/greencard/greencard-tmp/Parse.hs, 
dist/build/greencard/greencard-tmp/Parse.o )

dist/build/greencard/greencard-tmp/Parse.hs:1122:1:
     Warning: Pattern match(es) are overlapped
              In a case alternative: _ -> ...
[20 of 21] Compiling Process          ( src/Process.lhs, 
dist/build/greencard/greencard-tmp/Process.o )
[21 of 21] Compiling Main             ( src/GreenCard.lhs, 
dist/build/greencard/greencard-tmp/Main.o )
Linking dist/build/greencard/greencard ...
Installing library in
/net/homedirs/westondan/.cabal/lib/greencard-3.0.3/ghc-6.10.4
Installing executable(s) in /net/homedirs/westondan/.cabal/bin
Registering greencard-3.0.3...
Reading package info from "dist/installed-pkg-config" ... done.
Writing new package config file... done.

Bulat Ziganshin wrote:
> Hello mf-hcafe-15c311f0c,
> 
> Thursday, September 3, 2009, 12:44:25 AM, you wrote:
> 
> to the best of my knowledge, GC was developed in the days of ghc 0.20
> or so and last 10 years it's superceded by FFI addendum to Haskell'98
> standard. there is also more high-level tools like hsc2hs and HSFFIG
> 
> 
>> hi,
> 
>> i am stuck with a linker error in greencard, and haven't found
>> anything online, so i am addressing you for fresh ideas.  as soon as i
>> get this sorted out, i will try to turn the answer into a patch that
>> you can consider for the next release.
> 
>> SYMPTOMS: greencard 3.0.3 and 3.01 do not compile with ghc-6.8 (debian
>> lenny package) and 6.10 (darcs copy, checked out yesterday).  here is
>> what happens:
> 
> 
>> 4 (0) 19:27:19 mf at yoyo:/tmp2 $ tar xvpzf greencard-3.0.3.tar.gz
>> greencard-3.0.3/
>> greencard-3.0.3/ANNOUNCE
>> greencard-3.0.3/dist/
>> greencard-3.0.3/dist/build/
>> greencard-3.0.3/dist/build/greencard/
>> greencard-3.0.3/dist/build/greencard/greencard-tmp/
>> greencard-3.0.3/dist/build/greencard/greencard-tmp/Parse.hs
>> greencard-3.0.3/examples/
>> greencard-3.0.3/examples/Gdbm/
>> greencard-3.0.3/examples/Gdbm/diffs
>> greencard-3.0.3/examples/Gdbm/Gdbm.gc
>> greencard-3.0.3/examples/Gdbm/gdbmplus.h
>> greencard-3.0.3/examples/Gdbm/Main.hs
>> greencard-3.0.3/examples/Gdbm/Makefile
>> greencard-3.0.3/examples/Gdbm/README
>> greencard-3.0.3/examples/Makefile
>> greencard-3.0.3/examples/world/
>> greencard-3.0.3/examples/world/Main.hs
>> greencard-3.0.3/examples/world/Makedefs.ghc
>> greencard-3.0.3/examples/world/Makedeps
>> greencard-3.0.3/examples/world/Makefile.ghc-linux
>> greencard-3.0.3/examples/world/Makefile.ghc-win32
>> greencard-3.0.3/examples/world/Makefile.hugs-linux
>> greencard-3.0.3/examples/world/Makefile.hugs-win32
>> greencard-3.0.3/examples/world/README.txt
>> greencard-3.0.3/examples/world/World.gc
>> greencard-3.0.3/greencard.cabal
>> greencard-3.0.3/INSTALL
>> greencard-3.0.3/lib/
>> greencard-3.0.3/lib/Foreign/
>> greencard-3.0.3/lib/Foreign/GreenCard.hs
>> greencard-3.0.3/lib/GreenCard.gc
>> greencard-3.0.3/lib/Makefile
>> greencard-3.0.3/lib/package.conf.in
>> greencard-3.0.3/LICENSE
>> greencard-3.0.3/Makefile
>> greencard-3.0.3/README
>> greencard-3.0.3/Setup.hs
>> greencard-3.0.3/src/
>> greencard-3.0.3/src/Casm.lhs
>> greencard-3.0.3/src/Decl.lhs
>> greencard-3.0.3/src/DIS.lhs
>> greencard-3.0.3/src/ErrMonad.lhs
>> greencard-3.0.3/src/ErrorHook.c
>> greencard-3.0.3/src/FillIn.lhs
>> greencard-3.0.3/src/FillInMonad.lhs
>> greencard-3.0.3/src/GCToken.lhs
>> greencard-3.0.3/src/greencard.ghc.in
>> greencard-3.0.3/src/greencard.hugs.in
>> greencard-3.0.3/src/GreenCard.lhs
>> greencard-3.0.3/src/Lex.lhs
>> greencard-3.0.3/src/LexM.lhs
>> greencard-3.0.3/src/ListUtils.lhs
>> greencard-3.0.3/src/Makefile
>> greencard-3.0.3/src/MarshallMonad.lhs
>> greencard-3.0.3/src/Name.lhs
>> greencard-3.0.3/src/NameSupply.lhs
>> greencard-3.0.3/src/Package.lhs
>> greencard-3.0.3/src/Package.lhs.in
>> greencard-3.0.3/src/Parse.ly
>> greencard-3.0.3/src/PrettyUtils.lhs
>> greencard-3.0.3/src/Proc.lhs
>> greencard-3.0.3/src/Process.lhs
>> greencard-3.0.3/src/Target.lhs
>> greencard-3.0.3/src/Type.lhs
>> 5 (0) 19:27:22 mf at yoyo:/tmp2 $ cd greencard-3.0.3
>> 6 (0) 19:27:24 mf at yoyo:/tmp2/greencard-3.0.3 $ make prefix=/tmp2/
>> make[1]: Entering directory `/hime/tmp2/greencard-3.0.3/src'
>> happy  Parse.ly
>> unused terminals: 1
>> rm -f .depend
>> touch .depend
>> ghc -M -optdep-f -optdep.depend -optdep-xFiniteMap -optdep-xPretty
>> -recomp -O -fglasgow-exts     Casm.lhs DIS.lhs Decl.lhs ErrMonad.lhs
>> FillIn.lhs FillInMonad.lhs GCToken.lhs GreenCard.lhs Lex.lhs
>> LexM.lhs ListUtils.lhs MarshallMonad.lhs Name.lhs NameSupply.lhs
>> Package.lhs PrettyUtils.lhs Proc.lhs Process.lhs Target.lhs Type.lhs Parse.hs
>> make[1]: Leaving directory `/hime/tmp2/greencard-3.0.3/src'
>> make[1]: Entering directory `/hime/tmp2/greencard-3.0.3/src'
>> ghc -recomp -O -fglasgow-exts     -c Target.lhs -o Target.o
>> ghc -recomp -O -fglasgow-exts     -c PrettyUtils.lhs -o PrettyUtils.o
>> ghc -recomp -O -fglasgow-exts     -c Casm.lhs -o Casm.o
> 
>> Casm.lhs:544:1:
>>     Warning: Pattern match(es) are overlapped
>>              In a case alternative: _ -> ...
> 
>> Casm.lhs:577:1:
>>     Warning: Pattern match(es) are overlapped
>>              In a case alternative: _ -> ...
> 
>> Casm.lhs:616:4:
>>     Warning: Pattern match(es) are overlapped
>>              In a case alternative: _ -> ...
> 
>> Casm.lhs:631:5:
>>     Warning: Pattern match(es) are overlapped
>>              In a case alternative: _ -> ...
>> ghc -recomp -O -fglasgow-exts     -c ListUtils.lhs -o ListUtils.o
>> ghc -recomp -O -fglasgow-exts     -c ErrMonad.lhs -o ErrMonad.o
>> ghc -recomp -O -fglasgow-exts     -c Name.lhs -o Name.o
>> ghc -recomp -O -fglasgow-exts     -c DIS.lhs -o DIS.o
>> ghc -recomp -O -fglasgow-exts     -c Type.lhs -o Type.o
>> ghc -recomp -O -fglasgow-exts     -c Decl.lhs -o Decl.o
>> ghc -recomp -O -fglasgow-exts     -c FillInMonad.lhs -o FillInMonad.o
>> ghc -recomp -O -fglasgow-exts     -c NameSupply.lhs -o NameSupply.o
>> ghc -recomp -O -fglasgow-exts     -c FillIn.lhs -o FillIn.o
>> ghc -recomp -O -fglasgow-exts     -c GCToken.lhs -o GCToken.o
>> ghc -recomp -O -fglasgow-exts     -c MarshallMonad.lhs -o MarshallMonad.o
>> ghc -recomp -O -fglasgow-exts     -c Proc.lhs -o Proc.o
>> ghc -recomp -O -fglasgow-exts     -c LexM.lhs -o LexM.o
>> ghc -recomp -O -fglasgow-exts     -c Lex.lhs -o Lex.o
>> ghc -recomp -O -fglasgow-exts   -Onot  -c Parse.hs -o Parse.o
> 
>> Parse.hs:1733:1:
>>     Warning: Pattern match(es) are overlapped
>>              In a case alternative: _ -> ...
>> ghc -recomp -O -fglasgow-exts     -c Process.lhs -o Process.o
>> ghc -recomp -O -fglasgow-exts     -c Package.lhs -o Package.o
>> ghc -recomp -O -fglasgow-exts   -cpp -DBEGIN_GHC_ONLY='-}'
>> -DEND_GHC_ONLY='{-' -DBEGIN_NOT_FOR_GHC='{-' -DEND_NOT_FOR_GHC='-}'
>> -DPURE_WIN32=0  -c GreenCard.lhs -o GreenCard.o
>> ghc     -c ErrorHook.c -o ErrorHook.o
>> ghc -recomp -O -fglasgow-exts     -o greencard-bin Casm.o DIS.o
>> Decl.o ErrMonad.o FillIn.o FillInMonad.o GCToken.o GreenCard.o Lex.o
>> LexM.o ListUtils.o MarshallMonad.o Name.o NameSupply.o Package.o
>> PrettyUtils.o Proc.o Process.o Target.o Type.o Parse.o ErrorHook.o
>> Casm.o: In function `s201_info':
>> (.text+0x168): undefined reference to
>> `prettyzm1zi0zi0zi0_TextziPrettyPrintziHughesPJ_Str_con_info'
>> Casm.o: In function `s201_info':
>> (.text+0x17b): undefined reference to
>> `prettyzm1zi0zi0zi0_TextziPrettyPrintziHughesPJ_TextBeside_con_info'
>> Casm.o: In function `s201_info':
>> (.text+0x19d): undefined reference to
>> `prettyzm1zi0zi0zi0_TextziPrettyPrintziHughesPJ_Empty_closure'
>> Casm.o: In function `s201_info':
>> (.text+0x1b7): undefined reference to
>> `prettyzm1zi0zi0zi0_TextziPrettyPrintziHughesPJ_Str_con_info'
>> Casm.o: In function `s201_info':
>> (.text+0x1ca): undefined reference to
>> `prettyzm1zi0zi0zi0_TextziPrettyPrintziHughesPJ_TextBeside_con_info'
>> Casm.o: In function `s201_info':
>> (.text+0x1e9): undefined reference to
>> `prettyzm1zi0zi0zi0_TextziPrettyPrintziHughesPJ_Empty_closure'
>> Casm.o: In function `s201_info':
>> (.text+0x1f0): undefined reference to
>> `prettyzm1zi0zi0zi0_TextziPrettyPrintziHughesPJ_Beside_con_info'
> 
>> [...  these continue for every object file on the command line; a bit
>> over 2000 message of the same type in total...]
> 
>> Type.o: In function `sBv_info':
>> (.text+0x1b2b): undefined reference to
>> `prettyzm1zi0zi0zi0_TextziPrettyPrintziHughesPJ_Beside_con_info'
>> Type.o: In function `sZT_info':
>> (.text+0x1ed3): undefined reference to
>> `__stginit_prettyzm1zi0zi0zi0_TextziPrettyPrint_'
>> Type.o: In function `sBb_info':
>> (.text+0x1988): undefined reference to
>> `prettyzm1zi0zi0zi0_TextziPrettyPrintziHughesPJ_go6_info'
>> Type.o: In function `sBf_info':
>> (.text+0x1a12): undefined reference to
>> `prettyzm1zi0zi0zi0_TextziPrettyPrintziHughesPJ_go6_info'
>> Type.o: In function `sZU_info':
>> (.text+0x1b96): undefined reference to
>> `prettyzm1zi0zi0zi0_TextziPrettyPrintziHughesPJ_text_info'
>> Type.o: In function `rvv_closure':
>> (.data+0x8): undefined reference to
>> `prettyzm1zi0zi0zi0_TextziPrettyPrintziHughesPJ_Chr_static_info'
>> Type.o: In function `rvH_closure':
>> (.data+0x64): undefined reference to
>> `prettyzm1zi0zi0zi0_TextziPrettyPrintziHughesPJ_TextBeside_static_info'
>> Type.o: In function `rvH_closure':
>> (.data+0x6c): undefined reference to
>> `prettyzm1zi0zi0zi0_TextziPrettyPrintziHughesPJ_lvl3_closure'
>> Type.o: In function `rvH_closure':
>> (.data+0x70): undefined reference to
>> `prettyzm1zi0zi0zi0_TextziPrettyPrintziHughesPJ_Empty_closure'
>> Type.o: In function `rvN_closure':
>> (.data+0xb0): undefined reference to
>> `prettyzm1zi0zi0zi0_TextziPrettyPrintziHughesPJ_Str_static_info'
>> collect2: ld returned 1 exit status
>> make[1]: *** [greencard-bin] Error 1
>> make[1]: Leaving directory `/hime/tmp2/greencard-3.0.3/src'
>> make[1]: Entering directory `/hime/tmp2/greencard-3.0.3/lib'
>> ghc -package-name greencard -cpp -fglasgow-exts -fno-prune-tydecls
>> -c Foreign/GreenCard.hs -o Foreign/GreenCard.o -hisuf hi
>> ghc-6.8.2: unrecognised flags: -fno-prune-tydecls
>> Usage: For basic information, try the `--help' option.
>> make[1]: *** [Foreign/GreenCard.o] Error 1
>> make[1]: Leaving directory `/hime/tmp2/greencard-3.0.3/lib'
>> make[1]: Entering directory `/hime/tmp2/greencard-3.0.3/src'
>> make[1]: Nothing to be done for `all'.
>> make[1]: Leaving directory `/hime/tmp2/greencard-3.0.3/src'
>> make[1]: Entering directory `/hime/tmp2/greencard-3.0.3/lib'
>> ghc -package-name greencard -cpp -fglasgow-exts -fno-prune-tydecls
>> -prof -c Foreign/GreenCard.hs -o Foreign/GreenCard.p_o -hisuf p_hi
>> ghc-6.8.2: unrecognised flags: -fno-prune-tydecls
>> Usage: For basic information, try the `--help' option.
>> make[1]: *** [Foreign/GreenCard.p_o] Error 1
>> make[1]: Leaving directory `/hime/tmp2/greencard-3.0.3/lib'
>> make: *** [all] Error 2
> 
>> the errors about no-prune-tydecls are easy enough to fix:
> 
>> $ diff -r greencard-3.0.3{,-patched}
>> diff -r greencard-3.0.3/examples/Gdbm/Makefile
>> greencard-3.0.3-patched/examples/Gdbm/Makefile
>> 28d27
>> < HC_OPTS += -fno-prune-tydecls
>> diff -r greencard-3.0.3/lib/Makefile
>> greencard-3.0.3-patched/lib/Makefile
>> 6c6
>> < GHC_OPTS = -cpp -fglasgow-exts -fno-prune-tydecls
>> ---
>>> GHC_OPTS = -cpp -fglasgow-exts
>> $
> 
> 
>> this helps, but the linker errors are unrealted, and i don't know what
>> to make of them.  (I guess I should study how ghc generates C code at
>> this point?  it does feel like something obvious...)
> 
> 
>> thanks,
>> cheers,
>> matthias
>> _______________________________________________
>> Haskell-Cafe mailing list
>> Haskell-Cafe at haskell.org
>> http://www.haskell.org/mailman/listinfo/haskell-cafe
> 
> 
> --
> Best regards,
>  Bulat                            mailto:Bulat.Ziganshin at gmail.com
> 
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
> 
> 



More information about the Haskell-Cafe mailing list