From 81bd007e5b9152207c0b1e100c0e501b96d04609 Mon Sep 17 00:00:00 2001 From: Gustavo Sverzut Barbieri Date: Thu, 6 Dec 2012 21:15:30 +0000 Subject: [PATCH] efl: share HAVE_ATFILE_SOURCE between eina_file, ecore_file... SVN revision: 80391 --- configure.ac | 34 ++++++++-------------------------- src/lib/eina/eina_file.c | 4 ++-- 2 files changed, 10 insertions(+), 28 deletions(-) diff --git a/configure.ac b/configure.ac index 7310893e2a..0eabea027b 100644 --- a/configure.ac +++ b/configure.ac @@ -640,9 +640,11 @@ AC_CHECK_FUNCS([\ backtrace \ backtrace_symbols \ execvp \ +dirfd \ fpathconf \ fstatat \ malloc_usable_size \ +mkdirat \ mtrace \ openat \ strlcpy \ @@ -652,6 +654,11 @@ AC_FUNC_ALLOCA EFL_CHECK_FUNCS([EFL], [fnmatch gettimeofday]) +have_atfile_source="${ac_cv_func_fstatat}" +AC_DEFINE_IF([HAVE_ATFILE_SOURCE], + [test "x${have_atfile_source}" = "xyes"], + [1], [Use fstatat and other -at file functions]) + ###################### EFL ###################### @@ -926,7 +933,7 @@ EFL_CHECK_LINKER_FLAGS([EINA], [-fno-strict-aliasing]) ### Checks for library functions -EFL_CHECK_FUNCS([EINA], [dirfd dlopen dladdr iconv shm_open setxattr]) +EFL_CHECK_FUNCS([EINA], [dlopen dladdr iconv shm_open setxattr]) enable_log="no" if test "x${efl_func_fnmatch}" = "xyes" && test "x${want_log}" = "xyes" ; then @@ -2345,33 +2352,8 @@ AC_MSG_NOTICE([Ecore_File checks]) ### Additional options to configure -AC_ARG_ENABLE([atfile-source], - [AC_HELP_STRING([--disable-atfile-source], - [disable use of atfile source functions as openat and mkdirat @<:@default=detect@:>@])], - [ - if test "x${enableval}" = "xyes" ; then - have_atfile_source="yes" - else - have_atfile_source="no" - fi], - [have_atfile_source=auto]) - ### Default values -if ! test "x${have_atfile_source}" = "xno" ; then - AC_CHECK_FUNCS([mkdirat], - [ - have_atfile_source="yes" - AC_DEFINE(HAVE_ATFILE_SOURCE, 1, [mkdirat exists]) - ], - [ - if test "x${have_atfile_source}" = "xyes" ; then - AC_MSG_ERROR([required atfile-source but no mkdirat()]) - fi - have_atfile_source="no" - ]) -fi - ### Checks for programs ### Checks for libraries diff --git a/src/lib/eina/eina_file.c b/src/lib/eina/eina_file.c index 663a47463e..ec83b7d6e5 100644 --- a/src/lib/eina/eina_file.c +++ b/src/lib/eina/eina_file.c @@ -1448,14 +1448,14 @@ EAPI int eina_file_statat(void *container, Eina_File_Direct_Info *info, Eina_Stat *st) { struct stat buf; -#if defined(HAVE_FSTATAT) && defined(HAVE_DIRFD) +#ifdef HAVE_ATFILE_SOURCE int fd; #endif EINA_SAFETY_ON_NULL_RETURN_VAL(info, -1); EINA_SAFETY_ON_NULL_RETURN_VAL(st, -1); -#if defined(HAVE_FSTATAT) && defined(HAVE_DIRFD) +#ifdef HAVE_ATFILE_SOURCE fd = dirfd((DIR*) container); if (fstatat(fd, info->path + info->name_start, &buf, 0)) #else