I got this when cross-compiling to MinGW with Wine: test-open.h:34: assertion failed FAIL: test-open.exe
The relevant code is: /* Cannot create directory. */ errno = 0; ASSERT (func ("nonexist.ent/", O_CREAT | O_RDONLY, 0600) == -1); Open returns 3 for me, and it has created a file 'nonexist.ent'. I see there is some code for this in lib/open.c, however it is not used because: /* Define to 1 if open() fails to recognize a trailing slash. */ /* #undef OPEN_TRAILING_SLASH_BUG */ Defining it makes the self-test work, which argues there is a bug in the open.m4 detection code, indeed it is not run at all for MinGW: case "$host_os" in mingw* | pw*) gl_REPLACE_OPEN ;; *) A simple fix to the problem is attached. I wonder if the code is correct for the 'pw*' system though, it will not trigger the trailing slash test on it. I don't know what pw* is, and can't test it, so I'll leave that to others. Thoughts? /Simon diff --git a/m4/open.m4 b/m4/open.m4 index d705b3a..823d548 100644 --- a/m4/open.m4 +++ b/m4/open.m4 @@ -8,7 +8,7 @@ AC_DEFUN([gl_FUNC_OPEN], [ AC_REQUIRE([AC_CANONICAL_HOST]) case "$host_os" in - mingw* | pw*) + pw*) gl_REPLACE_OPEN ;; *) @@ -40,6 +40,7 @@ changequote(,)dnl freebsd*) gl_cv_func_open_slash="guessing no" ;; solaris2.[0-9]*) gl_cv_func_open_slash="guessing no" ;; hpux*) gl_cv_func_open_slash="guessing no" ;; + mingw*) gl_cv_func_open_slash="guessing no" ;; *) gl_cv_func_open_slash="guessing yes" ;; esac changequote([,])dnl