Closed maroneze closed 8 years ago
After a bug report about Frama-C, I noticed that I am no longer able to compile the MinGW version. It seems there is an issue with a :
character inside an expanded Makefile command that calls cygpath
, where the character becomes garbage and this prevents the package from compiling.
I could not redo the tests with older Cygwin versions to understand if this is a new issue or if it always happened, in any case these patches should improve the situation without any regressions.
I added -j%{jobs}%
to speed up compilation, and so far I haven't had any issues with parallel compilation in Frama-C, but if that triggers build problems, I can remove them.
For information, this piece of code inside a Makefile is enough to trigger the weird character expansion:
winpath=$(shell cygpath -m "$(1)")
bug:
echo $(call winpath, C:\windows)
Removing the double quotes fixes the issue, thus the patch associated to this PR. The modification has been applied upstream and the next release of Frama-C will not need this patch.
I've been able to better isolate the bug, and here's what I've found: on the same virtual machine (Windows 8.1), with different versions of cygpath
, this command produces different results:
cygpath -m " C:/"
Note that both the doubles quotes and the space before C
need to be present for the character to become garbled.
In cygpath 2.5.2, nothing special happens, but in cygpath 2.6.0, the :
becomes garbled.
I'll try to report this upstream, but should you have weird failures happening lately in packages using cygpath
, this might be the cause. Then again, it's somewhat unlikely to have a space after a double quote before the path...
Ok, merged. It indeed didn't compile any longer without your patch.
Re-enable compiling Frama-C-20150601 Cygwin. Also updates compatibility constraints (ocamlgraph 1.8.7 allowed, OCaml 4.04 forbidden).