closefrom is a library function with a fallback mechanism for when the
kernel does not support the close_range syscall.
Also check for the function properly instead of assuming it is available
with _GNU_SOURCE defined.
Closes: https://github.com/alsa-project/alsa-lib/pull/486
Fixes: https://github.com/alsa-project/alsa-lib/issues/485
Signed-off-by: Mike Gilbert <floppym@gentoo.org>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
AC_PROG_GCC_TRADITIONAL
AC_CHECK_FUNCS([uselocale])
AC_CHECK_FUNCS([eaccess])
+AC_CHECK_DECLS([closefrom])
dnl Enable largefile support
AC_SYS_LARGEFILE
close(f);
-#if defined(_GNU_SOURCE)
- close_range(3, maxfd, 0);
+#if HAVE_DECL_CLOSEFROM
+ closefrom(3);
#else
for (f = 3; f < maxfd; f++)
close(f);