Buy commercial curl support from WolfSSL. We help you work
out your issues, debug your libcurl applications, use the API, port to new
platforms, add new features and more. With a team lead by the curl founder
himself.
Re: configure failing on 7.81.0 on armv7l, i686: error: couldn't find libraries for gethostbyname()
- Contemporary messages sorted: [ by date ] [ by thread ] [ by subject ] [ by author ] [ by messages with attachments ]
From: Satadru Pramanik via curl-library <curl-library_at_lists.haxx.se>
Date: Wed, 5 Jan 2022 12:46:35 -0500
This PR fixes the issue, at least for linux:
https://github.com/curl/curl/pull/8230
--- a/m4/curl-functions.m4 2022-01-03 16:36:46.000000000 +0000
+++ b/m4/curl-functions.m4 2022-01-05 17:34:33.635107486 +0000
_at__at_ -6515,16 +6515,21 _at__at_ dnl changes contained within this macro.
AC_DEFUN([CURL_RUN_IFELSE], [
case $host_os in
- darwin*) library_path_var=DYLD_LIBRARY_PATH ;;
- *) library_path_var=LD_LIBRARY_PATH ;;
+ darwin*)
+ old=$DYLD_LIBRARY_PATH
+ DYLD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
+ export DYLD_LIBRARY_PATH
+ AC_RUN_IFELSE([AC_LANG_SOURCE([$1])], $2, $3, $4)
+ DYLD_LIBRARY_PATH=$old # restore
+ ;;
+ *)
+ old=$LD_LIBRARY_PATH
+ 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
+ ;;
esac
-
- eval "old=$$library_path_var"
- eval "$library_path_var=\$CURL_LIBRARY_PATH:\$old"
-
- eval "export $library_path_var"
- AC_RUN_IFELSE([AC_LANG_SOURCE([$1])], $2, $3, $4)
- eval "$library_path_var=\$old" # restore
])
dnl CURL_COVERAGE
On Wed, Jan 5, 2022 at 12:29 PM Satadru Pramanik <satadru_at_gmail.com> wrote:
> Relevant commit is:
> https://github.com/curl/curl/commit/ba0657c343f0c3eff28f7d56cff3196c6443e0b9#diff-b63dc43a7804261e71d648333b4dd8ea0f67a64edb5f422381e9610501c79bc3
>
> When I run autoreconf -fiv after replacing the above code with:
>
> dnl CURL_RUN_IFELSE
> dnl -------------------------------------------------
> dnl Wrapper macro to use instead of AC_RUN_IFELSE. It
> dnl sets LD_LIBRARY_PATH locally for this run only, from the
> dnl CURL_LIBRARY_PATH variable. It keeps the LD_LIBRARY_PATH
> dnl changes contained within this macro.
>
> AC_DEFUN([CURL_RUN_IFELSE], [
> case $host_os in
> darwin*) library_path_var=DYLD_LIBRARY_PATH ;;
> *) library_path_var=LD_LIBRARY_PATH ;;
> esac
>
> eval "old=$$library_path_var"
> eval "echo \$old = $$library_path_var"
> eval "echo LD_LIBRARY_PATH = $LD_LIBRARY_PATH"
> eval "echo CURL_LIBRARY_PATH = $CURL_LIBRARY_PATH"
> eval "$library_path_var=\$CURL_LIBRARY_PATH:\$old"
> eval "echo \$library_path_var is $library_path_var"
> eval "echo \$library_path_var = $$library_path_var"
> eval "export $library_path_var"
> AC_RUN_IFELSE([AC_LANG_SOURCE([$1])], $2, $3, $4)
> eval "$library_path_var=\$old" # restore
> ])
> I get:
>
> checking if compiler accepts some basic options... 23359library_path_var =
> 23359library_path_var
> LD_LIBRARY_PATH = /usr/local/lib
> CURL_LIBRARY_PATH =
> LD_LIBRARY_PATH is LD_LIBRARY_PATH
> LD_LIBRARY_PATH = 23359library_path_var
>
> The problem is $$ gives the PID, and you can not escape in M4 as per
> https://mbreen.com/m4.html#quotes .
>
> On Wed, Jan 5, 2022 at 11:28 AM Satadru Pramanik <satadru_at_umich.edu>
> wrote:
>
>> I get this error on both armv7l & i686 trying to run the configure script
>> on ChromeOS inside Chromebrew with GCC 11.2.
>> The configure script from curl 7.80.0 works.
>>
>> checking if X/Open network library is required... no
>> checking for gethostbyname... no
>> checking for gethostbyname in -lnsl... no
>> checking for gethostbyname in -lsocket... no
>> checking for gethostbyname in -lwatt... no
>> checking for gethostbyname with both nsl and socket libs... no
>> checking for gethostbyname for Minix 3... no
>> checking for gethostbyname for eCos... no
>> checking for gethostbyname for AmigaOS bsdsocket.library... no
>> checking for gethostbyname in -lnetwork... no
>> checking for gethostbyname in -lnet... no
>> configure: error: couldn't find libraries for gethostbyname()
>>
>> on x86_64 it succeeds though:
>> checking if X/Open network library is required... no
>> checking for gethostbyname... yes
>>
>> on i686 and armv7l I see this in config.log from the 7.81.0 configure
>> script:
>> configure:21721: checking for gethostbyname
>> configure:21721: i686-cros-linux-gnu-gcc -o conftest -O2 -pipe -flto
>> -ffat-lto-objects -fPIC -fuse-ld=gold -flto conftest.c >&5
>> /usr/local/libexec/gcc/i686-cros-linux-gnu/11/cc1: error while loading
>> shared libraries: libisl.so.23: cannot open shared object file: No such
>> file or directory
>> as: error while loading shared libraries: libopcodes-2.37.so: cannot
>> open shared object file: No such file or directory
>> configure:21721: $? = 1
>> configure: failed program was:
>> ...
>> configure:21721: result: no
>>
>>
>> on i686 I see this in config.log from the 7.80.0 configure script:
>> configure:21675: result: no
>> configure:21679: checking for gethostbyname
>> configure:21679: i686-cros-linux-gnu-gcc -o conftest -O2 -pipe -flto
>> -ffat-lto-objects -fPIC -fuse-ld=gold -Werror-implicit-function-declaration
>> -Wno-system-headers -Wenum-conversion -flto conftest.c >&5
>> configure:21679: $? = 0
>> configure:21679: result: yes
>>
>> Looks like some sort of LIBRARY_PATH issue in the 7.81.0 configure script?
>>
>> FYI, autoreconf -fi also gives a broken configure script.
>>
>> Thanks,
>>
>> Satadru Pramanik
>> Chromebrew dev team
>>
>
Date: Wed, 5 Jan 2022 12:46:35 -0500
This PR fixes the issue, at least for linux:
https://github.com/curl/curl/pull/8230
--- a/m4/curl-functions.m4 2022-01-03 16:36:46.000000000 +0000
+++ b/m4/curl-functions.m4 2022-01-05 17:34:33.635107486 +0000
_at__at_ -6515,16 +6515,21 _at__at_ dnl changes contained within this macro.
AC_DEFUN([CURL_RUN_IFELSE], [
case $host_os in
- darwin*) library_path_var=DYLD_LIBRARY_PATH ;;
- *) library_path_var=LD_LIBRARY_PATH ;;
+ darwin*)
+ old=$DYLD_LIBRARY_PATH
+ DYLD_LIBRARY_PATH=$CURL_LIBRARY_PATH:$old
+ export DYLD_LIBRARY_PATH
+ AC_RUN_IFELSE([AC_LANG_SOURCE([$1])], $2, $3, $4)
+ DYLD_LIBRARY_PATH=$old # restore
+ ;;
+ *)
+ old=$LD_LIBRARY_PATH
+ 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
+ ;;
esac
-
- eval "old=$$library_path_var"
- eval "$library_path_var=\$CURL_LIBRARY_PATH:\$old"
-
- eval "export $library_path_var"
- AC_RUN_IFELSE([AC_LANG_SOURCE([$1])], $2, $3, $4)
- eval "$library_path_var=\$old" # restore
])
dnl CURL_COVERAGE
On Wed, Jan 5, 2022 at 12:29 PM Satadru Pramanik <satadru_at_gmail.com> wrote:
> Relevant commit is:
> https://github.com/curl/curl/commit/ba0657c343f0c3eff28f7d56cff3196c6443e0b9#diff-b63dc43a7804261e71d648333b4dd8ea0f67a64edb5f422381e9610501c79bc3
>
> When I run autoreconf -fiv after replacing the above code with:
>
> dnl CURL_RUN_IFELSE
> dnl -------------------------------------------------
> dnl Wrapper macro to use instead of AC_RUN_IFELSE. It
> dnl sets LD_LIBRARY_PATH locally for this run only, from the
> dnl CURL_LIBRARY_PATH variable. It keeps the LD_LIBRARY_PATH
> dnl changes contained within this macro.
>
> AC_DEFUN([CURL_RUN_IFELSE], [
> case $host_os in
> darwin*) library_path_var=DYLD_LIBRARY_PATH ;;
> *) library_path_var=LD_LIBRARY_PATH ;;
> esac
>
> eval "old=$$library_path_var"
> eval "echo \$old = $$library_path_var"
> eval "echo LD_LIBRARY_PATH = $LD_LIBRARY_PATH"
> eval "echo CURL_LIBRARY_PATH = $CURL_LIBRARY_PATH"
> eval "$library_path_var=\$CURL_LIBRARY_PATH:\$old"
> eval "echo \$library_path_var is $library_path_var"
> eval "echo \$library_path_var = $$library_path_var"
> eval "export $library_path_var"
> AC_RUN_IFELSE([AC_LANG_SOURCE([$1])], $2, $3, $4)
> eval "$library_path_var=\$old" # restore
> ])
> I get:
>
> checking if compiler accepts some basic options... 23359library_path_var =
> 23359library_path_var
> LD_LIBRARY_PATH = /usr/local/lib
> CURL_LIBRARY_PATH =
> LD_LIBRARY_PATH is LD_LIBRARY_PATH
> LD_LIBRARY_PATH = 23359library_path_var
>
> The problem is $$ gives the PID, and you can not escape in M4 as per
> https://mbreen.com/m4.html#quotes .
>
> On Wed, Jan 5, 2022 at 11:28 AM Satadru Pramanik <satadru_at_umich.edu>
> wrote:
>
>> I get this error on both armv7l & i686 trying to run the configure script
>> on ChromeOS inside Chromebrew with GCC 11.2.
>> The configure script from curl 7.80.0 works.
>>
>> checking if X/Open network library is required... no
>> checking for gethostbyname... no
>> checking for gethostbyname in -lnsl... no
>> checking for gethostbyname in -lsocket... no
>> checking for gethostbyname in -lwatt... no
>> checking for gethostbyname with both nsl and socket libs... no
>> checking for gethostbyname for Minix 3... no
>> checking for gethostbyname for eCos... no
>> checking for gethostbyname for AmigaOS bsdsocket.library... no
>> checking for gethostbyname in -lnetwork... no
>> checking for gethostbyname in -lnet... no
>> configure: error: couldn't find libraries for gethostbyname()
>>
>> on x86_64 it succeeds though:
>> checking if X/Open network library is required... no
>> checking for gethostbyname... yes
>>
>> on i686 and armv7l I see this in config.log from the 7.81.0 configure
>> script:
>> configure:21721: checking for gethostbyname
>> configure:21721: i686-cros-linux-gnu-gcc -o conftest -O2 -pipe -flto
>> -ffat-lto-objects -fPIC -fuse-ld=gold -flto conftest.c >&5
>> /usr/local/libexec/gcc/i686-cros-linux-gnu/11/cc1: error while loading
>> shared libraries: libisl.so.23: cannot open shared object file: No such
>> file or directory
>> as: error while loading shared libraries: libopcodes-2.37.so: cannot
>> open shared object file: No such file or directory
>> configure:21721: $? = 1
>> configure: failed program was:
>> ...
>> configure:21721: result: no
>>
>>
>> on i686 I see this in config.log from the 7.80.0 configure script:
>> configure:21675: result: no
>> configure:21679: checking for gethostbyname
>> configure:21679: i686-cros-linux-gnu-gcc -o conftest -O2 -pipe -flto
>> -ffat-lto-objects -fPIC -fuse-ld=gold -Werror-implicit-function-declaration
>> -Wno-system-headers -Wenum-conversion -flto conftest.c >&5
>> configure:21679: $? = 0
>> configure:21679: result: yes
>>
>> Looks like some sort of LIBRARY_PATH issue in the 7.81.0 configure script?
>>
>> FYI, autoreconf -fi also gives a broken configure script.
>>
>> Thanks,
>>
>> Satadru Pramanik
>> Chromebrew dev team
>>
>
-- Unsubscribe: https://lists.haxx.se/listinfo/curl-library Etiquette: https://curl.haxx.se/mail/etiquette.htmlReceived on 2022-01-05