[Haskell-beginners] Portability of a Haskell program

Ondřej Garncarz gar.o at post.cz
Mon Nov 22 15:42:17 EST 2010


I want to run my Haskell program which I've compiled on other computer, so I try:

$ ./eternitypar 
./eternitypar: error while loading shared libraries: libgmp.so.10: cannot open shared object file: No such file or directory
$ LD_PRELOAD=./libgmp.so.10 ./eternitypar 
./eternitypar: /lib/libc.so.6: version `GLIBC_2.7' not found (required by ./libgmp.so.10)
$ LD_PRELOAD=./libc.so:./libgmp.so.10 ./eternitypar 
ERROR: ld.so: object './libc.so' from LD_PRELOAD cannot be preloaded: ignored.
./eternitypar: /lib/libc.so.6: version `GLIBC_2.7' not found (required by ./libgmp.so.10)
$ LD_PRELOAD=./ld-linux.so.2:./libc.so:./libgmp.so.10 ./eternitypar 
ERROR: ld.so: object './ld-linux.so.2' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object './libc.so' from LD_PRELOAD cannot be preloaded: ignored.
./eternitypar: /lib/libc.so.6: version `GLIBC_2.7' not found (required by ./libgmp.so.10)

So I download a package from http://new-www.haskell.org/ghc/download_ghc_7_0_1#x86_64linux and I try:

$ ./configure
checking for path to top of build tree... utils/ghc-pwd/ghc-pwd: error while loading shared libraries: libgmp.so.3: cannot open shared object file: No such file or directory
configure: error: cannot determine current directory

Why is it looking for such an old version, when 7.0.1 should be up-to-date? But fine, I can replace ghc-pwd with symlinked /bin/pwd, but I have a problem with some pgcc installed on the machine, so I run ./configure --with-gcc=/usr/bin/gcc: (/usr/bin/gcc exists and works)

checking for path to top of build tree... /u/gar061/tmp/ghc-7.0.1
checking for perl... /usr/bin/perl
checking if your perl works in shell scripts... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln -s works... yes
checking for ar... /usr/bin/ar
checking whether /usr/bin/ar is GNU ar... yes
checking for ar arguments... q
checking for gcc... /tools/pgi725/linux86-64/7.2-5/bin/pgcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... no
checking whether /tools/pgi725/linux86-64/7.2-5/bin/pgcc accepts -g... yes
checking for /tools/pgi725/linux86-64/7.2-5/bin/pgcc option to accept ISO C89... none needed
checking whether ranlib is needed... no
checking for sed... /bin/sed
configure: error: gcc is required

It's ignoring my choice of GCC. Installation of 6.12.3 runs the same way. Then I move to compilation from source codes, but here - http://new-www.haskell.org/ghc/download_ghc_7_0_1#sources - I read:

"The source distribution needs an installed GHC (version 6.10 at least)."

Oh, so I need the application to build the application? What's the reason?

Is there any other way to make it work?

Thanks,
Ondřej Garncarz


More information about the Beginners mailing list