[GHC] #8910: cross compiling for x86_64 solaris2

GHC ghc-devs at haskell.org
Wed Mar 19 12:06:13 UTC 2014


#8910: cross compiling for x86_64 solaris2
----------------------------------+----------------------------------
       Reporter:  maeder          |             Owner:
           Type:  task            |            Status:  new
       Priority:  normal          |         Milestone:
      Component:  Compiler        |           Version:  7.8.1-rc2
       Keywords:                  |  Operating System:  Solaris
   Architecture:  x86_64 (amd64)  |   Type of failure:  Runtime crash
     Difficulty:  Unknown         |         Test Case:
     Blocked By:                  |          Blocking:
Related Tickets:                  |
----------------------------------+----------------------------------
 using a "gcc -m64" and a working ghc-7.8.0.20140228-i386-unknown-solaris2
 I was able to create a 64Bit ghc-stage2 compiler that can compile a simple
 hello world program but may create binaries from larger sources that seg-
 fault. In particular "ghc-stage2 --interactive" seg-faults:

 {{{
 [Thread debugging using libthread_db enabled]
 [New Thread 1 (LWP 1)]
 [New LWP    2        ]
 [New LWP    3        ]
 [New LWP    4        ]
 GHCi, version 7.8.0.20140228: http://www.haskell.org/ghc/  :? for help
 Loading package ghc-prim ... linking ... done.
 Loading package integer-simple ... linking ... done.
 Loading package base ... linking ...
 Program received signal SIGSEGV, Segmentation fault.
 [Switching to Thread 1 (LWP 1)]
 0x00000000041ea4c0 in ?? ()
 (gdb) bt
 #0  0x00000000041ea4c0 in ?? ()
 #1  0x000000000369cf92 in resolveObjs ()
 #2  0x000000000206de99 in cplU_info ()
 #3  0x000000000000000c in ?? ()
 #4  0x0000000003d0fe09 in base_GHCziEventziManager_zdLr88clvl8_closure ()
 #5  0x0000000000000000 in ?? ()
 }}}

 The content of my mk/build.mk is just
 {{{
 INTEGER_LIBRARY = integer-simple
 }}}

 Creating a binary-dist also worked, but unpacking and "gmake install"
 failed at first because old-time, haskell98 and haskell2010 libraries were
 missing due to "!CrossCompiling" in ghc.mk and the second time with:

 {{{
 Reading package info from "rts/dist/package.conf.install" ... done.
 "utils/ghc-cabal/dist-install/build/tmp/ghc-cabal-bindist" register
 libraries/ghc-prim dist-install
 "/local/home/maeder/haskell/ghc-7.8-x64-static/lib/ghc-7.8.0.20140228/bin/ghc"
 "/local/home/maeder/haskell/ghc-7.8-x64-static/lib/ghc-7.8.0.20140228/bin
 /ghc-pkg"
 "/local/home/maeder/haskell/ghc-7.8-x64-static/lib/ghc-7.8.0.20140228" ''
 '/local/home/maeder/haskell/ghc-7.8-x64-static'
 '/local/home/maeder/haskell/ghc-7.8-x64-static/lib/ghc-7.8.0.20140228'
 '/local/home/maeder/haskell/ghc-7.8-x64-static/share/doc/ghc/html/libraries'
 NO
 ghc-cabal: Bad interface file: dist-install/build/GHC/CString.hi
 magic number mismatch: old/corrupt interface file? (wanted 129742, got
 33214052)
 gmake[1]: *** [install_packages] Fehler 1
 }}}

 What am I doing wrong for cross compiling? There is also #8378 using a
 different build host. #8713 also seem to use x86_64 solaris2 libs.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8910>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list