From 67e8d22958ff607065fa7def640822ca8c70acf4 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Mon, 16 Oct 2006 08:30:54 +0000 Subject: [PATCH] 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. --- CHANGES | 8 ++++++++ acinclude.m4 | 34 ++++++++++++++++++++++++++++++++++ configure.ac | 1 + 3 files changed, 43 insertions(+) diff --git a/CHANGES b/CHANGES index 6e2d9e32a..340d727a1 100644 --- 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 diff --git a/acinclude.m4 b/acinclude.m4 index 7317974bd..820e3ac20 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -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 +]) diff --git a/configure.ac b/configure.ac index 31c00a384..a53c819d7 100644 --- a/configure.ac +++ b/configure.ac @@ -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