Hi Ed, > it looks like we're pretty close to having all of > the tests apply and pass on FreeBSD so I suspect I don't have many > more to find.
Do you know what is the status of the following bugs in the newest FreeBSD release? Let me cite the sections of gnulib documentation. You find the test cases in the corresponding *.m4 files. alphasort The parameters of this function are declared as @code{const void *} on some platforms: chown Some platforms fail to detect trailing slash on non-directories, as in @code{chown("link-to-file/",uid,gid)}: dup2 This function returns @code{EMFILE} instead of @code{EBADF} for extremely large targets, which interferes with using @code{dup2(fd,fd)==fd)} as the minimal @code{EBADF} filter: fclose On some platforms, this function fails to set the file position of a seekable input stream to the byte after the last one actually read: fcntl This function does not support @code{F_DUPFD_CLOEXEC} on some platforms: fdopendir This function mistakenly closes non-directory file descriptors on some platforms: fflush @code{fflush} on an input stream right after @code{ungetc} does not discard the @code{ungetc} buffer, on some platforms: fmaf This function produces wrong results on some platforms: fmal This function produces wrong results on some platforms: fma This function produces wrong results on some platforms: *printf printf @code{"%010f"} of NaN and Infinity yields an incorrect result (padded with zeroes) on some platforms: This function can crash in out-of-memory conditions on some platforms: getdelim, getline This function crashes when passed a pointer to a NULL buffer together with a pointer to a non-zero buffer size on some platforms: getgroups On some platforms, this function fails to reject a negative count, even though that is less than the size that would be returned: lchown Some platforms fail to detect trailing slash on non-directories, as in @code{lchown("link-to-file/",uid,gid)}: link This function fails to reject trailing slashes on non-directories on some platforms: mkfifo This function mishandles trailing slash on some platforms: mknod This function requires super-user privileges to create a fifo: This function mishandles trailing slash on some platforms: modf This function has problems with infinite arguments on some platforms: open This function does not fail when the file name argument ends in a slash and (without the slash) names a nonexistent file or a file that is not a directory, on some platforms: perror This function treats @code{errno} of 0 like failure, although POSIX requires that the message declare it as a success, on some platforms: pthread_sigmask This function is declared in @code{<pthread.h>} instead of @code{<signal.h>} on some platforms: This function does nothing and always returns 0 in programs that are not linked with @code{-lpthread} on some platforms: readlink Some platforms mistakenly succeed on @code{readlink("link/",buf,len)}: On some platforms, @code{readlink} returns @code{int} instead of @code{ssize_t}: realpath This function does not allow for a NULL @samp{resolved} parameter on some platforms: remove This function fails to reject trailing slashes on non-directories on some platforms: rename This function does not reject trailing slashes on symlinks to non-directories on some platforms, as in @code{rename("link-to-file/","f")}: scandir The fourth parameter of this function is declared as @code{int (*) (const void *, const void *)} on some platforms: setenv On some platforms, this function does not fail with @samp{EINVAL} when passed an empty string or a string containing @samp{=}: stat On some platforms, @code{stat("link-to-file/",buf)} succeeds instead of failing with @code{ENOTDIR}. strerror This function reports failure for @code{strerror(0)} (by setting @code{errno} or using a string similar to out-of-range values), although POSIX requires this to leave @code{errno} unchanged and report success, on some platforms: strerror_r This function reports failure for @code{strerror_r(0, buf, len)}, although POSIX requires this to succeed, on some platforms: When the value is not in range or the buffer is too small, this function fails to leave a NUL-terminated string in the buffer on some platforms: strstr This function has quadratic instead of linear worst-case complexity on some platforms: strtod This function returns the wrong end pointer for @samp{-0x} on some platforms: This function fails to parse @samp{NaN()} on some platforms: This function fails to correctly parse very long strings on some platforms: symlink On some systems, @code{symlink(value,"name/")} mistakenly creates a symlink: unlink Some systems mistakenly succeed on @code{unlink("link-to-file/")}: unsetenv This function has the return type @samp{void} instead of @samp{int} on some platforms: On some platforms, this function does not fail with @samp{EINVAL} when passed an empty string or a string containing @samp{=}: utimes On some platforms, this function mis-handles trailing slash: Bruno