On Sun, Dec 21, 2014 at 1:53 PM, Reuben Hawkins <[email protected]> wrote:
> This check will automatically set the correct NO_NSEC setting.
Missing sign-off. See git/Documentation/SubmittingPatches.
> ---
> diff --git a/configure.ac b/configure.ac
> index 6af9647..3cfdd51 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -754,6 +754,25 @@ AC_CHECK_TYPES([struct itimerval],
> [#include <sys/time.h>])
> GIT_CONF_SUBST([NO_STRUCT_ITIMERVAL])
> #
> +# Define HAVE_ST_MTIM=No if you don't have struct stat.st_mtim.tv_nsec.
This comment is misleading. HAVE_ST_MTIM is never actually #defined or
set manually by the user, or used anywhere outside of the conditional
below. Also, the name itself is misleading: HAVE_ST_MTIM_NSEC would be
more appropriate.
> +AC_CHECK_MEMBER([struct stat.st_mtim.tv_nsec],
> +[HAVE_ST_MTIM=Yes],
> +[HAVE_ST_MTIM=No],
In Autoconf, it's customary to use lowercase values (such as "yes"
rather than "Yes") for these temporary variables. A "no" value is
usually represented by an empty assignment (HAVE_ST_MTIM=). However,
AC_CHECK_MEMBER() assigns the test result automatically to a shell
variable (in this case, named
ac_cv_member_struct_stat_st_mtim_tv_nsec), so there is no need to
invent your own (HAVE_ST_MTIM).
So, you can reduce this to:
AC_CHECK_MEMBER([struct stat.st_mtim.tv_nsec])
and later check the value with
test x$ac_cv_member_struct_stat_st_mtim_tv_nsec = yes
> +[#include <sys/stat.h>])
> +#
> +# Define HAVE_ST_MTIMESPEC=No if you don't have struct
> stat.st_mtimespec.tv_nsec.
Ditto regarding misleading comment and variable name.
> +AC_CHECK_MEMBER([struct stat.st_mtimespec.tv_nsec],
> +[HAVE_ST_MTIMESPEC=Yes],
> +[HAVE_ST_MTIMESPEC=No],
> +[#include <sys/stat.h>])
> +#
> +# Define NO_NSEC if both HAVE_ST_MTIMESPEC and HAVE_ST_MTIM are set to No.
> +if test '(' "$HAVE_ST_MTIM" = "No" ')' -a '(' "$HAVE_ST_MTIMESPEC" = "No"
> ')' ; then
Use of 'test -a' is unportable. The Autoconf manual has this to say:
The -a, -o, ‘(’, and ‘)’ operands are not present in all
implementations, and have been marked obsolete by Posix 2008.
Instead, use:
test ... && test ....
> + NO_NSEC=YesPlease
> + GIT_CONF_SUBST([NO_NSEC])
git-compat-util.h also needs to know if it should use st_ctimespec
rather than st_ctim. By this point, although indirect, you've
determined which of the two is available (if any), so as a bonus, you
can tell the build system about that, as well. Something like this,
perhaps:
if test x$ac_cv_member_struct_stat_st_mtimspec_tv_nsec = xyes; then
USE_ST_TIMESPEC=YesPlease
GIT_CONF_SUBST([USE_ST_TIMESPEC])
elif test x$ac_cv_member_struct_stat_st_mtime_tv_nsec != xyes; then
NO_NSEC=YesPlease
GIT_CONF_SUBST([NO_NSEC])
fi
> +fi
> +
> +#
> # Define NO_D_INO_IN_DIRENT if you don't have d_ino in your struct dirent.
> AC_CHECK_MEMBER(struct dirent.d_ino,
> [NO_D_INO_IN_DIRENT=],
> --
> 2.2.0.GIT
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html