Support gcov-tool without ftw.h

gcc/

	PR gcov-profile/61889
	* config.in: regenerate.
	* configure.in: Likewise.
	* configure.ac: Check for ftw.h.
	* gcov-tool.c: Check for ftw.h before using nftw.

From-SVN: r220566
This commit is contained in:
Trevor Saunders 2015-02-10 03:40:20 +00:00 committed by Trevor Saunders
parent 2d51422f39
commit 3705004557
5 changed files with 26 additions and 3 deletions

View file

@ -1,3 +1,11 @@
2015-02-09 Trevor Saunders <tsaunders@mozilla.com>
PR gcov-profile/61889
* config.in: regenerate.
* configure.in: Likewise.
* configure.ac: Check for ftw.h.
* gcov-tool.c: Check for ftw.h before using nftw.
2015-02-09 Trevor Saunders <tsaunders@mozilla.com>
PR lto/64076

View file

@ -1098,6 +1098,12 @@
#endif
/* Define to 1 if you have the <ftw.h> header file. */
#ifndef USED_FOR_TARGET
#undef HAVE_FTW_H
#endif
/* Define to 1 if you have the `fwrite_unlocked' function. */
#ifndef USED_FOR_TARGET
#undef HAVE_FWRITE_UNLOCKED

2
gcc/configure vendored
View file

@ -8448,7 +8448,7 @@ $as_echo "#define GWINSZ_IN_SYS_IOCTL 1" >>confdefs.h
fi
for ac_header in limits.h stddef.h string.h strings.h stdlib.h time.h iconv.h \
fcntl.h unistd.h sys/file.h sys/time.h sys/mman.h \
fcntl.h ftw.h unistd.h sys/file.h sys/time.h sys/mman.h \
sys/resource.h sys/param.h sys/times.h sys/stat.h \
direct.h malloc.h langinfo.h ldfcn.h locale.h wchar.h
do :

View file

@ -1028,7 +1028,7 @@ ACX_HEADER_STRING
AC_HEADER_SYS_WAIT
AC_HEADER_TIOCGWINSZ
AC_CHECK_HEADERS(limits.h stddef.h string.h strings.h stdlib.h time.h iconv.h \
fcntl.h unistd.h sys/file.h sys/time.h sys/mman.h \
fcntl.h ftw.h unistd.h sys/file.h sys/time.h sys/mman.h \
sys/resource.h sys/param.h sys/times.h sys/stat.h \
direct.h malloc.h langinfo.h ldfcn.h locale.h wchar.h)

View file

@ -35,7 +35,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include <stdio.h>
#include <sys/stat.h>
#include <unistd.h>
#if HAVE_FTW_H
#include <ftw.h>
#endif
#include <getopt.h>
extern int gcov_profile_merge (struct gcov_info*, struct gcov_info*, int, int);
@ -49,6 +51,8 @@ extern void gcov_set_verbose (void);
/* Set to verbose output mode. */
static bool verbose;
#if HAVE_FTW_H
/* Remove file NAME if it has a gcda suffix. */
static int
@ -69,13 +73,18 @@ unlink_gcda_file (const char *name,
return ret;
}
#endif
/* Remove the gcda files in PATH recursively. */
static int
unlink_profile_dir (const char *path)
unlink_profile_dir (const char *path ATTRIBUTE_UNUSED)
{
#if HAVE_FTW_H
return nftw(path, unlink_gcda_file, 64, FTW_DEPTH | FTW_PHYS);
#else
return -1;
#endif
}
/* Output GCOV_INFO lists PROFILE to directory OUT. Note that