Haskell ghc compiling/linking error, not creating executable. (linux)

compilation, ghc, haskell, linker, linux

Solution

Have you `binutils-gold` installed? If yes, this is the problem (since the gold linker does not support `--hash-size` AFAIK).

Possible solutions:

- remove gold

- your `ld` probably links to `ld.gold`, so change the symlink to `ld.ld`

- tell the haskell compiler explicitly which linker to use with the `-pgml` option: `ghc -pgml ld.ld tupel.hs`

- install `ghc` from source, since the configure script of `ghc` will then build `ghc` so that it won't use `--hash-size`

- Depending on your version of `ghc`, you can adjust the linker settings in `ghc`'s setting file `/usr/lib/ghc-your.ghc.version/settings`

Problem

I wrote a basic hello world program in haskel and tried to compile it with: ghc filename.hs. It produces .hi and .o files but no executable and displays this error in the linker: marox@IT-marox:~/Marox$ ghc tupel.hs Linking tupel ... /usr/bin/ld: --hash-size=31: unknown option /usr/bin/ld: use the --help option for usage information collect2: ld returned 1 exit status Googling didn't return any useful information. I am on ubuntu 12.04. How can I fix this?

Original source

Related problems