Re: NIF calls to enif_fprintf causing segfaults on Windows

Jaka Bac <[email protected]>
Newsgroups gmane.comp.lang.erlang.general
Message-ID <CAPQ1XRGViFbgQwjSGYU4BJZpwP3vLEZ4R8P4EEQMKUgxoNV4Hw@mail.gmail.com>
Just thinking out loud...

Is the segfault a null pointer dereference?
It is possible that stdout is not what MinGW runtime expects it to be and
is possibly null.
Windows Erlang is built by MSVC and it will run the MSVC CRT initialization
code (which will set up stdout). Your NIF DLL is built by MinGW. And its
CRT initialization possibly did not run or did not run correctly which in
turn leaves the MinGW stdout undefined.

Jaka

On Mon, 26 Jul 2021 at 23:27, Brett Hemes <[email protected]> wrote:

> I have recently moved from a Linux environment to Windows and my NIFs that
> call `enif_fprintf` are causing segfaults.
>
>
>
> A simple call such as `enif_fprintf(stdout, “Hello, world!\n”);` will
> cause issue.
>
>
>
> My build setup is:
>
> * Windows 10
>
> * rebar3
>
> * MSYS2 + MinGW 64-bit + gcc
>
>
>
> I have tried in both `erl` and `werl` to the same effect as well as
> `stdout` and `stderr`...
>
>
>
> Does anyone have any insight into what might be the issue?
>
>
>
> Thanks,
>
> Brett
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.