[foreign] Running tests on Windows

Jorn Vernee jbvernee at xs4all.nl
Wed Sep 19 21:44:58 UTC 2018

Maurizio Cimadamore schreef op 2018-09-19 23:11:
> So it seems like your issue is: if you try to compile a c/cpp file
> with an include to clang-c/Index.h using MSVC from cygwin, that fails,
> correct? Which in turns trips up the build configure script.

Yes, I've tried with both .c and .cpp files.

I've also tested with renaming the LLVM folder (since I read there can 
be naming conflicts with cygwin), no success.

I've also tried using a dummy header file `dummy.h` in a J:\test folder, 
and also putting it in a folder somewhere in the cygwin file system and 
that is not being picked up either, so it does not seem to be a problem 
with the LLVM binary.

I have found a way that it does work, if I use a windows style path, but 
also escape the the slashes i.e. :

$ ~/cl.exe -c -I J:\\LLVM\\include /showIncludes main.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.14.26430 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

Note: including file: J:\LLVM\include\clang-c/Index.h
J:\LLVM\include\clang-c/Index.h(19): fatal error C1083: Cannot open 
include file: 'time.h': No such file or directory

It seems like cygwin is not translating the unix style path, since that 
should work according to cygpath:

$ cygpath -w /cygdrive/j/LLVM/include/clang-c/Index.h

But it _is_ trying to translate the windows style path, which doesn't 

$ cygpath -w J:\LLVM\include\clang-c\Index.h

So adding escapes for the slashes seems to work:

$ cygpath -w \J:\\LLVM\\include\\clang-c\\Index.h

I noticed that the -I option is also being used in other places in 
config, so maybe there is a missing configuration step of cygwin path 
mangling before trying to find the header files.


More information about the panama-dev mailing list