diff options
author | Thomas Miedema <thomasmiedema@gmail.com> | 2015-08-15 11:36:44 +0200 |
---|---|---|
committer | Thomas Miedema <thomasmiedema@gmail.com> | 2015-08-20 12:35:52 +0200 |
commit | b6be81b841e34ca45b3549c4c79e886a8761e59a (patch) | |
tree | d90ff31ecf839f756268a715abe97bf5d6797e17 | |
parent | d97e60f5dfab102127b6fa4a5277084815136fc7 (diff) | |
download | haskell-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.m4 | 48 | ||||
-rw-r--r-- | libffi/ghc.mk | 10 | ||||
-rw-r--r-- | libraries/integer-gmp/gmp/ghc.mk | 5 | ||||
-rw-r--r-- | mk/config.mk.in | 7 | ||||
-rw-r--r-- | mk/install.mk.in | 21 | ||||
-rw-r--r-- | mk/project.mk.in | 9 | ||||
-rw-r--r-- | rules/distdir-opts.mk | 18 | ||||
-rwxr-xr-x | validate | 4 |
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 @@ -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 |