curl / Mailing Lists / curl-users / Single Mail
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: [EXTERNAL] Odd differences with cURL and GCC 9 and 10: curl_easy_setopt

From: Thompson, Matt \(GSFC-610.1\)\[SCIENCE SYSTEMS AND APPLICATIONS INC\] via curl- <curl-users_at_cool.haxx.se>
Date: Tue, 12 May 2020 20:28:08 +0000

All,

Apologies, but this might be a red-herring. It was not cURL but GNU Make. For some reason, when I have GNU make spit out if I'm passing '--enable-dap' to netCDF in a "tell me what variables are set" it says it is enabled, but when I actually do 'make install', it passes in '--disable-dap'.

My base libraries can be built with or without curl (because sometimes I don't need DAP support) and for some reason the "am I building with cURL?" test has decided to become unreliable after about 5 years of working just fine.

Oh GNU Make, you are my enemy sometimes. Something works for a half decade, and then, let's be weird and break stuff!

Matt

--
Matt Thompson, SSAI, Ld Scientific Programmer/Analyst
NASA GSFC, Global Modeling and Assimilation Office
Code 610.1, 8800 Greenbelt Rd, Greenbelt, MD 20771
Phone: 301-614-6712 Fax: 301-614-6246
http://science.gsfc.nasa.gov/sed/bio/matthew.thompson

From: curl-users <curl-users-bounces_at_cool.haxx.se> on behalf of "Thompson, Matt (GSFC-610.1)[SCIENCE SYSTEMS AND APPLICATIONS INC] via curl-users" <curl-users_at_cool.haxx.se>
Reply-To: the curl tool <curl-users_at_cool.haxx.se>
Date: Tuesday, May 12, 2020 at 3:27 PM
To: "curl-users_at_cool.haxx.se" <curl-users_at_cool.haxx.se>
Cc: "Thompson, Matt (GSFC-610.1)[SCIENCE SYSTEMS AND APPLICATIONS INC]" <matthew.thompson_at_nasa.gov>
Subject: [EXTERNAL] Odd differences with cURL and GCC 9 and 10: curl_easy_setopt

Dear cURL Gurus,

I'm having some odd issues. Now, in truth the odd issues are manifesting in netCDF-C:

https://github.com/Unidata/netcdf-c/issues/1725<https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_Unidata_netcdf-2Dc_issues_1725&d=DwMGaQ&c=ApwzowJNAKKw3xye91w7BE1XMRKi2LN9kiMk5Csz9Zk&r=t-_8LOcT3mR0eRjGIhNBgNcMPWsPBrZlJ8ZiJNKcEVg&m=s2uGlI7Uo7lOG_6ADPldBAbCnvcrqSpXFuSkaHSrnM8&s=vklEAOGBNWy1cCbgsQvHLEUh5allXs0Jv1d6OJWPzPI&e=>

but one of the devs pointed me to one place to explain some of it: Sometimes when I build with GCC 10.1, netCDF-C reports:

  checking for curl_easy_setopt in -lcurl... no

and sometimes it reports:

  checking for curl_easy_setopt in -lcurl... yes

The thing is, in both cases, I have *never* changed how I build cURL (and haven't for a while) and I don't change how I build netCDF! I essentially do:

        @echo "Configuring curl"
        @(cd curl; \
          export PATH="$(prefix)/bin:$(PATH)" ;\
          export CPPFLAGS="$(INC_SUPP)";\
          export LIBS="-lm";\
          ./buildconf;\
          ./configure --prefix=$(prefix) \
                      --includedir=$(prefix)/include/ \
                      --libdir=$(prefix)/lib \
                      --with-zlib=$(prefix) \
                      --disable-ldap \
                      --enable-manual \
                      --disable-shared \
                      --enable-static \
                      --without-libidn \
                      --without-libidn2 \
                      CFLAGS="$(CFLAGS)" CC=$(CC) CXX=$(CXX) FC=$(FC) )
        @touch $@

to build cURL. (I run buildconf because my "Base Libraries" (aka Baselibs) have curl as a submodule in a Git repo.)

I have nothing between the two that seems to be different other than whether I load my GCC 9.3 module or my GCC 10.1 module. If I diff curl-config after each successfully builds, the main difference is:

❯ diff curl.930.log curl.1010.log
31d30
< parallel-tests: installing './test-driver'
726c725
< Install prefix: /Users/mathomp4/installed/MPI/gcc-gfortran-9.3.0/openmpi-4.0.3/Baselibs/6.0.12-Snap13/Darwin
---
> Install prefix: /Users/mathomp4/installed/MPI/gcc-gfortran-10.1.0/openmpi-4.0.3/Baselibs/6.0.12-Snap13/Darwin

(Note CPPFLAGS and LDFLAGS are also different because of different installation prefixes for sub-libraries)

I'm kind of at a loss. The log output from my curl build is about as identical as you can get. Thus, I can't see why support for curl_easy_setopt would be different.

If I try building simple.c:

https://curl.haxx.se/libcurl/c/simple.html<https://urldefense.proofpoint.com/v2/url?u=https-3A__curl.haxx.se_libcurl_c_simple.html&d=DwMGaQ&c=ApwzowJNAKKw3xye91w7BE1XMRKi2LN9kiMk5Csz9Zk&r=t-_8LOcT3mR0eRjGIhNBgNcMPWsPBrZlJ8ZiJNKcEVg&m=s2uGlI7Uo7lOG_6ADPldBAbCnvcrqSpXFuSkaHSrnM8&s=LrENqHnxnRf_TrRm68LkdwUuQ5_HI5w5b7U44CLZ1kg&e=>

with my GCC 9.3 and GCC 10.1 build of cURL they both work.

Is it possible the test for curl_easy_setopt in netCDF-C's configure isn't good? I don't read autotools well enough to know.

Any ideas? Am I perhaps building cURL incorrectly in some way that netCDF is annoyed with it?

Thanks,
Matt

--
Matt Thompson, SSAI, Ld Scientific Programmer/Analyst
NASA GSFC, Global Modeling and Assimilation Office
Code 610.1, 8800 Greenbelt Rd, Greenbelt, MD 20771
Phone: 301-614-6712 Fax: 301-614-6246
http://science.gsfc.nasa.gov/sed/bio/matthew.thompson

-----------------------------------------------------------
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-users
Etiquette: https://curl.haxx.se/mail/etiquette.html
Received on 2020-05-12