GHC on Solaris Nevada

Hello all, I am trying to get a working GHC on Solaris Nevada (Solaris 11). I've tried the binary versions for Solaris 10 made by Christian Maeder. I couldn't get GHC 6.8.2 to install properly and GHC 6.6 does not work (it crashes the moment it needs to link to a library). After that i tried to make an unregistered bootstrap of GHC 6.6 using Linux as the host OS. The bootstrapping failed on Solaris when making genapply or cabal-setup. The linker reports symbol referencing errors. Has someone already successfully build GHC on Solaris 11? Regards, Felix

Felix Martini wrote:
Hello all,
I am trying to get a working GHC on Solaris Nevada (Solaris 11). I've tried the binary versions for Solaris 10 made by Christian Maeder. I couldn't get GHC 6.8.2 to install properly and GHC 6.6 does not work (it crashes the moment it needs to link to a library). After that i
What are the exact error messages? Do you have all required libraries (see below)?
tried to make an unregistered bootstrap of GHC 6.6 using Linux as the host OS. The bootstrapping failed on Solaris when making genapply or cabal-setup. The linker reports symbol referencing errors. Has someone already successfully build GHC on Solaris 11?
bootstrapping from C seems to be pretty hopeless. Maybe my new binary release is easier to install: http://www.haskell.org/ghc/dist/6.8.2/maeder/ghc-6.8.2-i386-unknown-solaris2... see also http://article.gmane.org/gmane.comp.lang.haskell.glasgow.user/13868 Christian -bash-3.1$ ldd lib/ghc-6.8.2/ghc-6.8.2 librt.so.1 => /lib/librt.so.1 libreadline.so.5 => /usr/local/lib/libreadline.so.5 libncurses.so.5 => /usr/local/lib/libncurses.so.5 libdl.so.1 => /lib/libdl.so.1 libm.so.2 => /lib/libm.so.2 libgmp.so.3 => /usr/local/lib/libgmp.so.3 libpthread.so.1 => /lib/libpthread.so.1 libc.so.1 => /lib/libc.so.1 libaio.so.1 => /lib/libaio.so.1 libmd5.so.1 => /lib/libmd5.so.1 libiconv.so.2 => /usr/local/lib/libiconv.so.2 libsocket.so.1 => /lib/libsocket.so.1 libnsl.so.1 => /lib/libnsl.so.1 libgcc_s.so.1 => /usr/local/lib/libgcc_s.so.1 libmp.so.2 => /lib/libmp.so.2 libscf.so.1 => /lib/libscf.so.1 libdoor.so.1 => /lib/libdoor.so.1 libuutil.so.1 => /lib/libuutil.so.1 libgen.so.1 => /lib/libgen.so.1

Christian Maeder wrote:
Maybe my new binary release is easier to install:
http://www.haskell.org/ghc/dist/6.8.2/maeder/ghc-6.8.2-i386-unknown-solaris2...
Sorry, my new binary is at: http://www.dfki.de/sks/hets/pc-solaris/versions/ghc-6.8.2-i386-unknown-solar... C.

Christian Maeder wrote:
Maybe my new binary release is easier to install
Your new release installed ok, but GHC does not work on my system. I can compile a simple hello world program, but running ghci or doing other compilations result in program termination of GHC and the terminal. GHC 6.6 did the same.
-bash-3.1$ ldd lib/ghc-6.8.2/ghc-6.8.2 librt.so.1 => /lib/librt.so.1 libreadline.so.5 => /usr/local/lib/libreadline.so.5 libncurses.so.5 => /usr/local/lib/libncurses.so.5 libdl.so.1 => /lib/libdl.so.1 libm.so.2 => /lib/libm.so.2 libgmp.so.3 => /usr/local/lib/libgmp.so.3 libpthread.so.1 => /lib/libpthread.so.1 libc.so.1 => /lib/libc.so.1 libaio.so.1 => /lib/libaio.so.1 libmd5.so.1 => /lib/libmd5.so.1 libiconv.so.2 => /usr/local/lib/libiconv.so.2 libsocket.so.1 => /lib/libsocket.so.1 libnsl.so.1 => /lib/libnsl.so.1 libgcc_s.so.1 => /usr/local/lib/libgcc_s.so.1 libmp.so.2 => /lib/libmp.so.2 libscf.so.1 => /lib/libscf.so.1 libdoor.so.1 => /lib/libdoor.so.1 libuutil.so.1 => /lib/libuutil.so.1 libgen.so.1 => /lib/libgen.so.1
My result of ldd is: bash-3.00$ ldd /usr/local/lib/ghc-6.8.2/ghc-6.8.2 librt.so.1 => /lib/librt.so.1 libreadline.so.5 => /usr/lib/libreadline.so.5 libncurses.so.5 => /usr/gnu/lib/libncurses.so.5 libdl.so.1 => /lib/libdl.so.1 libm.so.2 => /lib/libm.so.2 libgmp.so.3 => /usr/lib/libgmp.so.3 libpthread.so.1 => /lib/libpthread.so.1 libc.so.1 => /lib/libc.so.1 libcurses.so.1 => /lib/libcurses.so.1 I've checked that i also have the other so's in your output in my LD_LIBRARY_PATH. The following is the last part of the truss output when trying to run ghci. PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP 17910 felix 5184K 2216K sleep 23 0 0:00:00 0.7% bash/1 /1: setcontext(0x08044AD0) /1: ioctl(1, TCGETA, 0x08044CBC) = 0 /1: stat64("/export/home/felix/.terminfo", 0x08044BF0) Err#2 ENOENT /1: stat64("/usr/gnu/share/terminfo", 0x08044BF0) = 0 /1: access("/usr/gnu/share/terminfo/x/xterm", R_OK) = 0 /1: open64("/usr/gnu/share/terminfo/x/xterm", O_RDONLY) = 5 /1: read(5, "1A01 0\0 &\00F\09D01 F05".., 4097) = 2522 /1: close(5) = 0 /1: ioctl(1, TCGETA, 0x08044CBC) = 0 /1: ioctl(1, TCGETS, 0x08FA0898) = 0 /1: ioctl(1, TCGETA, 0x08044C7C) = 0 /1: ioctl(1, TIOCGWINSZ, 0x08044CB8) = 0 /1: ioctl(1, TCSETSW, 0x08FA0874) = 0 /2: pollsys(0xD2AFBE90, 1, 0x00000000, 0x00000000) (sleeping...) /1: Received signal #1, SIGHUP [default] /1: siginfo: SIGHUP pid=17910 uid=65535 Regards, Felix

I have located the problem i had with GHC. I had compiled the readline library from a spec file. Apparently it is not compatible with the binary GHC release. With the prebuilt readline package from sunfreeware GHC works fine now. Regards, Felix

Felix Martini wrote:
Christian Maeder wrote:
Maybe my new binary release is easier to install
Your new release installed ok, but GHC does not work on my system. I can compile a simple hello world program, but running ghci or doing other compilations result in program termination of GHC and the terminal. GHC 6.6 did the same.
-bash-3.1$ ldd lib/ghc-6.8.2/ghc-6.8.2 librt.so.1 => /lib/librt.so.1 libreadline.so.5 => /usr/local/lib/libreadline.so.5 libncurses.so.5 => /usr/local/lib/libncurses.so.5 libdl.so.1 => /lib/libdl.so.1 libm.so.2 => /lib/libm.so.2 libgmp.so.3 => /usr/local/lib/libgmp.so.3 libpthread.so.1 => /lib/libpthread.so.1 libc.so.1 => /lib/libc.so.1 libaio.so.1 => /lib/libaio.so.1 libmd5.so.1 => /lib/libmd5.so.1 libiconv.so.2 => /usr/local/lib/libiconv.so.2 libsocket.so.1 => /lib/libsocket.so.1 libnsl.so.1 => /lib/libnsl.so.1 libgcc_s.so.1 => /usr/local/lib/libgcc_s.so.1 libmp.so.2 => /lib/libmp.so.2 libscf.so.1 => /lib/libscf.so.1 libdoor.so.1 => /lib/libdoor.so.1 libuutil.so.1 => /lib/libuutil.so.1 libgen.so.1 => /lib/libgen.so.1
My result of ldd is:
bash-3.00$ ldd /usr/local/lib/ghc-6.8.2/ghc-6.8.2 librt.so.1 => /lib/librt.so.1 libreadline.so.5 => /usr/lib/libreadline.so.5 libncurses.so.5 => /usr/gnu/lib/libncurses.so.5 libdl.so.1 => /lib/libdl.so.1 libm.so.2 => /lib/libm.so.2 libgmp.so.3 => /usr/lib/libgmp.so.3 libpthread.so.1 => /lib/libpthread.so.1 libc.so.1 => /lib/libc.so.1 libcurses.so.1 => /lib/libcurses.so.1
Your ldd output looks nice. Is it still that simple after you've update your readline lib? Most of my above libs get in via libreadline: -bash-3.1$ ldd /usr/local/lib/libreadline.so.5 warning: ldd: /usr/local/lib/libreadline.so.5: is not executable libiconv.so.2 => /usr/local/lib/libiconv.so.2 libsocket.so.1 => /lib/libsocket.so.1 libnsl.so.1 => /lib/libnsl.so.1 libm.so.2 => /lib/libm.so.2 libgcc_s.so.1 => /usr/local/lib/libgcc_s.so.1 libc.so.1 => /lib/libc.so.1 libmp.so.2 => /lib/libmp.so.2 libmd5.so.1 => /lib/libmd5.so.1 libscf.so.1 => /lib/libscf.so.1 libdoor.so.1 => /lib/libdoor.so.1 libuutil.so.1 => /lib/libuutil.so.1 libgen.so.1 => /lib/libgen.so.1 I've not idea about /lib/libaio.so.1 (Possibly our system is set up suboptimal.) Cheers Christian

With the readline package from sunfreeware my ldd output is now $ ldd /usr/local/lib/ghc-6.8.2/ghc-6.8.2 librt.so.1 => /lib/librt.so.1 libreadline.so.5 => /usr/local/lib/libreadline.so.5 libncurses.so.5 => /usr/gnu/lib/libncurses.so.5 libdl.so.1 => /lib/libdl.so.1 libm.so.2 => /lib/libm.so.2 libgmp.so.3 => /usr/lib/libgmp.so.3 libpthread.so.1 => /lib/libpthread.so.1 libc.so.1 => /lib/libc.so.1 libgcc_s.so.1 => /usr/sfw/lib/libgcc_s.so.1 $ ldd /usr/local/lib/libreadline.so.5 warning: ldd: /usr/local/lib/libreadline.so.5: is not executable libgcc_s.so.1 => /usr/sfw/lib/libgcc_s.so.1 libc.so.1 => /lib/libc.so.1 libm.so.2 => /lib/libm.so.2 This is on Solaris Express Developer Edition 9/07.
participants (2)
-
Christian Maeder
-
Felix Martini