diff options
author | R.J.V. Bertin <rjvbertin@gmail.com> | 2018-05-19 16:59:00 +0200 |
---|---|---|
committer | Shawn Landden <slandden@gmail.com> | 2018-06-07 10:06:58 -0700 |
commit | 0229c29317f6526f2cf816e1e1f197cbee4c8746 (patch) | |
tree | d90d0f4e86d3ab59861ce4810edc2eed3f50acd5 | |
parent | 572f6c2106d99e49c7b8bf85a3915d40ea092a60 (diff) | |
download | distcc-git-0229c29317f6526f2cf816e1e1f197cbee4c8746.tar.gz |
handle systems that don't have fstatat() and family.
Committed from host : Portia.local
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | src/compile.c | 4 | ||||
-rw-r--r-- | src/serve.c | 2 |
3 files changed, 8 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac index 4e35fd6..0efbb2a 100644 --- a/configure.ac +++ b/configure.ac @@ -383,6 +383,8 @@ AC_CHECK_FUNCS([strndup strsep mmap strlcpy]) AC_CHECK_FUNCS([getloadavg]) AC_CHECK_FUNCS([getline]) +AC_CHECK_FUNCS([fstatat],[],[AC_MSG_WARN([fstatat() not available; distccd will be slightly less secure])]) + AC_CHECK_DECLS([snprintf, vsnprintf, vasprintf, asprintf, strndup]) AC_MSG_CHECKING([if mmap() supports MAP_FAILED]) diff --git a/src/compile.c b/src/compile.c index a811c85..e45fba5 100644 --- a/src/compile.c +++ b/src/compile.c @@ -446,6 +446,7 @@ static int dcc_please_send_email_after_investigation( return dcc_note_discrepancy(discrepancy_filename); } +#ifdef HAVE_FSTATAT /* Re-write "cc" to directly call gcc or clang */ static void dcc_rewrite_generic_compiler(char **argv) @@ -517,6 +518,7 @@ static void dcc_rewrite_generic_compiler(char **argv) } else return; } +#endif /* Clang is a native cross-compiler, but needs to be told to what target it is @@ -682,7 +684,9 @@ dcc_build_somewhere(char *argv[], dcc_free_argv(argv); argv = new_argv; if (!getenv("DISTCC_NO_REWRITE_CROSS")) { +#ifdef HAVE_FSTATAT dcc_rewrite_generic_compiler(new_argv); +#endif dcc_add_clang_target(new_argv); dcc_gcc_rewrite_fqn(new_argv); } diff --git a/src/serve.c b/src/serve.c index e90a6e2..4af1458 100644 --- a/src/serve.c +++ b/src/serve.c @@ -370,6 +370,7 @@ static int dcc_check_compiler_masq(char *compiler_name) **/ static int dcc_check_compiler_whitelist(char *_compiler_name) { +#ifdef HAVE_FSTATAT char *compiler_name = _compiler_name; int dirfd = -1; @@ -399,6 +400,7 @@ static int dcc_check_compiler_whitelist(char *_compiler_name) } rs_trace("%s in /usr/lib/distcc whitelist", compiler_name); +#endif return 0; } |