On Sun, Jul 28, 2024 at 3:33 PM Dirk Eddelbuettel <e...@debian.org> wrote: > > > On 28 July 2024 at 15:11, Cottrell, Allin wrote: > | On Sun, Jul 28, 2024 at 1:29 PM Dirk Eddelbuettel <e...@debian.org> wrote: [...] > | > | > ../lib/src/interact.c: In function 'open_append_stage_1': > | > | > ../lib/src/interact.c:2131:19: error: implicit declaration of > function 'try_http' [-Wimplicit-function-declaration] > | > | > 2131 | err = try_http(cmd->param, op->fname, NULL); > | > | > | ^~~~~~~~ > | > | > make[2]: *** [Makefile:327: interact.lo] Error 1 > | > > | > That looks like one of the simple issues where the newer compiler (and I > | > checked that this was gcc-14) is pickier about includes. > | > > | > Allin: Have you seen this already upstream, and better still, fixed > already? > | > | Hmm, try_http() is declared in lib/src/gretl_www.h, which is included > | in interact.c provided that USE_CURL is defined. And in a full build > | of gretl I'd expect USE_CURL to be defined; without that we drop all > | internet interaction. I guess it's a bug that the call to try_http() > | in interact.c is not itself guarded by USE_CURL, and that's now done > | in git. If that doesn't solve the problem, the question that arises is > | why USE_CURL is (apparently) not getting defined. > > Good catch, and analysis. > > We always turn curl on in the Debian builds. I have a build-depends on > libcurl4-gnutls-dev | libcurl4-dev > and the libgretl package depends on > libcurl3t64-gnutls (>= 7.56.1) > (where thr t64 suffix is for a Debian-internal transition we did to become > 'year 2038' resistant by switching to 'bigger' time types). > > So that sounds like you spot on that maybe the file in question did not have > #define guards, the older compiler was tolerant but gcc-14 nags?
Actually, no. I checked with gcc version 14.1.1 20240720 on Arch and got no error or warning, while the build log at http://qa-logs.debian.net/2024/07/27/gretl_2024b-1_unstable.log shows, among other output from the configure script: checking for CURL... no So it was the actual bug (now fixed in git) where USE_CURL was not defined but try_http() was referenced, not a virtual/potential bug whereby the compiler somehow detected that try_http() _could_ in principle be referenced without USE_CURL being defined. So why did the CURL check fail? Well, in configure.ac the check is: PKG_CHECK_MODULES(CURL, libcurl >= 7.13.0, have_curl="yes", have_curl="no") Do you have an idea why this could now be failing when it didn't before? Allin