From b78ca50cb3dda361f9c1e7a83af7e2e0fa0edbf2 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Tue, 16 May 2023 16:51:14 +0200 Subject: [PATCH] configure: generate a script to run the compiler MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit in the CURL_RUN_IFELSE macro, with LD_LIBRARY_PATH set to the value of the configure invoke, and not the value that might be used later, intended for the execution of the output the compiler ouputs. For example when the compiler uses the same library (like libz) that configure checks for. Reported-by: Jonas Bülow Fixes #11114 Closes #11120 --- configure.ac | 13 +++++++++++++ m4/curl-functions.m4 | 3 +++ 2 files changed, 16 insertions(+) diff --git a/configure.ac b/configure.ac index f832f710d2..ef82e944f4 100644 --- a/configure.ac +++ b/configure.ac @@ -186,6 +186,17 @@ dnl INITIAL_LDFLAGS=$LDFLAGS INITIAL_LIBS=$LIBS +dnl +dnl Generates a shell script to run the compiler with LD_LIBRARY_PATH set to +dnl the value used right now. This lets CURL_RUN_IFELSE set LD_LIBRARY_PATH to +dnl something different but only have that affect the execution of the results +dnl of the compile, not change the libraries for the compiler itself. +dnl +compilersh="run-compiler" +echo "CC=$CC" > $compilersh +echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >> $compilersh +echo 'exec $CC $@' >> $compilersh + dnl ********************************************************************** dnl See which TLS backend(s) that are requested. Just do all the dnl TLS AC_ARG_WITH() invokes here and do the checks later @@ -4396,6 +4407,8 @@ else fi AC_SUBST(LIBCURL_NO_SHARED) +rm $compilersh + dnl dnl For keeping supported features and protocols also in pkg-config file dnl since it is more cross-compile friendly than curl-config diff --git a/m4/curl-functions.m4 b/m4/curl-functions.m4 index 4d4d13a400..bd2ebbd019 100644 --- a/m4/curl-functions.m4 +++ b/m4/curl-functions.m4 @@ -5866,11 +5866,14 @@ AC_DEFUN([CURL_RUN_IFELSE], [ AC_RUN_IFELSE([AC_LANG_SOURCE([$1])], $2, $3, $4) ;; *) + oldcc=$CC old=$LD_LIBRARY_PATH + CC="sh ./run-compiler" LD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old export LD_LIBRARY_PATH AC_RUN_IFELSE([AC_LANG_SOURCE([$1])], $2, $3, $4) LD_LIBRARY_PATH=$old # restore + CC=$oldcc ;; esac ]) -- 2.47.3