<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head><body><div><br></div><div>Digging around online, I suspect that you may not have the GNU C++ compiler installed at all. Take this with a shaker of salt.</div><div><br></div><div><br></div><div id="composer_signature"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><div style="font-size:85%;color:#575757">David Feuer</div><div style="font-size:85%;color:#575757">Well-Typed, LLP</div></div><div><br></div><div style="font-size:100%;color:#000000"><!-- originalMessage --><div>-------- Original message --------</div><div>From: Simon Peyton Jones via ghc-devs <ghc-devs@haskell.org> </div><div>Date: 11/20/17  8:14 AM  (GMT-05:00) </div><div>To: ghc-devs@haskell.org </div><div>Subject: Linux failure </div><div><br></div></div>Hi devs<br>I've got my Linux box upgraded to a recent version of Ubuntu, so I'm no longer stuck on gcc version.<br>But I can't build either.  Something strange with /lib/cpp fails sanity check.  The log is below.<br>Can anyone help? I'm a bit stalled.<br>This call to "make" follows the same failure when I typed "sh validate -fast".   But by carrying on from where it got stuck the log is way shorter.<br>Thanks<br>Simon<br><br>simonpj@cam-05-unx:~/5builds/HEAD$ make<br><br>===--- building phase 0<br><br>make --no-print-directory -f ghc.mk phase=0 phase_0_builds<br><br>make[1]: Nothing to be done for 'phase_0_builds'.<br><br>===--- building phase 1<br><br>make --no-print-directory -f ghc.mk phase=1 phase_1_builds<br><br>make[1]: Nothing to be done for 'phase_1_builds'.<br><br>===--- building final phase<br><br>make --no-print-directory -f ghc.mk phase=final all<br><br>rts/ghc.mk:547: rts/dist/build/.depend-v-dyn-l-debug-thr-thr_debug-thr_l-debug_dyn-thr_dyn-thr_debug_dyn-l_dyn-thr_l_dyn.c_asm: No such file or directory<br><br>libraries/ghci/ghc.mk:4: libraries/ghci/dist-install/build/.depend-v-dyn.haskell: No such file or directory<br><br>"rm" -f libffi/stamp.ffi.static.configure<br><br>"rm" -f libffi/stamp.ffi.static.build<br><br>"rm" -f libffi/stamp.ffi.static.install<br><br>"rm" -f libffi/stamp.ffi.static-shared.configure<br><br>"rm" -f libffi/stamp.ffi.static-shared.build<br><br>"rm" -f libffi/stamp.ffi.static-shared.install<br><br>"rm" -rf  libffi/build<br><br>cat libffi-tarballs/libffi*.tar.gz | /bin/gzip -d | { cd libffi && /bin/tar -xf - ; }<br><br>mv libffi/libffi-* libffi/build<br><br>cp "/home/simonpj/5builds/HEAD/config.guess" libffi/build/config.guess<br><br>cp "/home/simonpj/5builds/HEAD/config.sub"   libffi/build/config.sub<br><br>chmod +x libffi/ln<br><br># We need to use -MMD rather than -MD, as otherwise we get paths<br><br># like c:/... in the dependency files on Windows, and the extra<br><br># colons break make<br><br>mv libffi/build/Makefile.in libffi/build/Makefile.in.orig<br><br>sed "s/-MD/-MMD/" < libffi/build/Makefile.in.orig > libffi/build/Makefile.in<br><br># We attempt to specify the installation directory below with --libdir,<br><br># but libffi installs into 'toolexeclibdir' instead, which may differ<br><br># on systems where gcc has multilib support. Force libffi to use libdir.<br><br># (https://sourceware.org/ml/libffi-discuss/2014/msg00016.html)<br><br>mv libffi/build/Makefile.in libffi/build/Makefile.in.orig<br><br>sed 's:@toolexeclibdir@:$(libdir):g' < libffi/build/Makefile.in.orig > libffi/build/Makefile.in<br><br># install-sh is used when /usr/bin/install is missing; ensure its<br><br># path in libffi's Makefile is correct. See GHC #11109.<br><br>mv libffi/build/Makefile.in libffi/build/Makefile.in.orig<br><br>sed 's|@INSTALL@|$(subst ../install-sh,/home/simonpj/5builds/HEAD/install-sh,@INSTALL@)|g' < libffi/build/Makefile.in.orig > libffi/build/Makefile.in<br><br>cd libffi && \<br><br>    cd build && \<br><br>    CC=gcc \<br><br>    CXX=gcc \<br><br>    LD=ld.gold \<br><br>    AR=ar \<br><br>    NM=nm \<br><br>    RANLIB=ranlib \<br><br>        CFLAGS="-Wall -Werror -fno-stack-protector -w" \<br><br>        LDFLAGS=" -w" \<br><br>        "/bin/bash" ./configure \<br><br>          --prefix=/home/simonpj/5builds/HEAD/libffi/build/inst \<br><br>          --libdir=/home/simonpj/5builds/HEAD/libffi/build/inst/lib \<br><br>          --disable-docs \<br><br>          --enable-static=yes \<br><br>          --enable-shared=yes \<br><br>          --host=x86_64-unknown-linux<br><br>checking build system type... x86_64-pc-linux-gnu<br><br>checking host system type... x86_64-unknown-linux-gnu<br><br>checking target system type... x86_64-unknown-linux-gnu<br><br>continue configure in default builddir "./x86_64-unknown-linux-gnu"<br><br>....exec /bin/sh .././configure "--srcdir=.." "--enable-builddir=x86_64-unknown-linux-gnu" "linux<br><br>gnu"<br><br>checking build system type... x86_64-pc-linux-gnu<br><br>checking host system type... x86_64-unknown-linux-gnu<br><br>checking target system type... x86_64-unknown-linux-gnu<br><br>checking for gsed... sed<br><br>checking for a BSD-compatible install... /usr/bin/install -c<br><br>checking whether build environment is sane... yes<br><br>checking for x86_64-unknown-linux-strip... no<br><br>checking for strip... strip<br><br>checking for a thread-safe mkdir -p... /bin/mkdir -p<br><br>checking for gawk... gawk<br><br>checking whether make sets $(MAKE)... yes<br><br>checking whether make supports nested variables... yes<br><br>checking for x86_64-unknown-linux-gcc... gcc<br><br>checking whether the C compiler works... yes<br><br>checking for C compiler default output file name... a.out<br><br>checking for suffix of executables...<br><br>checking whether we are cross compiling... no<br><br>checking for suffix of object files... o<br><br>checking whether we are using the GNU C compiler... yes<br><br>checking whether gcc accepts -g... yes<br><br>checking for gcc option to accept ISO C89... none needed<br><br>checking whether gcc understands -c and -o together... yes<br><br>checking for style of include used by make... GNU<br><br>checking dependency style of gcc... gcc3<br><br>checking whether we are using the GNU C++ compiler... no<br><br>checking whether gcc accepts -g... no<br><br>checking dependency style of gcc... gcc3<br><br>checking dependency style of gcc... gcc3<br><br>checking how to print strings... printf<br><br>checking for a sed that does not truncate output... /bin/sed<br><br>checking for grep that handles long lines and -e... /bin/grep<br><br>checking for egrep... /bin/grep -E<br><br>checking for fgrep... /bin/grep -F<br><br>checking for ld used by gcc... ld.gold<br><br>checking if the linker (ld.gold) is GNU ld... yes<br><br>checking for BSD- or MS-compatible name lister (nm)... nm<br><br>checking the name lister (nm) interface... BSD nm<br><br>checking whether ln -s works... yes<br><br>checking the maximum length of command line arguments... 1635000<br><br>checking how to convert x86_64-pc-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop<br><br>checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop<br><br>checking for ld.gold option to reload object files... -r<br><br>checking for x86_64-unknown-linux-objdump... no<br><br>checking for objdump... objdump<br><br>checking how to recognize dependent libraries... pass_all<br><br>checking for x86_64-unknown-linux-dlltool... no<br><br>checking for dlltool... no<br><br>checking how to associate runtime and link libraries... printf %s\n<br><br>checking for x86_64-unknown-linux-ar... ar<br><br>checking for archiver @FILE support... @<br><br>checking for x86_64-unknown-linux-strip... strip<br><br>checking for x86_64-unknown-linux-ranlib... ranlib<br><br>checking command to parse nm output from gcc object... ok<br><br>checking for sysroot... no<br><br>checking for a working dd... /bin/dd<br><br>checking how to truncate binary pipes... /bin/dd bs=4096 count=1<br><br>checking for x86_64-unknown-linux-mt... no<br><br>checking for mt... mt<br><br>checking if mt is a manifest tool... no<br><br>checking how to run the C preprocessor... gcc -E<br><br>checking for ANSI C header files... yes<br><br>checking for sys/types.h... yes<br><br>checking for sys/stat.h... yes<br><br>checking for stdlib.h... yes<br><br>checking for string.h... yes<br><br>checking for memory.h... yes<br><br>checking for strings.h... yes<br><br>checking for inttypes.h... yes<br><br>checking for stdint.h... yes<br><br>checking for unistd.h... yes<br><br>checking for dlfcn.h... yes<br><br>checking for objdir... .libs<br><br>checking if gcc supports -fno-rtti -fno-exceptions... yes<br><br>checking for gcc option to produce PIC... -fPIC -DPIC<br><br>checking if gcc PIC flag -fPIC -DPIC works... yes<br><br>checking if gcc static flag -static works... yes<br><br>checking if gcc supports -c -o file.o... yes<br><br>checking if gcc supports -c -o file.o... (cached) yes<br><br>checking whether the gcc linker (ld.gold -m elf_x86_64) supports shared libraries... yes<br><br>checking whether -lc should be explicitly linked in... no<br><br>checking dynamic linker characteristics... GNU/Linux ld.so<br><br>checking how to hardcode library paths into programs... immediate<br><br>checking whether stripping libraries is possible... yes<br><br>checking if libtool supports shared libraries... yes<br><br>checking whether to build shared libraries... yes<br><br>checking whether to build static libraries... yes<br><br>checking how to run the C++ preprocessor... /lib/cpp<br><br>configure: error: in `/home/simonpj/5builds/HEAD/libffi/build/x86_64-unknown-linux-gnu':<br><br>configure: error: C++ preprocessor "/lib/cpp" fails sanity check<br><br>See `config.log' for more details<br><br>libffi/ghc.mk:47: recipe for target 'libffi/stamp.ffi.static-shared.configure' failed<br><br>make[1]: *** [libffi/stamp.ffi.static-shared.configure] Error 1<br><br>Makefile:122: recipe for target 'all' failed<br><br>make: *** [all] Error 2<br></body></html>