[commit: ghc] master: Tidy up cross-compiling (109a1e5)

Simon Marlow marlowsd at gmail.com
Sun Jan 20 14:21:02 CET 2013


On 19/01/13 00:44, Stephen Paul Weber wrote:

> Needs the patch to add QNX as a supported OS (first patch from
> <http://www.haskell.org/pipermail/cvs-ghc/2012-December/079078.html>) to
> even try to configure, which is expected.  After applying that patch:

I'll get that patch committed.

> ./configure --target=i486-pc-nto-qnx8.0.0 --prefix="${QNX_HOST}/usr"
>
> succeeds.  Copied build.mk.sample to build.mk and added:
>
> Stage1Only = YES
>
> as instructed.  Uncommented the "quick" build type.  Type "make" and get:
>
> $ make
> + test -f mk/config.mk.old
> + cp -p mk/config.mk mk/config.mk.old
> touch -r mk/config.mk.old mk/config.mk
> + test -f mk/project.mk.old
> + cp -p mk/project.mk mk/project.mk.old
> touch -r mk/project.mk.old mk/project.mk
> + test -f compiler/ghc.cabal.old
> + cp -p compiler/ghc.cabal compiler/ghc.cabal.old
> touch -r compiler/ghc.cabal.old compiler/ghc.cabal
> ===--- building phase 0
> make -r --no-print-directory -f ghc.mk phase=0 phase_0_builds
> libraries/hpc/ghc.mk:3: libraries/hpc/dist-boot/package-data.mk: No such
> file or directory
> libraries/Cabal/Cabal/ghc.mk:3:
> libraries/Cabal/Cabal/dist-boot/package-data.mk: No such file or directory
> libraries/binary/ghc.mk:3: libraries/binary/dist-boot/package-data.mk:
> No such file or directory
> libraries/bin-package-db/ghc.mk:3:
> libraries/bin-package-db/dist-boot/package-data.mk: No such file or
> directory
> libraries/hoopl/ghc.mk:3: libraries/hoopl/dist-boot/package-data.mk: No
> such file or directory
> libraries/transformers/ghc.mk:3:
> libraries/transformers/dist-boot/package-data.mk: No such file or directory
> compiler/ghc.mk:439: compiler/stage1/package-data.mk: No such file or
> directory
> utils/hsc2hs/ghc.mk:15: utils/hsc2hs/dist/package-data.mk: No such file
> or directory
> ghc/ghc.mk:109: ghc/stage1/package-data.mk: No such file or directory
> libraries/dph/ghc.mk:123: *** dph_th_deps(v):
> libraries/dph/dph-base_dist-install_GHCI_LIB not defined!.  Stop.
> make: *** [all] Error 2
>
> So, I have commented out the dph libraries from ./packages
> I think this is still expected behaviour.  Should something about this
> possibility be added to the wiki page?

Yes, you need to omit the dph packages when getting the subrepos.  I've 
added that to the page.

> The next thing to happen is I run into
> <http://hackage.haskell.org/trac/ghc/ticket/7519>, so I apply the patch
> from there and continue.
>
> building integer-gmp fails with:
>
> cd libraries/integer-gmp/gmp; (set -o igncr 2>/dev/null) && set -o
> igncr; export SHELLOPTS; \
>          PATH=`pwd`:$PATH; \
>          export PATH; \
>          cd gmpbuild && \
>
> CC=/home/singpolyma/bbndk/host_10_0_9_404/linux/x86/usr/bin/i486-pc-nto-qnx8.0.0-gcc
> NM=/home/singpolyma/bbndk/host_10_0_9_404/linux/x86/usr/bin/i486-pc-nto-qnx8.0.0-nm
> AR=/usr/bin/ar /bin/sh configure \
>            --enable-shared=no \
>            --host=i386-unknown-linux --build=i386-unknown-linux
> checking build system type... i386-unknown-linux-gnu
> checking host system type... i386-unknown-linux-gnu
> checking for a BSD-compatible install... /usr/bin/install -c
> checking whether build environment is sane... yes
> checking for a thread-safe mkdir -p... /bin/mkdir -p
> checking for gawk... no
> checking for mawk... mawk
> checking whether make sets $(MAKE)... yes
> checking whether to enable maintainer-specific portions of Makefiles... no
> checking ABI=32
> checking whether
> /home/singpolyma/bbndk/host_10_0_9_404/linux/x86/usr/bin/i486-pc-nto-qnx8.0.0-gcc
> is gcc... yes
> checking compiler
> /home/singpolyma/bbndk/host_10_0_9_404/linux/x86/usr/bin/i486-pc-nto-qnx8.0.0-gcc
> -m32 -O2 -pedantic -fomit-frame-pointer ... no, program does not run
> checking compiler
> /home/singpolyma/bbndk/host_10_0_9_404/linux/x86/usr/bin/i486-pc-nto-qnx8.0.0-gcc
> -O2 -pedantic -fomit-frame-pointer ... no, program does not run
> configure: error: could not find a working compiler, see config.log for
> details
> make[1]: *** [libraries/integer-gmp/gmp/gmp.h] Error 1
> make: *** [all] Error 2
>
> I'm not sure why it does not get the target right, but I can work around
> this by adding the following to build.mk:
>
> INTEGER_LIBRARY=integer-simple

Right, I've added this to the page too.

> So I do this and continue, which leads me to:
>
> make[1]: *** No rule to make target
> `libraries/integer-gmp/dist-install/build/GHC/Integer.hi', needed by
> `libraries/base/dist-install/build/GHC/Base.o'.  Stop.
> make: *** [all] Error 2
>
> Oh, it didn't switch.  Hmm.

I believe a 'make distclean' is necessary after changing 
INTEGER_LIBRARY, because it gets stuck into GHC's Config.hs early on.  I 
ran into exactly this in my build.  Also added this to the page.

> Success!  I type `make install` which results in:
>
> Installing library in
> /home/singpolyma/bbndk/host_10_0_9_404/linux/x86/usr/lib/ghc-7.7.20130118/transformers-0.3.0.0
>
> "/home/singpolyma/bbndk/host_10_0_9_404/linux/x86/usr/lib/ghc-7.7.20130118/bin/ghc-pkg"
> --force --global-package-db
> "/home/singpolyma/bbndk/host_10_0_9_404/linux/x86/usr/lib/ghc-7.7.20130118/package.conf.d"
> update rts/package.conf.install
> /bin/sh: 1:
> /home/singpolyma/bbndk/host_10_0_9_404/linux/x86/usr/lib/ghc-7.7.20130118/bin/ghc-pkg:
> not found
> make[1]: *** [install_packages] Error 127
> make: *** [install] Error 2
>

Ok, we should fix 'make install'.  I didn't have much luck with it either.

Cheers,
	Simon





More information about the ghc-devs mailing list