[Haskell-cafe] GHC 6.8.3 binary for older linux

Agent Zhang agentzh at gmail.com
Thu Aug 14 04:31:32 EDT 2008


Halo~

I ran into the following error while trying to run a binary generated
by GHC 6.8.x on our production machines with a not-so-recent linux
installed (kernel 2.6.9).

    $ ./restyscript
    restyscript: timer_create: Invalid argument

Evan building a pure static-linking executable did not solve the problem.

Then I downloaded the binary GHC 6.8.3 from haskell.org on that
machine, but the ghc crashes as well:

   $ ghc
   Floating point exception

My teammate chaos++ found that the last time precision argument passed
to the timer_create function was just too big. Manually editing the
binary executable (the restyscript file in the previous example)
solved this issue completely, but, yeah, it's terribly hacky.

So I decided to build a GHC 6.8.3 from source on that old system using
GHC 6.4.2. Fortunately, the binary GHC 6.4.2 from haskell.org does
work there. The newly-built GHC solves all the problem. No
floating-point exception nor invalid argument for timer_create. I've
put my binary distribution on my site here:

    http://agentzh.org/misc/ghc-6.8.3-i386-old-linux.tar.bz2

Hopefully it'll be useful for someone else ;) Not sure if it's worth
putting to the official download page as well :)

Ideally GHC should inspect the kernel version and timer_create support
at *runtime*, rather compile-time. It'll make our lives much easier ;)

Thanks!
-agentzh


More information about the Haskell-Cafe mailing list