Drop run-time dependency on perl

GHC has stopped requiring perl since 8.2.1 release. The last component
written in Perl was the evil splitter (-fsplit-objs), which has been
superseded by -fsplit-sections. Hooray!
This commit is contained in:
pho 2021-04-23 00:08:02 +00:00
parent 34eb79ecaf
commit 13e4fbd350
3 changed files with 5 additions and 23 deletions

View file

@ -1,4 +1,4 @@
# $NetBSD: Makefile,v 1.4 2021/04/22 18:15:00 pho Exp $
# $NetBSD: Makefile,v 1.5 2021/04/23 00:08:02 pho Exp $
# -----------------------------------------------------------------------------
# Package metadata
#
@ -44,19 +44,11 @@ EXTRACT_ONLY= ${DEFAULT_DISTFILES}
# -----------------------------------------------------------------------------
# Tools
#
# The runtime dependency on perl is due to the evil splitter
# (lib/${PKGNAME_NOREV}/ghc-split).
USE_TOOLS+= autoconf gmake perl:run
USE_TOOLS+= autoconf gmake
GNU_CONFIGURE= yes
USE_GNU_CONFIGURE_HOST= no
USE_LIBTOOL= yes
# TODO: Disable the splitter entirely so that we can drop the runtime
# dependency on perl. The purpose of the splitter is to perform a dead
# code elimination by breaking .o files into many pieces. This only
# makes sense when linking executables statically, which is rarely
# done these days.
# -----------------------------------------------------------------------------
# Configuration
@ -78,7 +70,6 @@ CONFIGURE_ARGS+= ${CONFIGURE_ARGS.common}
CONFIGURE_ENV+= \
ac_cv_prog_fp_prog_ar=${AR:Q} \
ac_cv_prog_LIBTOOL=libtool \
PerlCmd=${PERL5:Q} \
CC=${CC:Q} \
LD=${LD:Q}

View file

@ -1,4 +1,4 @@
# $NetBSD: bootstrap.mk,v 1.3 2021/04/22 18:15:00 pho Exp $
# $NetBSD: bootstrap.mk,v 1.4 2021/04/23 00:08:02 pho Exp $
# -----------------------------------------------------------------------------
# Select a bindist of bootstrapping compiler on a per-platform basis.
#
@ -80,13 +80,6 @@ PKG_FAIL_REASON+= "internal error: unsupported platform"
SITES.${i}?= ${MASTER_SITE_LOCAL}
.endfor
# Existence of libelf makes LeadingUnderscore being "NO", which is
# incorrect for this platform. See ${WRKSRC}/aclocal.m4
# (FP_LEADING_UNDERSCORE)
.if ${OPSYS} == "Darwin"
CONFLICTS+= libelf-[0-9]*
.endif
# current bootstrap binary kit for SmartOS is built with ncurses5
.if !empty(MACHINE_PLATFORM:MSunOS-*) && ${OS_VARIANT:U} == "SmartOS"
BUILD_DEPENDS+= ncurses>=5.0:../../devel/ncurses

View file

@ -9,10 +9,6 @@ BUILD_MAN = NO
BUILD_SPHINX_HTML = NO
BUILD_SPHINX_PDF = NO
# Enabling evil-splitter reduces bindist size, which is good. However
# it introduces a run-time dependency on perl, which is unacceptable.
SplitObjs = NO
# We only want vanilla libraries and rts. No profiling, no shared
# libraries, no debugging, no event logging.
GhcLibWays = v
@ -32,6 +28,8 @@ BIN_DIST_NAME = ghc-$(ProjectVersion)-boot
# Don't build or use dynamic Haskell libraries.
DYNAMIC_GHC_PROGRAMS = NO
# The build system attempts to link GHC with threaded RTS by default,
# which fails because we only build "vanilla" RTS.
ghc_stage1_CONFIGURE_OPTS += -f-threaded
ghc_stage2_CONFIGURE_OPTS += -f-threaded
ghc_stage3_CONFIGURE_OPTS += -f-threaded