Mercurial > gnulib
changeset 40147:69f945816225
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.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Sun, 27 Jan 2019 04:57:24 +0100 |
parents | 62fbdb07f551 |
children | 5be6b690b930 |
files | ChangeLog m4/fts.m4 tests/test-fts.c |
diffstat | 3 files changed, 30 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Sun Jan 27 00:21:17 2019 +0100 +++ b/ChangeLog Sun Jan 27 04:57:24 2019 +0100 @@ -1,3 +1,10 @@ +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.
--- a/m4/fts.m4 Sun Jan 27 00:21:17 2019 +0100 +++ b/m4/fts.m4 Sun Jan 27 04:57:24 2019 +0100 @@ -1,4 +1,4 @@ -#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, @@ -28,4 +28,22 @@ ]]) 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 ])
--- a/tests/test-fts.c Sun Jan 27 00:21:17 2019 +0100 +++ b/tests/test-fts.c Sun Jan 27 04:57:24 2019 +0100 @@ -102,7 +102,7 @@ /* 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. */ @@ -115,7 +115,9 @@ 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; }