From: PHO Date: Fri, 16 Mar 2012 09:07:54 +0000 (+0900) Subject: Various changes to support Linux X-Git-Url: https://git.cielonegro.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fheads%2Fmaster;p=build-hc-pkg.git Various changes to support Linux --- diff --git a/build-hc-pkg b/build-hc-pkg index 868039e..e900fcf 100755 --- a/build-hc-pkg +++ b/build-hc-pkg @@ -36,6 +36,17 @@ function detect_gnu_tar () { fi } +function detect_gnu_sed () { + if which gsed >/dev/null 2>&1; then + echo "gsed" + elif sed --version | grep -qF GNU; then + echo "sed" + else + echo "We need GNU sed to be installed." >&2 + exit 1 + fi +} + function say_hello () { local -r self=$(basename "$0") local -r platform=$(detect_platform_type) @@ -81,6 +92,7 @@ function build_hc_pkg () { SRCPATH="$srcpath" \ PLATFORM="$(detect_platform_type)" \ GNUTAR="$(detect_gnu_tar)" \ + GNUSED="$(detect_gnu_sed)" \ SHELL="$SHELL" echo "If you are done, run \"$0 clean\" to cleanup the working directory." diff --git a/files/host-build.mk b/files/host-build.mk index 3263302..b54c2e2 100644 --- a/files/host-build.mk +++ b/files/host-build.mk @@ -1,3 +1,4 @@ +# -*- makefile-gmake -*- PORTING_HOST = YES GhcUnregisterised = YES GhcLibHcOpts = -O -fvia-C -keep-hc-files @@ -17,3 +18,9 @@ INTEGER_LIBRARY = integer-simple libraries/terminfo_CONFIGURE_OPTS += \ --configure-option=--with-curses-includes=/usr/pkg/include \ --configure-option=--with-curses-libraries=/usr/pkg/lib + +ifeq ($(shell uname),Linux) +# To find out why evacuate() segfaults on Linux... +rts_CC_OPTS += -O0 -g +# ...but this stops ghc-stage2 from segfaulting. Sigh. +endif diff --git a/mk/main.mk b/mk/main.mk index c3567a8..ad46595 100644 --- a/mk/main.mk +++ b/mk/main.mk @@ -1,5 +1,6 @@ DIRNAME := $(patsubst %-src.tar.bz2,%,$(notdir $(SRCPATH))) GNUTAR ?= gtar +GNUSED ?= gsed HC_TARNAME ?= $(DIRNAME)-boot-$(PLATFORM).tar.bz2 all: work/pack-hc-pkg.stamp @@ -69,7 +70,7 @@ work/extract-boot-tarball.stamp: work/build-boot-tarball.stamp work/replace-paths.stamp: work/extract-boot-tarball.stamp cd "work/$(DIRNAME)" && \ - gsed -i \ + $(GNUSED) -i \ -e 's#/usr/pkg#[[PREFIX]]#g' \ -e 's#'`pwd`'-host#[[GHC_SOURCE_PATH]]#g' \ inplace/lib/package.conf.d/*.conf \