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:55:09 +0100 Message-ID: In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============7069209023471316055==" List-Id: --===============7069209023471316055== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Hi Michael, Also reran the collectd autoreconf with the autoconf-2.71 and in that case th= e line has yes:) so something about the autoconf-2.72 is causing that one yes= : in the configure file to be missing the ) . There are something like 20 of = those yes: entries and with the autoconf-2.72 only the one I show below is th= e one with a missing ), all the rest have a yes:) entry. Regards, Adolf. On 19/11/2024 14:43, Adolf Belka wrote: > Hi Michael, > > I obtained the configure created by the autoreconf etc and I have found the= error. Here is the affected line 18710 > > > 18706=C2=A0=C2=A0 if test "x$ac_ct_CC" =3D x; then > 18707=C2=A0=C2=A0=C2=A0=C2=A0 CC=3D"" > 18708=C2=A0=C2=A0 else > 18709=C2=A0=C2=A0=C2=A0=C2=A0 case $cross_compiling:$ac_tool_warned in > 18710 yes: > 18711 > 18712 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross to= ols not prefixed with host triplet" >&5 > 18713 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with h= ost triplet" >&2;} > 18714 ac_tool_warned=3Dyes ;; > 18715 esac > 18716=C2=A0=C2=A0=C2=A0=C2=A0 CC=3D$ac_ct_CC > 18717=C2=A0=C2=A0 fi > 18718 else > 18719=C2=A0=C2=A0 CC=3D"$ac_cv_prog_CC" > 18720 fi > > That line should be yes:) so it is missing a right bracket. Not sure if you= can figure where and why that is occurring but presumably a patch can be wri= tten 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, >> >> In the build script we are running autoreconf which will regenerate the co= nfigure script: >> >> https://git.ipfire.org/?p=3Dipfire-2.x.git;a=3Dblob;f=3Dlfs/collectd;h=3Dd= 1d4ea721386803c31599315de956373417c2dcf;hb=3DHEAD#l119 >> >> Is there any output of that command? There should be some warnings which m= ight help us to find out what we need to change. >> >>> 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 s= yntax 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=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= _header_$ac_header" | $as_tr_sh` >>> 18709=C2=A0=C2=A0=C2=A0 ac_fn_c_check_header_mongrel "$LINENO" "$ac_heade= r" "$as_ac_Header" "$ac_includes_default" >>> 18710=C2=A0=C2=A0=C2=A0 if eval test \"x\$"$as_ac_Header"\" =3D x"yes"; t= hen : >> >> There is an extra : here which is probably what causes the syntax error. >> >>> 18711=C2=A0=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=C2=A0 with_libiptc=3D"no (header file missi= ng)" >>> 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 t= he 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 fi= gure out what needs to be fixed/changed. >>> >>> As collectd is a very old version it is likely that some structural codin= g or syntax was fine in the past but now with the change from autoconf-2.71 t= o 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 = backwards compatibilities. All of them except one say that existing configure= scripts will continue working. The one that doesn't mention that is the foll= owing change:- >>> >>> =C2=A0=C2=A0 Configure scripts no longer support pre-1989 C compilers. >>> =C2=A0=C2=A0 Specifically, compilers that *only* implement the original = =E2=80=9CK&R=E2=80=9D >>> =C2=A0=C2=A0 function definition syntax, and not the newer =E2=80=9Cproto= typed=E2=80=9D syntax, >>> =C2=A0=C2=A0 will not be able to parse the test programs now emitted by >>> =C2=A0=C2=A0 AC_CHECK_FUNC, AC_LANG_CALL, and similar macros. AC_PROG_CC = still >>> =C2=A0=C2=A0 accepts such compilers, but this may change in the near futu= re. >>> >>> =C2=A0=C2=A0 This change was necessary in order to support the upcoming 2= 024 >>> =C2=A0=C2=A0 edition of the C standard (often referred to as =E2=80=9CC23= =E2=80=9D), which will >>> =C2=A0=C2=A0 officially remove the function declaration syntax used by >>> =C2=A0=C2=A0 AC_CHECK_FUNC in Autoconf 2.71 and earlier.=C2=A0 We feel th= at support >>> =C2=A0=C2=A0 for compilers that support only C 2024 is more useful, nowad= ays, >>> =C2=A0=C2=A0 than support for compilers that don=E2=80=99t implement a co= re feature of >>> =C2=A0=C2=A0 C 1989. >>> >>> However I am unable to figure out from this if the problem I am experienc= ing 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 i= n autoconf-2.72 but it would be nice to figure this out before we get to a st= age where it has to be made to work. >>> >>> >>> Regards, >>> >>> Adolf. >>> >> > --===============7069209023471316055==--