OSDN Git Service

configure: check if eaccess() is available
authorChih-Wei Huang <cwhuang@linux.org.tw>
Mon, 14 Jun 2021 04:24:10 +0000 (12:24 +0800)
committerJaroslav Kysela <perex@perex.cz>
Mon, 14 Jun 2021 08:10:58 +0000 (10:10 +0200)
To fix the build error on Android:
  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))
                    ^
  src/ucm/parser.c:2521:7: note: did you mean 'access'?

Signed-off-by: Chih-Wei Huang <cwhuang@linux.org.tw>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
configure.ac
src/ucm/parser.c
src/ucm/ucm_cond.c

index 60271b8..635bfea 100644 (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)
index fccf579..ee99780 100644 (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);
index 0ed0b69..985a366 100644 (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;