[commit: ghc] master: Remove special casing of Windows in generic files (48385cb)
git at git.haskell.org
git at git.haskell.org
Thu Jun 9 09:28:45 UTC 2016
Repository : ssh://git@git.haskell.org/ghc
On branch : master
Link : http://ghc.haskell.org/trac/ghc/changeset/48385cb2fc295eb8af9188cbe140142c1807d5a7/ghc
>---------------------------------------------------------------
commit 48385cb2fc295eb8af9188cbe140142c1807d5a7
Author: Tamar Christina <tamar at zhox.com>
Date: Tue May 31 20:12:55 2016 +0200
Remove special casing of Windows in generic files
Summary:
Remove some Windows specific code from the .m4 files
and have configure figure it out.
Unfortunately touchy can't be removed since there
is no mingw build of coreutils. Only msys builds
which would give us a dependency on the msys runtime.
Reviewers: hvr, austin, thomie, bgamari
Reviewed By: thomie, bgamari
Subscribers: thomie, erikd, #ghc_windows_task_force
Differential Revision: https://phabricator.haskell.org/D2248
>---------------------------------------------------------------
48385cb2fc295eb8af9188cbe140142c1807d5a7
aclocal.m4 | 49 +++++++++++++++++++++++++++++++------------------
configure.ac | 13 +++++--------
utils/touchy/touchy.c | 5 +++++
3 files changed, 41 insertions(+), 26 deletions(-)
diff --git a/aclocal.m4 b/aclocal.m4
index dcc3448..cbf51df 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -458,42 +458,55 @@ AC_DEFUN([GET_ARM_ISA],
# Set the variables used in the settings file
AC_DEFUN([FP_SETTINGS],
[
- if test "$windows" = YES
+ SettingsCCompilerCommand="$CC"
+ SettingsHaskellCPPCommand="$HaskellCPPCmd"
+ SettingsHaskellCPPFlags="$HaskellCPPArgs"
+ SettingsLdCommand="$LdCmd"
+ SettingsArCommand="$ArCmd"
+ SettingsPerlCommand="$PerlCmd"
+
+ if test -z "$DllWrap"
then
- mingw_bin_prefix=mingw/bin/
- SettingsCCompilerCommand="\$topdir/../${mingw_bin_prefix}gcc.exe"
- SettingsHaskellCPPCommand="\$topdir/../${mingw_bin_prefix}gcc.exe"
- SettingsHaskellCPPFlags="$HaskellCPPArgs"
- SettingsLdCommand="\$topdir/../${mingw_bin_prefix}ld.exe"
- SettingsArCommand="\$topdir/../${mingw_bin_prefix}ar.exe"
- SettingsPerlCommand='$topdir/../perl/perl.exe'
- SettingsDllWrapCommand="\$topdir/../${mingw_bin_prefix}dllwrap.exe"
- SettingsWindresCommand="\$topdir/../${mingw_bin_prefix}windres.exe"
- SettingsTouchCommand='$topdir/bin/touchy.exe'
- else
- SettingsCCompilerCommand="$CC"
- SettingsHaskellCPPCommand="$HaskellCPPCmd"
- SettingsHaskellCPPFlags="$HaskellCPPArgs"
- SettingsLdCommand="$LdCmd"
- SettingsArCommand="$ArCmd"
- SettingsPerlCommand="$PerlCmd"
SettingsDllWrapCommand="/bin/false"
+ else
+ SettingsDllWrapCommand="$DllWrap"
+ fi
+
+ if test -z "$Windres"
+ then
SettingsWindresCommand="/bin/false"
+ else
+ SettingsWindresCommand="$Windres"
+ fi
+
+ if test -z "$Libtool"
+ then
SettingsLibtoolCommand="libtool"
+ else
+ SettingsLibtoolCommand="$Libtool"
+ fi
+
+ if test -z "$Touch"
+ then
SettingsTouchCommand='touch'
+ else
+ SettingsTouchCommand='$Touch'
fi
+
if test -z "$LlcCmd"
then
SettingsLlcCommand="llc"
else
SettingsLlcCommand="$LlcCmd"
fi
+
if test -z "$OptCmd"
then
SettingsOptCommand="opt"
else
SettingsOptCommand="$OptCmd"
fi
+
SettingsCCompilerFlags="$CONF_CC_OPTS_STAGE2"
SettingsCCompilerLinkFlags="$CONF_GCC_LINKER_OPTS_STAGE2"
SettingsLdFlags="$CONF_LD_LINKER_OPTS_STAGE2"
diff --git a/configure.ac b/configure.ac
index 15561d0..d7eb738 100644
--- a/configure.ac
+++ b/configure.ac
@@ -177,13 +177,9 @@ then
if test "$ghc_host_os" = "mingw32"
then
- if test "${OSTYPE}" = "msys"
- then
- WithGhc=`echo "${WithGhc}" | sed "s#^/\([a-zA-Z]\)/#\1:/#"`
- else
- # Canonicalise to <drive>:/path/to/ghc
- WithGhc=`cygpath -m "${WithGhc}"`
- fi
+ # Canonicalise to <drive>:/path/to/ghc
+ WithGhc=`cygpath -m "${WithGhc}"`
+
echo "GHC path canonicalised to: ${WithGhc}"
fi
fi
@@ -366,6 +362,8 @@ then
NM="${mingwbin}nm.exe"
RANLIB="${mingwbin}ranlib.exe"
OBJDUMP="${mingwbin}objdump.exe"
+ Windres="${mingwbin}windres.exe"
+ DllWrap="${mingwbin}dllwrap.exe"
fp_prog_ar="${mingwbin}ar.exe"
# NB. Download the perl binaries if required
@@ -733,7 +731,6 @@ AC_SUBST(HaveDtrace)
AC_PATH_PROG(HSCOLOUR,HsColour)
# HsColour is passed to Cabal, so we need a native path
if test "$HostOS" = "mingw32" && \
- test "${OSTYPE}" != "msys" && \
test "${HSCOLOUR}" != ""
then
# Canonicalise to <drive>:/path/to/gcc
diff --git a/utils/touchy/touchy.c b/utils/touchy/touchy.c
index 88ababa..dbcf712 100644
--- a/utils/touchy/touchy.c
+++ b/utils/touchy/touchy.c
@@ -14,6 +14,11 @@
#include <windows.h>
/*
+touch is used by GHC both during building and during compilation of
+Haskell files. Unfortunately this means we need a 'touch' like program
+in the GHC bindist. Since touch is not standard on Windows and msys2
+doesn't include a mingw-w64 build of coreutils we need touchy for now.
+
With Windows 7 in a virtual box VM on OS X, some very odd things happen
with dates and time stamps when SSHing into cygwin. e.g. here the
"Change" time is in the past:
More information about the ghc-commits
mailing list