[GHC] #7717: Libffi errors while cross-compiling GHC 7.6.2 (Stage 1)

GHC cvs-ghc at haskell.org
Mon Feb 25 09:48:53 CET 2013


#7717: Libffi errors while cross-compiling GHC 7.6.2 (Stage 1)
-----------------------------+----------------------------------------------
Reporter:  guest             |          Owner:                
    Type:  bug               |         Status:  new           
Priority:  normal            |      Component:  Compiler (FFI)
 Version:  7.6.2             |       Keywords:                
      Os:  Unknown/Multiple  |   Architecture:  mips          
 Failure:  None/Unknown      |      Blockedby:                
Blocking:                    |        Related:                
-----------------------------+----------------------------------------------
 I'm trying to cross-build GHC 7.6.2. I got stuck when I was trying to
 build a Stage 1 compiler [1].

 (There is a chance that it's not a bug; maybe I misunderstood the
 process.)

 Steps to reproduce:

 $ ./configure --target=mips64el-linux --with-gcc=/usr/bin/gcc \
               --with-ld=/usr/bin/ld --with-nm=/usr/bin/nm

 Did I specify the wrong binaries? These are the same I used for Stage
 0 and libs boot phases.

 Maybe I should use the ones for mips64el... But how?

 ----------------------------------------------------------------------
 Configure completed successfully.

    Building GHC version  : 7.6.2

    Build platform        : i386-unknown-linux
    Host platform         : i386-unknown-linux
    Target platform       : mips-unknown-linux

    Bootstrapping using   : /usr/local/bin/ghc
       which is version   : 7.6.2

    Using GCC                 : /usr/bin/gcc
       which is version       : 4.4.5
    Building a cross compiler : YES
    Porting to foreign arch   : NO
    Alien script              :

    ld       : /usr/bin/ld
    Happy    : /usr/bin/happy (1.18.4)
    Alex     : /usr/bin/alex (2.3.3)
    Python   : /usr/bin/python
    Perl     : /usr/bin/perl
    dblatex  :
    xsltproc : /usr/bin/xsltproc

    HsColour was not found; documentation will not contain source links

    Building DocBook HTML documentation : NO
    Building DocBook PS documentation   : NO
    Building DocBook PDF documentation  : NO
 ----------------------------------------------------------------------

 $ make

 make[5]: Entering directory `/ghc-build2/ghc-7.6.2/libffi/build/mips64el-
 unknown-linux-gnu'
 depbase=`echo src/prep_cif.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
         /bin/bash ./libtool --tag=CC   --mode=compile /usr/bin/gcc
 -DHAVE_CONFIG_H -I. -I..  -I. -I../include -Iinclude -I../src
 -DFFI_BUILDING  -g  -fno-stack-protector -w -Wall -fexceptions -MT
 src/prep_cif.lo -MMD -MP -MF $depbase.Tpo -c -o src/prep_cif.lo
 ../src/prep_cif.c &&\
         mv -f $depbase.Tpo $depbase.Plo
 libtool: compile:  /usr/bin/gcc -DHAVE_CONFIG_H -I. -I.. -I. -I../include
 -Iinclude -I../src -DFFI_BUILDING -g -fno-stack-protector -w -Wall
 -fexceptions -MT src/prep_cif.lo -MMD -MP -MF src/.deps/prep_cif.Tpo -c
 ../src/prep_cif.c -o src/prep_cif.o
 In file included from include/ffi.h:67,
                  from ../src/prep_cif.c:26:
 include/ffitarget.h:59:3: error: #error -- something is very wrong --
 make[5]: *** [src/prep_cif.lo] Error 1
 make[5]: Leaving directory `/ghc-build2/ghc-7.6.2/libffi/build/mips64el-
 unknown-linux-gnu'
 make[4]: *** [all-recursive] Error 1
 make[4]: Leaving directory `/ghc-build2/ghc-7.6.2/libffi/build/mips64el-
 unknown-linux-gnu'
 make[3]: *** [all] Error 2
 make[3]: Leaving directory `/ghc-build2/ghc-7.6.2/libffi/build/mips64el-
 unknown-linux-gnu'
 make[2]: *** [all-all] Error 2
 make[1]: *** [libffi/stamp.ffi.static.build] Error 2
 make: *** [all] Error 2

 Similar report: [2].

 I added these lines before the error:

 #ifndef _MIPS_SIM
 #  define _MIPS_SIM _ABIN32
 #endif

 And continued:

 $ make

 ../src/mips/ffi.c: In function 'ffi_prep_cif_machdep':
 ../src/mips/ffi.c:468: error: duplicate case value
 ../src/mips/ffi.c:463: error: previously used here
 ../src/mips/ffi.c:548: error: duplicate case value
 ../src/mips/ffi.c:541: error: previously used here
 make[5]: *** [src/mips/ffi.lo] Error 1
 make[5]: Leaving directory `/ghc-build2/ghc-7.6.2/libffi/build/mips64el-
 unknown-linux-gnu'
 make[4]: *** [all-recursive] Error 1
 make[4]: Leaving directory `/ghc-build2/ghc-7.6.2/libffi/build/mips64el-
 unknown-linux-gnu'
 make[3]: *** [all] Error 2
 make[3]: Leaving directory `/ghc-build2/ghc-7.6.2/libffi/build/mips64el-
 unknown-linux-gnu'
 make[2]: *** [all-all] Error 2
 make[1]: *** [libffi/stamp.ffi.static.build] Error 2
 make: *** [all] Error 2

 Similar report: [3].

 All my attempts to fix the above failed with these errors:

 ../src/mips/n32.S: Assembler messages:
 ../src/mips/n32.S:44: Error: unknown pseudo-op: `.abicalls'
 ../src/mips/n32.S:46: Error: expected comma after "mips4"
 ../src/mips/n32.S:50: Error: unknown pseudo-op: `.ent'
 ../src/mips/n32.S:53: Error: unknown pseudo-op: `.frame'
 ../src/mips/n32.S:54: Error: unknown pseudo-op: `.mask'
 ../src/mips/n32.S:55: Error: unknown pseudo-op: `.fmask'
 ../src/mips/n32.S:58: Error: no such instruction: `dsubu $sp,( 8 * 8)'

 [...]

 make[5]: *** [src/mips/n32.lo] Error 1
 make[5]: Leaving directory `/ghc-build2/ghc-7.6.2/libffi/build/mips64el-
 unknown-linux-gnu'
 make[4]: *** [all-recursive] Error 1
 make[4]: Leaving directory `/ghc-build2/ghc-7.6.2/libffi/build/mips64el-
 unknown-linux-gnu'
 make[3]: *** [all] Error 2
 make[3]: Leaving directory `/ghc-build2/ghc-7.6.2/libffi/build/mips64el-
 unknown-linux-gnu'
 make[2]: *** [all-all] Error 2
 make[1]: *** [libffi/stamp.ffi.static.build] Error 2
 make: *** [all] Error 2

 [1] http://hackage.haskell.org/trac/ghc/wiki/CrossCompilation
 [2] http://mail-index.netbsd.org/netbsd-bugs/2012/11/16/msg030949.html
 [3] http://sourceware.org/ml/libffi-discuss/2012/msg00201.html

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



More information about the ghc-tickets mailing list