# HG changeset patch # User Bruno Haible # Date 1548561444 -3600 # Node ID 69f945816225f84cbc0faa6c706484f417597c10 # Parent 62fbdb07f5510b1d4dc8e508ab65868a2016b625 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. diff -r 62fbdb07f551 -r 69f945816225 ChangeLog --- 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 + + 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 mountlist: Use Linux code on Android. diff -r 62fbdb07f551 -r 69f945816225 m4/fts.m4 --- 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 ]) diff -r 62fbdb07f551 -r 69f945816225 tests/test-fts.c --- 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; }