+2019-01-26 Bruno Haible <bruno@clisp.org>
+
+ fts: Add support for Android.
+ * m4/fts.m4 (gl_FUNC_FTS_CORE): Avoid conflicts between the symbols
+ defined by this module and the ones in libc.
+ * tests/test-fts.c (main): Treat mkdir error EMLINK like EMFILE.
+
2019-01-26 Bruno Haible <bruno@clisp.org>
mountlist: Use Linux code on Android.
-#serial 21
+#serial 22
dnl Copyright (C) 2005-2019 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
]])
fi
fi
+
+ AC_CHECK_FUNC([fts_open])
+ if test $ac_cv_func_fts_open = yes; then
+ dnl The system already has the symbols fts_open, etc.
+ dnl Avoid conflicts between these symbols and ours at the linker level.
+ AC_DEFINE([fts_open], [rpl_fts_open],
+ [Define to the overridden function name])
+ AC_DEFINE([fts_close], [rpl_fts_close],
+ [Define to the overridden function name])
+ AC_DEFINE([fts_read], [rpl_fts_read],
+ [Define to the overridden function name])
+ AC_DEFINE([fts_set], [rpl_fts_set],
+ [Define to the overridden function name])
+ AC_DEFINE([fts_children], [rpl_fts_children],
+ [Define to the overridden function name])
+ AC_DEFINE([fts_cross_check], [rpl_fts_cross_check],
+ [Define to the overridden function name])
+ fi
])
/* Create directories BASE, BASE/d, BASE/d/1, BASE/d/2, ..., BASE/d/65536,
to stress-test fts. Stop if directory creation fails due to
- EMFILE problems, or if BASE/d's link count no longer matches the
+ EMFILE or EMLINK problems, or if BASE/d's link count no longer matches the
Unix tradition. See:
https://bugzilla.kernel.org/show_bug.cgi?id=196405
for more info. */
sprintf (buf, "%s/d/%i", base, i);
if (mkdir (buf, 0777) != 0)
{
- if (errno != EMFILE || i <= needles)
+ if (errno == EMFILE || errno == EMLINK)
+ break;
+ if (i <= needles)
perror_exit (buf, 77);
break;
}