bindist install misdetects make vs gmake
Summary
validate
doesn't use gmake
somewhere in bindist.
Steps to reproduce
I ran these commands:
ulimit -d $((10<<20))
ulimit -s 8192 # T4038 needs a bunch of stack
AUTOCONF_VERSION=2.71 AUTOMAKE_VERSION=1.16 \
config_args='--with-ffi-includes=/usr/local/include
--with-ffi-libraries=/usr/local/lib
--with-gmp-includes=/usr/local/include
--with-gmp-libraries=/usr/local/lib
--with-iconv-includes=/usr/local/include
--with-iconv-libraries=/usr/local/lib
--with-system-libffi ' \
./validate "--no-clean"
This resulted in the following output. I skipped the successful build step.
...
cd _validatebuild/bindist; /usr/local/bin/gtar -c --xz -f ghc-9.5.20220507-x86_64-unknown-openbsd.tar.xz ghc-9.5.20220507-x86_64-unknown-openbsd
Build completed in 39m36s
configure: loading site script /home/greg/s/ghc/bindisttest/install
Possible fix: put quotes around $(TEST_HC) in your Makefile.
configure: loading site script /home/greg/s/ghc/bindisttest/install
Possible fix: put quotes around $(TEST_HC) in your Makefile.
checking build system type... x86_64-unknown-openbsd7.1
checking host system type... x86_64-unknown-openbsd7.1
checking target system type... x86_64-unknown-openbsd7.1
build platform inferred as: x86_64-unknown-openbsd
host platform inferred as: x86_64-unknown-openbsd
target platform inferred as: x86_64-unknown-openbsd
configure: GHC build : x86_64-unknown-openbsd
configure: GHC host : x86_64-unknown-openbsd
configure: GHC target : x86_64-unknown-openbsd
checking for path to top of build tree... /home/greg/s/ghc/_validatebuild/bindist/ghc-9.5.20220507-x86_64-unknown-openbsd
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln -s works... yes
checking for gsed... /usr/local/bin/gsed
checking for python3... /usr/local/bin/python3
checking for gcc... no
checking for clang... clang
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether clang accepts -g... yes
checking for clang option to enable C11 features... none needed
checking how to run the C preprocessor... clang -E
checking for -ld.lld... no
checking for ld.lld... ld.lld
checking whether C compiler supports -fuse-ld=lld... yes
checking for ld.gold object merging bug (binutils 22266)... checking whether ld is GNU ld... YES
checking whether ld understands --build-id... yes
checking whether ld understands -no_compact_unwind... no
checking whether ld understands -filelist... no
checking for -strip... no
checking for strip... strip
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking for llc-14... no
checking for llc-14.0... no
checking for llc-13... no
checking for llc-13.0... no
checking for llc-12... no
checking for llc-12.0... no
checking for llc-11... no
checking for llc-11.0... no
checking for llc-10... no
checking for llc-10.0... no
checking for llc... llc
checking llc version (13.0.0) is between 10 and 14... yes
checking for opt-14... no
checking for opt-14.0... no
checking for opt-13... no
checking for opt-13.0... no
checking for opt-12... no
checking for opt-12.0... no
checking for opt-11... no
checking for opt-11.0... no
checking for opt-10... no
checking for opt-10.0... no
checking for opt... opt
checking opt version (13.0.0) is between 10 and 14... yes
configure: $CC is not gcc; assuming it's a reasonably new C compiler
checking whether CC supports -no-pie... yes
checking for extra options to pass gcc when compiling via C...
checking Setting up CFLAGS, LDFLAGS, IGNORE_LINKER_LD_FLAGS and CPPFLAGS... done
checking Setting up CONF_CC_OPTS_STAGE0, CONF_GCC_LINKER_OPTS_STAGE0, CONF_LD_LINKER_OPTS_STAGE0 and CONF_CPP_OPTS_STAGE0... done
checking Setting up CONF_CC_OPTS_STAGE1, CONF_GCC_LINKER_OPTS_STAGE1, CONF_LD_LINKER_OPTS_STAGE1 and CONF_CPP_OPTS_STAGE1... done
checking Setting up CONF_CC_OPTS_STAGE2, CONF_GCC_LINKER_OPTS_STAGE2, CONF_LD_LINKER_OPTS_STAGE2 and CONF_CPP_OPTS_STAGE2... done
checking for .subsections_via_symbols... no
checking whether your assembler supports .ident directive... yes
checking for GNU non-executable stack support... yes
checking whether CC supports --target... yes
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking size of void *... 8
checking whether byte ordering is bigendian... no
checking for -ar... no
checking for ar... ar
checking whether ar is GNU ar... no
checking for ar arguments... qcls
checking whether ar supports @file... yes
checking whether ar supports -L... yes
checking for ranlib... ranlib
configure: creating ./config.status
config.status: creating mk/config.mk
config.status: creating mk/install.mk
****************************************************
Configuration done, ready to 'make install'
(see README and INSTALL files for more info.)
****************************************************
*** Parse error in /home/greg/s/ghc/_validatebuild/bindist/ghc-9.5.20220507-x86_64-unknown-openbsd: Need an operator in 'set_default' (mk/install.mk:45)
*** Parse error: Need an operator in '""' (mk/install.mk:50)
*** Parse error: Need an operator in 'endif' (mk/install.mk:52)
*** Parse error: Need an operator in 'endef' (mk/install.mk:53)
*** Parse error: Need an operator in '' (mk/install.mk:58)
*** Parse error: Need an operator in '' (mk/install.mk:70)
...
Many more complaints about wrong Make syntax for BSD make.
Expected behavior
validate
goes through.
Environment
- GHC version used: ced4689e
- I even have gmake installed:
% gmake --version
GNU Make 4.3
Optional:
- Operating System: OpenBSD
- System Architecture: amd64