fdopen / opam-repository-mingw

windows package repository for OPAM (mingw and msvc)
https://fdopen.github.io/opam-repository-mingw/
Creative Commons Zero v1.0 Universal
96 stars 34 forks source link

fixes for frama-c-base.20160501 #24

Closed maroneze closed 8 years ago

maroneze commented 8 years ago

Re-enable compiling Frama-C-20150601 Cygwin. Also updates compatibility constraints (ocamlgraph 1.8.7 allowed, OCaml 4.04 forbidden).

maroneze commented 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.

maroneze commented 8 years ago

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.

maroneze commented 8 years ago

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...

fdopen commented 8 years ago

Ok, merged. It indeed didn't compile any longer without your patch.