Added a check in configure that simply tries to run a program (not when
authorDaniel Stenberg <daniel@haxx.se>
Mon, 16 Oct 2006 08:30:54 +0000 (08:30 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Mon, 16 Oct 2006 08:30:54 +0000 (08:30 +0000)
cross-compiling) in order to detect problems with run-time libraries that
otherwise would occur when the sizeof tests for curl_off_t would run and
thus be much more confusing to users. The check of course should run after
all lib-checks are done and before any other test is used that would run an
executable built for testing-purposes.

CHANGES
acinclude.m4
configure.ac

diff --git a/CHANGES b/CHANGES
index 6e2d9e3..340d727 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,14 @@
 
                                   Changelog
 
+Daniel (16 October 2006)
+- Added a check in configure that simply tries to run a program (not when
+  cross-compiling) in order to detect problems with run-time libraries that
+  otherwise would occur when the sizeof tests for curl_off_t would run and
+  thus be much more confusing to users. The check of course should run after
+  all lib-checks are done and before any other test is used that would run an
+  executable built for testing-purposes.
+
 Dan F (13 October 2006)
 - The tagging of application/x-www-form-urlencoded POST body data sent
   to the CURLOPT_DEBUGFUNCTION callback has been fixed (it was erroneously
index 7317974..820e3ac 100644 (file)
@@ -1873,3 +1873,37 @@ else
   AC_MSG_WARN([`missing' script is too old or missing])
 fi
 ])
+
+
+dnl CURL_VERIFY_RUNTIMELIBS
+dnl -------------------------------------------------
+dnl Verify that the shared libs found so far can be used when running
+dnl programs, since otherwise the situation will create odd configure errors
+dnl that are misleading people.
+dnl
+dnl Make sure this test is run BEFORE the first test in the script that
+dnl runs anything, which at the time of this writing is the AC_CHECK_SIZEOF
+dnl macro. It must also run AFTER all lib-checking macros are complete.
+
+AC_DEFUN([CURL_VERIFY_RUNTIMELIBS], [
+
+  dnl this test is of course not sensible if we are cross-compiling!
+  if test "x$cross_compiling" != xyes; then
+
+    dnl just run a program to verify that the libs checked for previous to this
+    dnl point also is available run-time!
+    AC_MSG_CHECKING([run-time libs availability])
+    AC_TRY_RUN([
+main()
+{
+  return 0;
+}
+],
+    AC_MSG_RESULT([fine]),
+    AC_MSG_RESULT([failed])
+    AC_MSG_ERROR([one or more libs available at link-time are not available run-time. Libs used at link-time: $LIBS])
+    )
+
+    dnl if this test fails, configure has already stopped
+  fi
+])
index 31c00a3..a53c819 100644 (file)
@@ -1528,6 +1528,7 @@ AC_C_CONST
 AC_TYPE_SIZE_T
 AC_HEADER_TIME
 CURL_CHECK_STRUCT_TIMEVAL
+CURL_VERIFY_RUNTIMELIBS
 
 AC_CHECK_SIZEOF(curl_off_t, ,[
 #include <stdio.h>