configure: check if eaccess is available

To fix the error on Android:
external/alsa-lib//src/ucm/parser.c:2521:7: error: implicit declaration of function 'eaccess' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                if (eaccess(filename, R_OK))
                    ^
external/alsa-lib//src/ucm/parser.c:2521:7: note: did you mean 'access'?
bionic/libc/include/unistd.h:125:5: note: 'access' declared here
int access(const char* __path, int __mode);
    ^
1 error generated.

Signed-off-by: Chih-Wei Huang <cwhuang@linux.org.tw>
This commit is contained in:
Chih-Wei Huang 2021-06-14 12:24:10 +08:00
parent 2ff45ac535
commit dc2382e762
3 changed files with 9 additions and 0 deletions

View file

@ -50,6 +50,7 @@ AC_HEADER_TIME
dnl Checks for library functions.
AC_PROG_GCC_TRADITIONAL
AC_CHECK_FUNCS([uselocale])
AC_CHECK_FUNCS([eaccess])
SAVE_LIBRARY_VERSION
AC_SUBST(LIBTOOL_VERSION_INFO)

View file

@ -2518,7 +2518,11 @@ int uc_mgr_scan_master_configs(const char **_list[])
snprintf(fn, sizeof(fn), "%s.conf", d_name);
ucm_filename(filename, sizeof(filename), 2, d_name, fn);
#ifdef HAVE_EACCESS
if (eaccess(filename, R_OK))
#else
if (access(filename, R_OK))
#endif
continue;
err = uc_mgr_config_load(2, filename, &cfg);

View file

@ -305,7 +305,11 @@ static int if_eval_path(snd_use_case_mgr_t *uc_mgr, snd_config_t *eval)
return -EINVAL;
}
#ifdef HAVE_EACCESS
if (eaccess(path, amode))
#else
if (access(path, amode))
#endif
return 0;
return 1;