autoconf-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 2/2] Avoid PATH search for CONFIG_SITE.


From: Eric Blake
Subject: [PATCH 2/2] Avoid PATH search for CONFIG_SITE.
Date: Tue, 8 Jun 2010 06:53:26 -0600

* lib/autoconf/general.m4 (AC_SITE_LOAD): Make more robust.
* tests/base.at (AC_CACHE_CHECK): Enhance test.

Signed-off-by: Eric Blake <address@hidden>
---

...this fixes the broken semantics that triggered the test
failure in the first place, and strengthens the test.

Should I squash these patches into one before pushing?

 ChangeLog               |    4 ++++
 lib/autoconf/general.m4 |    9 +++++++--
 tests/base.at           |   10 +++++++++-
 3 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 6b5e87b..d5fb294 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2010-06-08  Eric Blake  <address@hidden>

+       Avoid PATH search for CONFIG_SITE.
+       * lib/autoconf/general.m4 (AC_SITE_LOAD): Make more robust.
+       * tests/base.at (AC_CACHE_CHECK): Enhance test.
+
        Avoid spurious CONFIG_SITE test failure.
        * doc/autoconf.texi (Site Defaults): Mention that CONFIG_SITE
        works best as an absolute path.
diff --git a/lib/autoconf/general.m4 b/lib/autoconf/general.m4
index f73673e..4ba9e68 100644
--- a/lib/autoconf/general.m4
+++ b/lib/autoconf/general.m4
@@ -1870,7 +1870,11 @@ m4_define([AC_SITE_LOAD],
 ac_site_file1=NONE
 ac_site_file2=NONE
 if test -n "$CONFIG_SITE"; then
-  ac_site_file1=$CONFIG_SITE
+  # We do not want a PATH search for config.site.
+  case $CONFIG_SITE in @%:@((
+    */*) ac_site_file1=$CONFIG_SITE;;
+    *)   ac_site_file1=./$CONFIG_SITE;;
+  esac
 elif test "x$prefix" != xNONE; then
   ac_site_file1=$prefix/share/config.site
   ac_site_file2=$prefix/etc/config.site
@@ -1884,7 +1888,8 @@ do
   if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
     AC_MSG_NOTICE([loading site script $ac_site_file])
     sed 's/^/| /' "$ac_site_file" >&AS_MESSAGE_LOG_FD
-    . "$ac_site_file"
+    . "$ac_site_file" \
+      || AC_MSG_FAILURE([failed to load site script $ac_site_file])
   fi
 done
 ])
diff --git a/tests/base.at b/tests/base.at
index e9fadb6..327ea68 100644
--- a/tests/base.at
+++ b/tests/base.at
@@ -401,7 +401,7 @@ AT_DATA([config.site],
 AT_DATA([sitecache],
 [[my_cv_some_preset_cache_var=yes
 ]])
-CONFIG_SITE=$PWD/config.site
+CONFIG_SITE=config.site
 export CONFIG_SITE
 AT_CHECK_CONFIGURE
 AT_CHECK([grep my_cv_some_preset_cache_var sitecache], [], [ignore])
@@ -409,6 +409,14 @@ AT_CHECK([grep my_cv_shell_true_works sitecache], [], 
[ignore])
 AT_CHECK_CONFIGURE([], [], [stdout])
 AT_CHECK([grep 'whether true.*works.*cached' stdout], [], [ignore])

+# Check that config cache scripts must be well-formed.
+AT_DATA([bad.site],
+[[fi
+]])
+CONFIG_SITE=$PWD/bad.site
+AT_CHECK_CONFIGURE([], [1], [ignore], [stderr])
+AT_CHECK([grep 'failed to load site script' stderr], [], [ignore])
+
 AT_CLEANUP


-- 
1.7.0.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]