Repair ghc bootstrap which broke for ghc-9.2

The ffi header files should be excluded.

Moved the bootstrap.mk into a file instead of echoing into it
repeatedly.

kili@: can't get worse
This commit is contained in:
gnezdo 2022-08-31 12:02:29 +00:00
parent 71ffdc9b8a
commit 58db17fa94
3 changed files with 38 additions and 22 deletions

View File

@ -170,7 +170,7 @@ do-test:
# It doesn't matter whether this is the actual date of the bootstrapper
# build. It's just used to get different distfiles whenever new
# bootstrappers have to be built.
BOOTSTRAP_DATE = 20210429
BOOTSTRAP_DATE = 20220830
# Create a bootstrapper. This compiles a stripped-down version of
# ghc and creates a `bindist', i.e. a tarball with binaries that
@ -180,8 +180,8 @@ bootstrap: patch
echo Please install autoconf-${AUTOCONF_VERSION}.; \
false; \
fi
@if [ ! -x ${LOCALBASE}/bin/automake-1.4 ]; then \
echo Please install automake-1.4.; \
@if [ ! -x ${LOCALBASE}/bin/automake-${AUTOMAKE_VERSION} ]; then \
echo Please install automake-${AUTOMAKE_VERSION}; \
false; \
fi
@ -190,29 +190,12 @@ bootstrap: patch
env CONFIGURE_ENV=RELEASE=NO ${MAKE} configure
${MAKE} build ALL_TARGET="all binary-dist" \
AUTOCONF_VERSION=${AUTOCONF_VERSION} AUTOMAKE_VERSION=1.4
AUTOCONF_VERSION=${AUTOCONF_VERSION} AUTOMAKE_VERSION=${AUTOMAKE_VERSION}
$(_PBUILD) $(MAKE) _bootstrap_finish
_bootstrap_prepare:
echo HSCOLOUR_SRCS=NO > ${WRKSRC}/mk/build.mk
echo GhcLibHcOpts=-O -fasm >> ${WRKSRC}/mk/build.mk
echo GhcStage1HcOpts=-O -fasm >> ${WRKSRC}/mk/build.mk
echo GhcStage2HcOpts=-O -fasm >> ${WRKSRC}/mk/build.mk
echo SplitObjs=NO >> ${WRKSRC}/mk/build.mk
echo GhcLibWays=v >> ${WRKSRC}/mk/build.mk
echo GhcRTSWays=thr >> ${WRKSRC}/mk/build.mk
echo GhcWithInterpreter=NO >> ${WRKSRC}/mk/build.mk
echo GhcThreaded=YES >> ${WRKSRC}/mk/build.mk
echo INTEGER_LIBRARY=integer-simple >> ${WRKSRC}/mk/build.mk
echo SRC_CC_OPTS+=-g -O0 >> ${WRKSRC}/mk/build.mk
echo HADDOCK_DOCS=NO >> ${WRKSRC}/mk/build.mk
echo BUILD_SPHINX_HTML=NO >> ${WRKSRC}/mk/build.mk
echo BUILD_SPHINX_PDF=NO >> ${WRKSRC}/mk/build.mk
echo GhcWithSMP=NO >> ${WRKSRC}/mk/build.mk
echo LD_OPTS=-optl-static -optl-s >> ${WRKSRC}/mk/build.mk
echo DYNAMIC_GHC_PROGRAMS=No >> ${WRKSRC}/mk/build.mk
cp ${FILESDIR}/bootstrap.mk ${WRKSRC}/mk/build.mk
echo ${BOOTSTRAP_DATE} > ${WRKSRC}/VERSION_DATE
_bootstrap_finish:

View File

@ -0,0 +1,17 @@
HSCOLOUR_SRCS=NO
GhcLibHcOpts=-O -fasm
GhcStage1HcOpts=-O -fasm
GhcStage2HcOpts=-O -fasm
SplitObjs=NO
GhcLibWays=v
GhcRTSWays=thr thr_l
GhcWithInterpreter=NO
GhcThreaded=YES
INTEGER_LIBRARY=integer-simple
SRC_CC_OPTS+=-g -O0
HADDOCK_DOCS=NO
BUILD_SPHINX_HTML=NO
BUILD_SPHINX_PDF=NO
GhcWithSMP=NO
LD_OPTS=-optl-static -optl-s
DYNAMIC_GHC_PROGRAMS=No

View File

@ -0,0 +1,16 @@
Avoids picking up non-existent FFI headers. The logic for their
inclusion into bindist should be conditional, but we don't care about
fixing this better. In ghc 9.4 bindist is bulit via Hadrian and so
this patch becomes irrelevant.
Index: ghc.mk
--- ghc.mk.orig
+++ ghc.mk
@@ -1049,7 +1049,6 @@ $(eval $(call bindist-list,.,\
$(includes_1_H_VERSION) \
$(includes_DERIVEDCONSTANTS) \
$(includes_GHCCONSTANTS) \
- $(libffi_HEADERS) \
$(INSTALL_LIBEXECS) \
$(INSTALL_LIBEXEC_SCRIPTS) \
$(INSTALL_BINS) \