I am writing to report this failed compilation of the latest CIL (1.5.1) under a Windows 7 environment + cygwin + Visual Studio. Unfortunately I cannot longer access the machine. Under Windows 7 + cygwin everything works fine. Hope that this will be somehow of help in finding the issue.
Pietro Braione

checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.exe
checking for suffix of executables... .exe
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for a BSD-compatible install... /usr/bin/install -c
checking build system type... i686-pc-cygwin
checking host system type... i686-pc-cygwin
checking target system type... i686-pc-cygwin
checking for msvc cl.exe (optional)... found
checking ocaml version is at least 3.08... version is 3.12.1, ok
checking existence of related ocaml tools... ok
checking availability of native ocaml tools versions... ok
checking for Perl... found version 5.014002, port cygwin
checking for known cygwin Perl bug in File::Spec... no bug found
checking for gcc version... checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for __builtin_va_list... yes
checking if __thread is a keyword... true
checking if gcc adds underscores to assembly labels.... true
checking for ANSI C header files... (cached) yes
checking for stdlib.h... (cached) yes
checking for strings.h... (cached) yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for unistd.h... (cached) yes
checking wchar.h usability... yes
checking wchar.h presence... yes
checking for wchar.h... yes
checking stdbool.h usability... yes
checking stdbool.h presence... yes
checking for stdbool.h... yes
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking whether time.h and sys/time.h may both be included... yes
checking for working memcmp... yes
checking for mkdir... yes
checking for select... yes
checking for socket... yes
checking for __sysv_signal... no
checking for real definition of size_t... unsigned int
checking for real definition of wchar_t... unsigned short
configuring for Cygwin on win32/x86
checking obj/x86_WIN32 and related files... done
checking whether to use CIL feature blockinggraph... no
checking whether to use CIL feature zrapp... no
checking whether to use CIL feature llvm... no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating META
config.status: creating config.mk
config.status: creating bin/cilly.bat
config.status: creating bin/patcher.bat
config.status: creating bin/CilConfig.pm
config.status: creating doc/index.html
config.status: creating doc/header.html
config.status: creating test/llvm/Makefile
config.status: creating src/machdep-ml.c
config.status: creating config.h

CIL configuration:
  architecture/OS:            ARCHOS             x86_WIN32
  source tree root:           CILHOME            /cygdrive/e/Pietro/arc/cil
  (optional) cl.exe found:    HAS_MSVC           yes
  gcc to use                  CC                 E:/cygwin/bin/gcc
  default compiler            DEFAULT_COMPILER   _GNUCC
  CIL version                 CIL_VERSION        1.5.1
  CIL features                CIL_FEATURES       
  Extra source directories    EXTRASRCDIRS       
  Cycles per microsecond      CYCLES_PER_USEC    
cp cilstuff/crestInstrument.ml_srcInter cil/src/ext/crestInstrument.ml && cd cil && make
make[1]: Entering directory `/cygdrive/e/Pietro/arc/cil'
rm -f obj/x86_WIN32/machdep.ml
mkdir -p obj/x86_WIN32
echo "(* This module was generated automatically by code in Makefile and machdep-ml.c *)" >obj/x86_WIN32/machdep.ml
echo "type mach = {" >> obj/x86_WIN32/machdep.ml 
echo "  version_major: int;     (* Major version number *)"    >> obj/x86_WIN32/machdep.ml
echo "  version_minor: int;     (* Minor version number *)"    >> obj/x86_WIN32/machdep.ml
echo "  version: string;        (* gcc version string *)"      >> obj/x86_WIN32/machdep.ml
echo "  underscore_name: bool;  (* If assembly names have leading underscore *)" >> obj/x86_WIN32/machdep.ml
echo "  sizeof_short: int;      (* Size of \"short\" *)"       >> obj/x86_WIN32/machdep.ml
echo "  sizeof_int: int;        (* Size of \"int\" *)"         >> obj/x86_WIN32/machdep.ml
echo "  sizeof_bool: int;       (* Size of \"_Bool\" *)"       >> obj/x86_WIN32/machdep.ml
echo "  sizeof_long: int ;      (* Size of \"long\" *)"        >> obj/x86_WIN32/machdep.ml
echo "  sizeof_longlong: int;   (* Size of \"long long\" *)"   >> obj/x86_WIN32/machdep.ml
echo "  sizeof_ptr: int;        (* Size of pointers *)"        >> obj/x86_WIN32/machdep.ml
echo "  sizeof_float: int;      (* Size of \"float\" *)"       >> obj/x86_WIN32/machdep.ml
echo "  sizeof_double: int;     (* Size of \"double\" *)"      >> obj/x86_WIN32/machdep.ml
echo "  sizeof_longdouble: int; (* Size of \"long double\" *)" >> obj/x86_WIN32/machdep.ml
echo "  sizeof_void: int;       (* Size of \"void\" *)"        >> obj/x86_WIN32/machdep.ml
echo "  sizeof_fun: int;        (* Size of function *)"        >> obj/x86_WIN32/machdep.ml
echo "  size_t: string;         (* Type of \"sizeof(T)\" *)"   >> obj/x86_WIN32/machdep.ml
echo "  wchar_t: string;        (* Type of \"wchar_t\" *)"     >> obj/x86_WIN32/machdep.ml 
echo "  alignof_short: int;     (* Alignment of \"short\" *)"  >> obj/x86_WIN32/machdep.ml
echo "  alignof_int: int;       (* Alignment of \"int\" *)"    >> obj/x86_WIN32/machdep.ml
echo "  alignof_bool: int;      (* Alignment of \"_Bool\" *)"    >> obj/x86_WIN32/machdep.ml
echo "  alignof_long: int;      (* Alignment of \"long\" *)"   >> obj/x86_WIN32/machdep.ml
echo "  alignof_longlong: int;  (* Alignment of \"long long\" *)" >> obj/x86_WIN32/machdep.ml
echo "  alignof_ptr: int;       (* Alignment of pointers *)"   >> obj/x86_WIN32/machdep.ml
echo "  alignof_enum: int;      (* Alignment of enum types *)" >> obj/x86_WIN32/machdep.ml
echo "  alignof_float: int;     (* Alignment of \"float\" *)"  >> obj/x86_WIN32/machdep.ml
echo "  alignof_double: int;    (* Alignment of \"double\" *)" >> obj/x86_WIN32/machdep.ml
echo "  alignof_longdouble: int;  (* Alignment of \"long double\" *)" >> obj/x86_WIN32/machdep.ml
echo "  alignof_str: int;       (* Alignment of strings *)" >> obj/x86_WIN32/machdep.ml
echo "  alignof_fun: int;       (* Alignment of function *)" >> obj/x86_WIN32/machdep.ml
echo "  alignof_aligned: int;   (* Alignment of anything with the \"aligned\" attribute *)" >> obj/x86_WIN32/machdep.ml
echo "  char_is_unsigned: bool; (* Whether \"char\" is unsigned *)">> obj/x86_WIN32/machdep.ml
echo "  const_string_literals: bool; (* Whether string literals have const chars *)">> obj/x86_WIN32/machdep.ml
echo "  little_endian: bool; (* whether the machine is little endian *)">>obj/x86_WIN32/machdep.ml
echo "  __thread_is_keyword: bool; (* whether __thread is a keyword *)">>obj/x86_WIN32/machdep.ml
echo "  __builtin_va_list: bool; (* whether __builtin_va_list is builtin (gccism) *)">>obj/x86_WIN32/machdep.ml
echo "}" >> obj/x86_WIN32/machdep.ml  
if gcc -D_GNUCC src/machdep-ml.c -o obj/x86_WIN32/machdep-ml.exe ;then \
    echo "machdep-ml.exe created succesfully." \
;else \
            rm -f obj/x86_WIN32/machdep.ml; exit 1 \
machdep-ml.exe created succesfully.
echo "let gcc = {" >>obj/x86_WIN32/machdep.ml
obj/x86_WIN32/machdep-ml.exe >>obj/x86_WIN32/machdep.ml
Generating machine dependency information for CIL
echo "}"          >>obj/x86_WIN32/machdep.ml
if cl /D_MSVC src/machdep-ml.c /Feobj/x86_WIN32/machdep-ml.exe /Foobj/x86_WIN32/machdep-ml.obj ;then \
           echo "let hasMSVC = true" >>obj/x86_WIN32/machdep.ml ;\
         echo "let msvc = {" >>obj/x86_WIN32/machdep.ml ;\
           obj/x86_WIN32/machdep-ml.exe >>obj/x86_WIN32/machdep.ml ;\
         echo "}"          >>obj/x86_WIN32/machdep.ml \
        ;else \
           echo "let hasMSVC = false" >>obj/x86_WIN32/machdep.ml ;\
     echo "let msvc = gcc" >> obj/x86_WIN32/machdep.ml \
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for 80x86
Copyright (C) Microsoft Corporation.  All rights reserved.

src/machdep-ml.c(40) : fatal error C1034: stdio.h: no include path set
echo "let theMachine : mach ref = ref gcc" >>obj/x86_WIN32/machdep.ml
rm -f obj/x86_WIN32/cilversion.ml
./config.status --file=obj/x86_WIN32/cilversion.ml:src/cilversion.ml.in
config.status: creating obj/x86_WIN32/cilversion.ml
rm -f obj/x86_WIN32/feature_config.*
echo "(* This module was generated automatically by code in Makefile.in *)" >obj/x86_WIN32/feature_config.ml
echo "open Cil"   >>obj/x86_WIN32/feature_config.ml 
echo "let features : featureDescr list = [" >> obj/x86_WIN32/feature_config.ml
echo " (* EXTRAFEATURES: *)" >> obj/x86_WIN32/feature_config.ml  
echo \
| perl -pe 's/\\n/\n/g' >> obj/x86_WIN32/feature_config.ml
echo "]"   >>obj/x86_WIN32/feature_config.ml 
ocamllex.opt src/frontc/clexer.mll
340 states, 4385 transitions, table size 19580 bytes
3083 additional bytes used for bindings
ocamllex.opt src/formatlex.mll
177 states, 4503 transitions, table size 19074 bytes
ocamlyacc -v  src/frontc/cparser.mly
1 shift/reduce conflict.
ocamlyacc -v  src/formatparse.mly
ocamlutil/Makefile.ocaml:276: *** Recursive variable `CAMLDEP' references itself (eventually).  Stop.
make[1]: Leaving directory `/cygdrive/e/Pietro/arc/cil'
Makefile:11: recipe for target `cil' failed
make: *** [cil] Error 2