ghc-split accepts building 6.0 on Windows

Dominic Cooney dominic@dcooney.com
Fri, 30 May 2003 20:45:33 +1000


My environment's TEMP and TMP are C:\temp, but for some reason, my =
recent
Cygwin install makes 'TEMP' and 'TMP' /cygdrive/c/temp/4; this duly gets
passed to ghc-inplace as C:\temp\4.

Then, in libraries\base, ghc-split complains that \4 mentions a =
non-existent
group in a regexp:

../../ghc/compiler/ghc-inplace -H16m -O -fglasgow-exts -cpp -Iinclude
-#include HsBase.h -Icbits/regex -funbox-strict-fields -package-name =
base -O
-Rghc-timing -split-objs    -c GHC/Base.lhs -o GHC/Base.o  -ohi =
GHC/Base.hi
Reference to nonexistent group in regex; marked by <-- HERE in =
m/"c:\temp\4
<--HERE \ghc936.split\.c"/ at
d:\\users\\cooney\\ghc\\ghc-6.0\ghc\driver\split\ghc-split line 51, =
<TMPI>
line 23.
make[2]: *** [GHC/Base.o] Error 255=20

All I needed to do was editing ghc\driver\split\ghc-split so

$Tmp_prefix =3D $ARGV[1]

was instead

($Tmp_prefix =3D $ARGV[1]) =3D~ s/\\/\\\\/g;

I don't know whether this habit of appending \4 is a delightful quirk of =
my
Cygwin install, but FWIW for other Windows Server 2k3/Cygwin users out
there...

Dominic Cooney