Hash :
2d437590
Author :
Date :
2009-10-15T21:04:51
don't let environment settings perturb build
Setting the envvars, LIB_CLOCK_GETTIME, LIB_EACCESS or LIB_NANOSLEEP
could cause a configure-time and/or build-time malfunction.
Typically, a configure-time function-in-library test is performed
via code like this:
LIB_VAR=
AC_SUBST([LIB_VAR])
prefix_saved_LIBS=$LIBS
AC_SEARCH_LIBS([FUNC], [LIB_NAME],
[test "$ac_cv_search_FUNC" = "none required" ||
LIB_VAR=$ac_cv_search_FUNC])
LIBS=$prefix_saved_LIBS
However, in each of the files affected by this change, the LIB_VAR=
initialization was omitted. Thus, when set in the environment, its
value would propagate into generated Makefiles when FUNC is not found
in LIB_NAME.
* m4/clock_time.m4 (gl_CLOCK_TIME): Initialize AC_SUBST'd var.
* m4/euidaccess.m4 (gl_PREREQ_EUIDACCESS): Likewise.
* m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Likewise.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
# euidaccess.m4 serial 11
dnl Copyright (C) 2002-2009 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
AC_DEFUN([gl_FUNC_NONREENTRANT_EUIDACCESS],
[
AC_REQUIRE([gl_FUNC_EUIDACCESS])
AC_DEFINE([PREFER_NONREENTRANT_EUIDACCESS], [1],
[Define this if you prefer euidaccess to return the correct result
even if this would make it nonreentrant. Define this only if your
entire application is safe even if the uid or gid might temporarily
change. If your application uses signal handlers or threads it
is probably not safe.])
])
AC_DEFUN([gl_FUNC_EUIDACCESS],
[
AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
dnl Persuade glibc <unistd.h> to declare euidaccess().
AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
AC_REPLACE_FUNCS([euidaccess])
if test $ac_cv_func_euidaccess = no; then
HAVE_EUIDACCESS=0
gl_PREREQ_EUIDACCESS
fi
])
# Prerequisites of lib/euidaccess.c.
AC_DEFUN([gl_PREREQ_EUIDACCESS], [
dnl Prefer POSIX faccessat over non-standard euidaccess.
AC_CHECK_FUNCS_ONCE([faccessat])
dnl Try various other non-standard fallbacks.
AC_CHECK_HEADERS_ONCE([libgen.h])
AC_CHECK_DECLS_ONCE([setregid])
AC_REQUIRE([AC_FUNC_GETGROUPS])
# Solaris 9 needs -lgen to get the eaccess function.
# Save and restore LIBS so -lgen isn't added to it. Otherwise, *all*
# programs in the package would end up linked with that potentially-shared
# library, inducing unnecessary run-time overhead.
LIB_EACCESS=
gl_saved_libs=$LIBS
AC_SEARCH_LIBS([eaccess], [gen],
[test "$ac_cv_search_eaccess" = "none required" ||
LIB_EACCESS=$ac_cv_search_eaccess])
AC_SUBST([LIB_EACCESS])
AC_CHECK_FUNCS([eaccess])
LIBS=$gl_saved_libs
])