Hello,

I realize this is probably not a combination of platform, compiler and
build type that you anticipated. m4 is used in a conan - the C++ package
manager - recipe, and it serves as the basis for many other recipes (such
as bison).

We encountered an issue when building it with Visual Studio (2019 for eg)
in *Debug* mode (runtime MDd). At runtime, even `m4.exe --version` will
throw the following assertion in ucrt.dll

```
minkernel\crts\ucrt\src\appcrt\lowio\close.cpp(49) : Assertion failed:
(_osfile(fh) & FOPEN)
```

It seems that there is a double close happening, apparently from something
gnulib overrides, as this small example produces exactly the same error:

```

#include <io.h>
#include <stdio.h>int main() {
    int no =  _fileno (stdin);
    _close(no);
    fclose(stdin);
}

```

An issue can be found there:
https://github.com/conan-io/conan-center-index/issues/8920
An older discussion with more information is here:
https://github.com/conan-io/conan-center-index/pull/7369#issuecomment-927159346

I have implemented a poor-man's workaround for the time being which
consists in calling _CrtSetReportMode early in the main function of m4.c so
that the popup isn't triggered and instead it prints to the console, but I
would ideally like to see if there isn't a small patch we could do to avoid
the double close to begin with.

Could you help please?

Thank you for your time and contributions!
Best,
Julien
--
Julien Marrec, EBCP, BPI MFBA
Owner at EffiBEM <http://www.effibem.com>
T: +33 6 95 14 42 13

LinkedIn (en <https://www.linkedin.com/in/julienmarrec>) *| *(fr
<https://fr.linkedin.com/in/julienmarrec/fr>) :
<http://www.linkedin.com/in/julienmarrec>

Reply via email to