From mboxrd@z Thu Jan 1 00:00:00 1970 From: Adolf Belka To: development@lists.ipfire.org Subject: Re: Failure building collectd when autoconf has been updated to 2.72 Date: Tue, 19 Nov 2024 14:43:11 +0100 Message-ID: In-Reply-To: <7FF4003D-1ECC-4A48-8C4E-43B085EF0BD3@ipfire.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============4685822623505360872==" List-Id: --===============4685822623505360872== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Hi Michael, I obtained the configure created by the autoreconf etc and I have found the e= rror. Here is the affected line 18710 18706 if test "x$ac_ct_CC" =3D x; then 18707 CC=3D"" 18708 else 18709 case $cross_compiling:$ac_tool_warned in 18710 yes: 18711 18712 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tool= s not prefixed with host triplet" >&5 18713 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with hos= t triplet" >&2;} 18714 ac_tool_warned=3Dyes ;; 18715 esac 18716 CC=3D$ac_ct_CC 18717 fi 18718 else 18719 CC=3D"$ac_cv_prog_CC" 18720 fi That line should be yes:) so it is missing a right bracket. Not sure if you c= an figure where and why that is occurring but presumably a patch can be writt= en to be applied after the autoreconf etc and before the ./configure command Regards, Adolf. On 19/11/2024 12:41, Michael Tremer wrote: > Hello Adolf, >=20 > In the build script we are running autoreconf which will regenerate the con= figure script: >=20 > https://git.ipfire.org/?p=3Dipfire-2.x.git;a=3Dblob;f=3Dlfs/collectd;h= =3Dd1d4ea721386803c31599315de956373417c2dcf;hb=3DHEAD#l119 >=20 > Is there any output of that command? There should be some warnings which mi= ght help us to find out what we need to change. >=20 >> On 13 Nov 2024, at 10:30, Adolf Belka wrote: >> >> Hi All, >> >> I did an update run with autoconf taking it from 2.71 to 2.72 >> >> autoconf built without any problems, however collectd then failed for a sy= ntax error in the configure file. >> >> Confirmed that this was due to autoconf by changing the versions back and = forward and the problem went away and then came back again. >> >> The collectd build error message is >> >> checking for size_t... yes >> checking for uid_t... yes >> checking for gid_t... yes >> ./configure: line 18710: syntax error near unexpected token `newline' >> ./configure: line 18710: `yes:' >> make: *** [collectd:120: /usr/src/log/collectd-4.10.9] Error 2 >> >> The section around line 18710 in the configure file is >> >> 18707 do : >> 18708 as_ac_Header=3D`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` >> 18709 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Heade= r" "$ac_includes_default" >> 18710 if eval test \"x\$"$as_ac_Header"\" =3D x"yes"; then : >=20 > There is an extra : here which is probably what causes the syntax error. >=20 >> 18711 cat >>confdefs.h <<_ACEOF >> 18712 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 >> 18713 _ACEOF >> 18714 >> 18715 else >> 18716 with_libiptc=3D"no (header file missing)" >> 18717 fi >> >> However there are 15 occurrences of the exact same text as line 18710 in t= he configure file so I am not convinced if that line is the root cause for th= e syntax error but some other earlier error that causes a knock-on effect. >> >> However, my knowledge of the coding syntax is definitely not enough to fig= ure out what needs to be fixed/changed. >> >> As collectd is a very old version it is likely that some structural coding= or syntax was fine in the past but now with the change from autoconf-2.71 to= 2.72 it is no longer allowed, or is flagged up when in the past it was just = ignored. >> >> There are quite a few changes in autoconf-2.72 with some being marked as b= ackwards compatibilities. All of them except one say that existing configure = scripts will continue working. The one that doesn't mention that is the follo= wing change:- >> >> Configure scripts no longer support pre-1989 C compilers. >> Specifically, compilers that *only* implement the original =E2=80=9CK&R= =E2=80=9D >> function definition syntax, and not the newer =E2=80=9Cprototyped=E2=80= =9D syntax, >> will not be able to parse the test programs now emitted by >> AC_CHECK_FUNC, AC_LANG_CALL, and similar macros. AC_PROG_CC still >> accepts such compilers, but this may change in the near future. >> >> This change was necessary in order to support the upcoming 2024 >> edition of the C standard (often referred to as =E2=80=9CC23=E2=80=9D),= which will >> officially remove the function declaration syntax used by >> AC_CHECK_FUNC in Autoconf 2.71 and earlier. We feel that support >> for compilers that support only C 2024 is more useful, nowadays, >> than support for compilers that don=E2=80=99t implement a core feature = of >> C 1989. >> >> However I am unable to figure out from this if the problem I am experienci= ng is related to this or not. I would not have thought so as I don't believe = we are using a pre-1989 C compiler. >> >> Any ideas from anyone on how to fix this issue? >> >> There is nothing critical from a security or other vulnerability aspect in= autoconf-2.72 but it would be nice to figure this out before we get to a sta= ge where it has to be made to work. >> >> >> Regards, >> >> Adolf. >> >=20 --===============4685822623505360872==--