From mboxrd@z Thu Jan 1 00:00:00 1970 From: Adolf Belka To: development@lists.ipfire.org Subject: Failure building collectd when autoconf has been updated to 2.72 Date: Wed, 13 Nov 2024 11:30:20 +0100 Message-ID: <61df5b92-8aa1-4972-92bc-b3040e203412@ipfire.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============9163231257103481195==" List-Id: --===============9163231257103481195== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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 synta= x error in the configure file. Confirmed that this was due to autoconf by changing the versions back and for= ward 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=C2=A0=C2=A0=C2=A0 do : 18708=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 as_ac_Header=3D`$as_echo "ac_cv_hea= der_$ac_header" | $as_tr_sh` 18709=C2=A0=C2=A0=C2=A0 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "= $as_ac_Header" "$ac_includes_default" 18710=C2=A0=C2=A0=C2=A0 if eval test \"x\$"$as_ac_Header"\" =3D x"yes"; then : 18711=C2=A0=C2=A0=C2=A0 =C2=A0 cat >>confdefs.h <<_ACEOF 18712=C2=A0=C2=A0=C2=A0 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 18713=C2=A0=C2=A0=C2=A0 _ACEOF 18714 18715=C2=A0=C2=A0=C2=A0 else 18716=C2=A0=C2=A0=C2=A0 =C2=A0 with_libiptc=3D"no (header file missing)" 18717=C2=A0=C2=A0=C2=A0 fi However there are 15 occurrences of the exact same text as line 18710 in the = configure file so I am not convinced if that line is the root cause for the s= yntax error but some other earlier error that causes a knock-on effect. However, my knowledge of the coding syntax is definitely not enough to figure= 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 ign= ored. There are quite a few changes in autoconf-2.72 with some being marked as back= wards compatibilities. All of them except one say that existing configure scr= ipts will continue working. The one that doesn't mention that is the followin= g change:- =C2=A0 Configure scripts no longer support pre-1989 C compilers. =C2=A0 Specifically, compilers that *only* implement the original =E2=80=9CK= &R=E2=80=9D =C2=A0 function definition syntax, and not the newer =E2=80=9Cprototyped=E2= =80=9D syntax, =C2=A0 will not be able to parse the test programs now emitted by =C2=A0 AC_CHECK_FUNC, AC_LANG_CALL, and similar macros.=C2=A0 AC_PROG_CC sti= ll =C2=A0 accepts such compilers, but this may change in the near future. =C2=A0 This change was necessary in order to support the upcoming 2024 =C2=A0 edition of the C standard (often referred to as =E2=80=9CC23=E2=80=9D= ), which will =C2=A0 officially remove the function declaration syntax used by =C2=A0 AC_CHECK_FUNC in Autoconf 2.71 and earlier.=C2=A0 We feel that support =C2=A0 for compilers that support only C 2024 is more useful, nowadays, =C2=A0 than support for compilers that don=E2=80=99t implement a core featur= e of =C2=A0 C 1989. However I am unable to figure out from this if the problem I am experiencing = 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 au= toconf-2.72 but it would be nice to figure this out before we get to a stage = where it has to be made to work. Regards, Adolf. --===============9163231257103481195==--