From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: Cross-building GHC Date: Thu, 16 May 2013 20:16:13 +0200 Message-ID: <87r4h6aiz6.fsf@gnu.org> References: <87sj443got.fsf@karetnikov.org> <87620trip2.fsf@gnu.org> <87obelg5iu.fsf@karetnikov.org> <8738vxh8ld.fsf@gnu.org> <87sj1nnydx.fsf@karetnikov.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([208.118.235.92]:34068) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ud5Z5-0004hM-N2 for bug-guix@gnu.org; Thu, 16 May 2013 17:18:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ud5Z0-0002mD-2k for bug-guix@gnu.org; Thu, 16 May 2013 17:18:19 -0400 Received: from [2a01:e0b:1:123:ca0a:a9ff:fe03:271e] (port=56032 helo=xanadu.aquilenet.fr) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ud5Yz-0002ci-PY for bug-guix@gnu.org; Thu, 16 May 2013 17:18:14 -0400 In-Reply-To: <87sj1nnydx.fsf@karetnikov.org> (Nikita Karetnikov's message of "Thu, 16 May 2013 12:04:58 +0400") List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org To: Nikita Karetnikov Cc: bug-guix@gnu.org Nikita Karetnikov skribis: > 1. It seems that mips64el is not supported. So it's necessary to port > [2] GHC. Ouch. Quite an endeavor, I suppose. > First I installed the cross-compiler to my profile and ran the following > commands: > > # export CPATH=3D"/root/.guix-profile/include" > # export LIBRARY_PATH=3D"/root/.guix-profile/lib" > # export C_INCLUDE_PATH=3D/nix/store/xisav2mcispg63ns8w9x5blvd14gyrd7-gli= bc-cross-mips64el-linux-gnu-2.17/include > > # ln -s /nix/store/xisav2mcispg63ns8w9x5blvd14gyrd7-glibc-cross-mips64el-= linux-gnu-2.17/lib/crt1.o /nix/store/x4j44am492nnajlwja1c7gs2ikqkdff4-gcc-c= ross-mips64el-linux-gnu-4.7.3/lib/gcc/mips64el-linux-gnu/4.7.3/crt1.o > # ln -s /nix/store/xisav2mcispg63ns8w9x5blvd14gyrd7-glibc-cross-mips64el-= linux-gnu-2.17/lib/crti.o /nix/store/x4j44am492nnajlwja1c7gs2ikqkdff4-gcc-c= ross-mips64el-linux-gnu-4.7.3/lib/gcc/mips64el-linux-gnu/4.7.3/crti.o > # ln -s /nix/store/xisav2mcispg63ns8w9x5blvd14gyrd7-glibc-cross-mips64el-= linux-gnu-2.17/lib/crtn.o /nix/store/x4j44am492nnajlwja1c7gs2ikqkdff4-gcc-c= ross-mips64el-linux-gnu-4.7.3/lib/gcc/mips64el-linux-gnu/4.7.3/crtn.o > > These symlinks are needed because CROSS_LIBRARY_PATH doesn't work. Oh. I dropped the ball on this issue, but I hope to get back to it Real Soon Now. [...] > After that I unpacked 'ghc-7.6.3-src.tar.bz2' to 'T'. And replaced > '$GHC_PACKAGE_DB_FLAG' with 'package-db' in 'configure' because it > failed otherwise. > > Then I ran these commands: > > T# cp /bin/pwd utils/ghc-pwd/ghc-pwd > T# perl boot > T# ./configure --enable-hc-boot --target=3Dmips64el-linux-gnu > > 'configure' returned lots of errors: > > [...] > > /nix/store/xisav2mcispg63ns8w9x5blvd14gyrd7-glibc-cross-mips64el-linux-gn= u-2.17/include/bits/types.h:128:3: > error: #error=20 > > In file included from /nix/store/xisav2mcispg63ns8w9x5blvd14gyrd7-glibc-c= ross-mips64el-linux-gnu-2.17/include/bits/byteswap.h:27:0: > 0, > from /nix/store/xisav2mcispg63ns8w9x5blvd14gyrd7-gli= bc-cross-mips64el-linux-gnu-2.17/include/endian.h:60, > from /nix/store/xisav2mcispg63ns8w9x5blvd14gyrd7-gli= bc-cross-mips64el-linux-gnu-2.17/include/bits/waitstatus.h:64, > from /nix/store/xisav2mcispg63ns8w9x5blvd14gyrd7-gli= bc-cross-mips64el-linux-gnu-2.17/include/stdlib.h:42, > from /usr/local/lib/ghc-7.6.3/include/Rts.h:190, > from /tmp/ghc6782_0/ghc6782_0.c:1: > > [...] > > /nix/store/xisav2mcispg63ns8w9x5blvd14gyrd7-glibc-cross-mips64el-linux-gn= u-2.17/include/bits/types.h:133:1: > error: unknown type name '__STD_TYPE' > > /nix/store/xisav2mcispg63ns8w9x5blvd14gyrd7-glibc-cross-mips64el-linux-gn= u-2.17/include/bits/types.h:133:25: > error: expected '=3D', ',', ';', 'asm' or '__attribute__' before '__= dev_t' You need to have both glibc-mipsel.../include and linux-libre-headers-mipsel.../include in CROSS_CPATH. Can you check whether this is the case. Another possibility is that it=E2=80=99s picking native headers instead of cross-headers for some reason. To check whether this is the case, you can look at the output of the mipsel-...-gcc --verbose, or just strace that and look at the .h files it opens. TIA, Ludo=E2=80=99.