summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Miedema <thomasmiedema@gmail.com>2015-08-15 11:36:44 +0200
committerThomas Miedema <thomasmiedema@gmail.com>2015-08-20 12:35:52 +0200
commitb6be81b841e34ca45b3549c4c79e886a8761e59a (patch)
treed90ff31ecf839f756268a715abe97bf5d6797e17
parentd97e60f5dfab102127b6fa4a5277084815136fc7 (diff)
downloadhaskell-b6be81b841e34ca45b3549c4c79e886a8761e59a.tar.gz
Build system: delete half-baked Cygwin support
We only support building GHC on mys2 nowadays, see https://ghc.haskell.org/trac/ghc/wiki/Building/Preparation/Windows. This (partially) reverts various commits from a few years ago, among which: * 5775d5142da227d65fb86994d363eb16841ee642 "Add OSTYPE build-system variable, and use it" * 3fb8c431824aa2f3bd979e35d1a283546fcfbe74 "Fix building libgmp on cygwin" * cdbb4720c424500adb57cbbef69721d0b039fa46 "Fix cmd invocation by libffi cuild system on Windows 7 cygwin" * e8121501ee3549a35e954726ccfd871ac9d51f83 "Fix dblatex and xml* tool detection on Windows" Reviewed by: austin, Phyx Differential Revision: https://phabricator.haskell.org/D1155
-rw-r--r--aclocal.m448
-rw-r--r--libffi/ghc.mk10
-rw-r--r--libraries/integer-gmp/gmp/ghc.mk5
-rw-r--r--mk/config.mk.in7
-rw-r--r--mk/install.mk.in21
-rw-r--r--mk/project.mk.in9
-rw-r--r--rules/distdir-opts.mk18
-rwxr-xr-xvalidate4
8 files changed, 15 insertions, 107 deletions
diff --git a/aclocal.m4 b/aclocal.m4
index 97731685a9..2f4d516945 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -274,7 +274,7 @@ AC_DEFUN([FPTOOLS_SET_HASKELL_PLATFORM_VARS],
nto-qnx)
test -z "[$]2" || eval "[$]2=OSQNXNTO"
;;
- dragonfly|osf1|hpux|linuxaout|freebsd2|cygwin32|gnu|nextstep2|nextstep3|sunos4|ultrix|irix|aix)
+ dragonfly|osf1|hpux|linuxaout|freebsd2|gnu|nextstep2|nextstep3|sunos4|ultrix|irix|aix)
test -z "[$]2" || eval "[$]2=OSUnknown"
;;
linux-android)
@@ -591,21 +591,6 @@ AC_DEFUN([FPTOOLS_SET_C_LD_FLAGS],
])
-AC_DEFUN([FP_PATH_PROG],[
- AC_PATH_PROG($1,$2,$3,$4,$5,$6)
- # If we have a cygwin path for something, and we try to run it
- # from cabal or python, then it'll fail. So we convert to a
- # native path.
- if test "$HostOS" = "mingw32" && \
- test "${OSTYPE}" != "msys" && \
- test "${$1}" != ""
- then
- # Canonicalise to <drive>:/path/to/gcc
- $1=`cygpath -m "${$1}"`
- fi
-])
-
-
# FP_VISIBILITY_HIDDEN
# ----------------------------------
# Is the visibility hidden attribute supported?
@@ -798,9 +783,6 @@ AC_DEFUN([FP_LEADING_UNDERSCORE],
AC_CACHE_CHECK([leading underscore in symbol names], [fptools_cv_leading_underscore], [
# Hack!: nlist() under Digital UNIX insist on there being an _,
# but symbol table listings shows none. What is going on here?!?
-#
-# Another hack: cygwin doesn't come with nlist.h , so we hardwire
-# the underscoredness of that "platform"
case $HostPlatform in
*openbsd*) # x86 openbsd is ELF from 3.4 >, meaning no leading uscore
case $build in
@@ -808,7 +790,6 @@ case $HostPlatform in
*) fptools_cv_leading_underscore=no ;;
esac ;;
alpha-dec-osf*) fptools_cv_leading_underscore=no;;
-*cygwin32) fptools_cv_leading_underscore=yes;;
i386-unknown-mingw32) fptools_cv_leading_underscore=yes;;
x86_64-unknown-mingw32) fptools_cv_leading_underscore=no;;
@@ -879,7 +860,7 @@ dnl If you increase the minimum version requirement, please also update:
dnl https://ghc.haskell.org/trac/ghc/wiki/Building/Preparation/Tools
dnl
AC_DEFUN([FPTOOLS_HAPPY],
-[FP_PATH_PROG(HappyCmd,happy,)
+[AC_PATH_PROG(HappyCmd,happy,)
AC_CACHE_CHECK([for version of happy], fptools_cv_happy_version,
changequote(, )dnl
@@ -907,7 +888,7 @@ dnl https://ghc.haskell.org/trac/ghc/wiki/Building/Preparation/Tools
dnl
AC_DEFUN([FPTOOLS_ALEX],
[
-FP_PATH_PROG(AlexCmd,alex,)
+AC_PATH_PROG(AlexCmd,alex,)
AC_CACHE_CHECK([for version of alex], fptools_cv_alex_version,
changequote(, )dnl
@@ -1051,9 +1032,9 @@ AC_SUBST([LdHasFilelist])
# FP_PROG_AR
# ----------
-# Sets fp_prog_ar to a (non-Cygwin) path to ar. Exits if no ar can be found
+# Sets fp_prog_ar to a path to ar. Exits if no ar can be found
AC_DEFUN([FP_PROG_AR],
-[FP_PATH_PROG([fp_prog_ar], [ar])
+[AC_PATH_PROG([fp_prog_ar], [ar])
if test -z "$fp_prog_ar"; then
AC_MSG_ERROR([cannot find ar in your PATH, no idea how to make a library])
fi
@@ -1105,7 +1086,7 @@ AC_SUBST([ArSupportsAtFile], [`echo $fp_prog_ar_supports_atfile | tr 'a-z' 'A-Z'
# FP_PROG_AR_ARGS
# ---------------
# Sets fp_prog_ar_args to the arguments for ar and the output variable ArCmd
-# to a non-Cygwin invocation of ar including these arguments.
+# to an invocation of ar including these arguments.
AC_DEFUN([FP_PROG_AR_ARGS],
[AC_REQUIRE([FP_PROG_AR_IS_GNU])
AC_CACHE_CHECK([for ar arguments], [fp_cv_prog_ar_args],
@@ -1281,15 +1262,6 @@ echo foo > conftest.txt
$fp_prog_find conftest.txt -print > conftest.out 2>&1
if grep '^conftest.txt$' conftest.out > /dev/null 2>&1 ; then
# OK, looks like a real "find".
- case $HostPlatform in
- *mingw32)
- if test x${OSTYPE} != xmsys
- then
- fp_prog_find="`cygpath --mixed ${fp_prog_find}`"
- AC_MSG_NOTICE([normalized find command to $fp_prog_find])
- fi ;;
- *) ;;
- esac
FindCmd="$fp_prog_find"
else
# Found a poor WinDoze version of "find", ignore it.
@@ -1445,7 +1417,7 @@ EOF
# which we use for building PDF and PS docs.
# DblatexCmd is empty if dblatex could not be found.
AC_DEFUN([FP_PROG_DBLATEX],
-[FP_PATH_PROG([DblatexCmd], [dblatex])
+[AC_PATH_PROG([DblatexCmd], [dblatex])
if test -z "$DblatexCmd"; then
AC_MSG_WARN([cannot find dblatex in your PATH, you will not be able to build the PDF and PS documentation])
fi
@@ -1457,7 +1429,7 @@ fi
# Sets the output variable XsltprocCmd to the full path of the XSLT processor
# xsltproc. XsltprocCmd is empty if xsltproc could not be found.
AC_DEFUN([FP_PROG_XSLTPROC],
-[FP_PATH_PROG([XsltprocCmd], [xsltproc])
+[AC_PATH_PROG([XsltprocCmd], [xsltproc])
if test -z "$XsltprocCmd"; then
AC_MSG_WARN([cannot find xsltproc in your PATH, you will not be able to build the HTML documentation])
fi
@@ -1493,7 +1465,7 @@ AC_SUBST([HAVE_DOCBOOK_XSL])
# Sets the output variable XmllintCmd to the full path of the XSLT processor
# xmllint. XmllintCmd is empty if xmllint could not be found.
AC_DEFUN([FP_PROG_XMLLINT],
-[FP_PATH_PROG([XmllintCmd], [xmllint])
+[AC_PATH_PROG([XmllintCmd], [xmllint])
if test -z "$XmllintCmd"; then
AC_MSG_WARN([cannot find xmllint in your PATH, you will not be able to validate your documentation])
fi
@@ -1999,7 +1971,7 @@ case "$1-$2" in
$3="linux"
;;
# As far as I'm aware, none of these have relevant variants
- freebsd|netbsd|openbsd|dragonfly|osf1|osf3|hpux|linuxaout|kfreebsdgnu|freebsd2|solaris2|cygwin32|mingw32|darwin|gnu|nextstep2|nextstep3|sunos4|ultrix|irix|aix|haiku)
+ freebsd|netbsd|openbsd|dragonfly|osf1|osf3|hpux|linuxaout|kfreebsdgnu|freebsd2|solaris2|mingw32|darwin|gnu|nextstep2|nextstep3|sunos4|ultrix|irix|aix|haiku)
$3="$1"
;;
freebsd*) # like i686-gentoo-freebsd7
diff --git a/libffi/ghc.mk b/libffi/ghc.mk
index 59e089d88e..a37e3becfd 100644
--- a/libffi/ghc.mk
+++ b/libffi/ghc.mk
@@ -42,10 +42,6 @@ LIBFFI_NAME = ffi
endif
LIBFFI_DLL = lib$(LIBFFI_NAME).dll
-ifeq "$(OSTYPE)" "cygwin"
-LIBFFI_PATH_MANGLE = PATH=$$(cygpath "$(TOP)")/libffi:$$PATH; export PATH;
-endif
-
ifneq "$(BINDIST)" "YES"
$(libffi_STAMP_CONFIGURE): $(TOUCH_DEP)
$(call removeFiles,$(libffi_STAMP_STATIC_CONFIGURE))
@@ -83,18 +79,12 @@ $(libffi_STAMP_CONFIGURE): $(TOUCH_DEP)
mv libffi/build/Makefile.in libffi/build/Makefile.in.orig
sed 's:@toolexeclibdir@:$$(libdir):g' < libffi/build/Makefile.in.orig > libffi/build/Makefile.in
- # Their cmd invocation only works on msys. On cygwin it starts
- # a cmd interactive shell. The replacement works in both environments.
- mv libffi/build/ltmain.sh libffi/build/ltmain.sh.orig
- sed 's#cmd //c echo "\$$1"#cmd /c "echo $$1"#' < libffi/build/ltmain.sh.orig > libffi/build/ltmain.sh
-
# * Because -Werror may be in SRC_CC_OPTS/SRC_LD_OPTS, we need to turn
# warnings off or the compilation of libffi might fail due to warnings;
# hence the -w flags.
# * We specify --libdir, as we need to know the path to libffi.a, but on
# some platforms it defaults to .../lib64/ rather than .../lib/.
cd libffi && \
- $(LIBFFI_PATH_MANGLE) \
cd build && \
CC=$(CC_STAGE1) \
CXX=$(CC_STAGE1) \
diff --git a/libraries/integer-gmp/gmp/ghc.mk b/libraries/integer-gmp/gmp/ghc.mk
index 6a1ca2175a..33fab0bfa5 100644
--- a/libraries/integer-gmp/gmp/ghc.mk
+++ b/libraries/integer-gmp/gmp/ghc.mk
@@ -122,11 +122,6 @@ libraries/integer-gmp/gmp/libgmp.a libraries/integer-gmp/gmp/gmp.h:
cat libraries/integer-gmp/gmp/tarball/gmp-5.0.4.patch | { cd libraries/integer-gmp/gmp/gmpbuild && $(PATCH_CMD) -p1 ; }
chmod +x libraries/integer-gmp/gmp/ln
- # Their cmd invocation only works on msys. On cygwin it starts
- # a cmd interactive shell. The replacement works in both environments.
- mv libraries/integer-gmp/gmp/gmpbuild/ltmain.sh libraries/integer-gmp/gmp/gmpbuild/ltmain.sh.orig
- sed 's#cmd //c echo "\$$1"#cmd /c "echo $$1"#' < libraries/integer-gmp/gmp/gmpbuild/ltmain.sh.orig > libraries/integer-gmp/gmp/gmpbuild/ltmain.sh
-
cd libraries/integer-gmp/gmp; (set -o igncr 2>/dev/null) && set -o igncr; export SHELLOPTS; \
PATH=`pwd`:$$PATH; \
export PATH; \
diff --git a/mk/config.mk.in b/mk/config.mk.in
index 175aa06bf2..66301c954c 100644
--- a/mk/config.mk.in
+++ b/mk/config.mk.in
@@ -165,7 +165,7 @@ GhcWithSMP := $(strip $(if $(filter YESNO, $(ArchSupportsSMP)$(GhcUnregisterised
# Whether to include GHCi in the compiler. Depends on whether the RTS linker
# has support for this OS/ARCH combination.
-OsSupportsGHCi=$(strip $(patsubst $(TargetOS_CPP), YES, $(findstring $(TargetOS_CPP), mingw32 cygwin32 linux solaris2 freebsd dragonfly netbsd openbsd darwin kfreebsdgnu)))
+OsSupportsGHCi=$(strip $(patsubst $(TargetOS_CPP), YES, $(findstring $(TargetOS_CPP), mingw32 linux solaris2 freebsd dragonfly netbsd openbsd darwin kfreebsdgnu)))
ArchSupportsGHCi=$(strip $(patsubst $(TargetArch_CPP), YES, $(findstring $(TargetArch_CPP), i386 x86_64 powerpc powerpc64 powerpc64le sparc sparc64 arm aarch64)))
ifeq "$(OsSupportsGHCi)$(ArchSupportsGHCi)" "YESYES"
@@ -288,7 +288,7 @@ StripLibraries=NO
# doing object-file splitting
ArchSupportsSplitObjs=$(strip $(if $(filter $(TargetArch_CPP),i386 x86_64 powerpc sparc),YES,NO))
-OsSupportsSplitObjs=$(strip $(if $(filter $(TargetOS_CPP),mingw32 cygwin32 linux darwin solaris2 freebsd dragonfly netbsd openbsd),YES,NO))
+OsSupportsSplitObjs=$(strip $(if $(filter $(TargetOS_CPP),mingw32 linux darwin solaris2 freebsd dragonfly netbsd openbsd),YES,NO))
SplitObjsBroken = @SplitObjsBroken@
SupportsSplitObjs := $(strip \
@@ -364,9 +364,6 @@ FFIIncludeDir=@FFIIncludeDir@
# setting the TMPDIR env var would have no effect in the build tree.
DEFAULT_TMPDIR = /tmp
-ifeq "$(TARGETPLATFORM)" "i386-unknown-cygwin32"
-DEFAULT_TMPDIR = /C/TEMP
-endif
ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
DEFAULT_TMPDIR = /C/TEMP
endif
diff --git a/mk/install.mk.in b/mk/install.mk.in
index d6f68abd19..da6680d6b6 100644
--- a/mk/install.mk.in
+++ b/mk/install.mk.in
@@ -146,29 +146,8 @@ INSTALL_DOC = $(INSTALL) -m 644 $1 $2 $(call MK_INSTALL_DEST,$3)
# Only 1 argument, the directory to create:
INSTALL_DIR = $(INSTALL) -m 755 -d $(call MK_INSTALL_DEST,$1)
-# cygwin's /bin/install doesn't set file modes correctly if the
-# destination path is a C: style path:
-#
-# $ /bin/install -c -m 644 foo /cygdrive/c/cygwin/home/ian/foo2
-# $ /bin/install -c -m 644 foo c:/cygwin/home/ian/foo3
-# $ ls -l foo*
-# -rw-r--r-- 1 ian None 0 2011-01-06 18:28 foo
-# -rw-r--r-- 1 ian None 0 2011-01-06 18:29 foo2
-# -rwxrwxrwx 1 ian None 0 2011-01-06 18:29 foo3
-#
-# This causes problems for bindisttest/checkBinaries.sh which then
-# thinks that e.g. the userguide HTML files are binaries.
-#
-# We therefore use a /cygdrive path if we are on cygwin (only)
-# (This will make a Cygwin build run slowly
-# because of all those shell invocations.)
-ifeq "$(OSTYPE)" "cygwin"
-MK_INSTALL_DEST = $$(cygpath $1)
-else
MK_INSTALL_DEST = $1
-endif
-#
# runhaskell and hsc2hs are special, in that other compilers besides
# GHC might provide them. Systems with a package manager often come
# with tools to manage this kind of clash, e.g. RPM's
diff --git a/mk/project.mk.in b/mk/project.mk.in
index a5fe210c12..9e45ae919b 100644
--- a/mk/project.mk.in
+++ b/mk/project.mk.in
@@ -135,24 +135,19 @@ exeext3=@exeext_target@
soext=@soext_target@
# Windows_Host=YES if on a Windows platform
-ifneq "$(findstring $(HostOS_CPP), mingw32 cygwin32)" ""
+ifneq "$(findstring $(HostOS_CPP), mingw32)" ""
Windows_Host=YES
else
Windows_Host=NO
endif
# Windows_Target=YES if we are targetting a Windows platform
-ifneq "$(findstring $(TargetOS_CPP), mingw32 cygwin32)" ""
+ifneq "$(findstring $(TargetOS_CPP), mingw32)" ""
Windows_Target=YES
else
Windows_Target=NO
endif
-# Tell the build system what the host operating system is
-# This distinguishes "msys" and "cygwin", which are not
-# not distinguished by HOST_OS_CPP
-OSTYPE=@OSTYPE@
-
# In case of Solaris OS, does it provide broken shared libs
# linker or not?
SOLARIS_BROKEN_SHLD=@SOLARIS_BROKEN_SHLD@
diff --git a/rules/distdir-opts.mk b/rules/distdir-opts.mk
index b2f0d1b9ff..e411559b59 100644
--- a/rules/distdir-opts.mk
+++ b/rules/distdir-opts.mk
@@ -19,24 +19,8 @@ ifeq "$3" ""
$$(error Stage not given for distdir-opts $1 $2)
endif
-ifeq "$3" "0"
-# This is a bit of a hack.
-# If we are compiling something with the bootstrapping compiler on
-# cygwin, and it uses an include file from the rts (say), then we
-# need to stop mkdependC from generating a dependincy on
-# c:/ghc/rts/include/Rts.h
-# as that confuses make. So we use -isystem instead of -I, which stops
-# these dependencies from being generated. Technically this is wrong if
-# we depend on a library that is built inside the build tree, and we
-# use headers from that library, but currently I don't think that's the
-# case.
-$1_$2_DEP_INCLUDE_DIRS_FLAG = -isystem
-else
-$1_$2_DEP_INCLUDE_DIRS_FLAG = -I
-endif
-
ifneq ($$(strip $$($1_$2_DEP_INCLUDE_DIRS_SINGLE_QUOTED)),)
-$1_$2_CC_INC_FLAGS := $$(subst $$(space)',$$(space)$$($1_$2_DEP_INCLUDE_DIRS_FLAG)',$$(space)$$($1_$2_DEP_INCLUDE_DIRS_SINGLE_QUOTED))
+$1_$2_CC_INC_FLAGS := $$(subst $$(space)',$$(space)-I',$$(space)$$($1_$2_DEP_INCLUDE_DIRS_SINGLE_QUOTED))
endif
# The CONF_CC_OPTS_STAGE$3 options are what we use to get gcc to
diff --git a/validate b/validate
index 39e1f01120..5f24e19bd1 100755
--- a/validate
+++ b/validate
@@ -163,10 +163,6 @@ if [ $no_clean -eq 0 ]; then
$make maintainer-clean NO_CLEAN_GMP=YES
INSTDIR=`pwd`/inst
- if [ "$OSTYPE" = "cygwin" ]
- then
- INSTDIR=`cygpath -m "$INSTDIR"`
- fi
if [ $use_dph -eq 1 ]; then
perl -w boot --validate --required-tag=dph