libffi compilation does not use bundled g++ on Windows
Building GHC fails on Windows (at least on mingw32) if there is no host g++ compiler available. The cause seems to be that configure script looks for a C++ compiler and fails to find one.
Here's the invocation of the libffi configure script from the main build:
cd libffi && \
\
cd build && \
CC=C:/Users/Gintas/Downloads/msys32/home/Gintas/ghc/inplace/mingw/bin/gcc.exe \
LD=C:/Users/Gintas/Downloads/msys32/home/Gintas/ghc/inplace/mingw/bin/ld.exe \
AR=/usr/bin/ar \
NM=C:/Users/Gintas/Downloads/msys32/home/Gintas/ghc/inplace/mingw/bin/nm.exe \
RANLIB=C:/Users/Gintas/Downloads/msys32/home/Gintas/ghc/inplace/mingw/bin/ranlib.exe \
CFLAGS=" -U__i686 -march=i686 -fno-stack-protector -w" \
LDFLAGS=" -w" \
"/bin/sh" ./configure \
--prefix=C:/Users/Gintas/Downloads/msys32/home/Gintas/ghc/libffi/build/inst \
--libdir=C:/Users/Gintas/Downloads/msys32/home/Gintas/ghc/libffi/build/inst/lib \
--enable-static=yes \
--enable-shared=no \
--host=i386-unknown-mingw32
Note that CC is overridden, but CXX is not. The configure script then looks for a C++ compiler and finds KCC, which is not even a compiler but a kerberos tool:
checking for g++... no checking for c++... no checking for gpp... no checking for aCC... no checking for CC... no checking for cxx... no checking for cc++... no checking for cl.exe... no checking for FCC... no checking for KCC... KCC checking whether we are using the GNU C++ compiler... no checking whether KCC accepts -g... no checking dependency style of KCC... none
This causes the configure script to fail later on.
g++ is not actually used in the build (looks like it's only needed for one test case), passing in gcc for CXX seems to work fine.
Trac metadata
Trac field | Value |
---|---|
Version | 7.8.3 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Build System |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |