From mboxrd@z Thu Jan 1 00:00:00 1970 From: Adolf Belka To: development@lists.ipfire.org Subject: Re: Work in progress Date: Wed, 07 Apr 2021 16:01:28 +0200 Message-ID: In-Reply-To: <1cc9cada-865e-84f9-513d-8f2f0ed19837@ipfire.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============4574821782951638792==" List-Id: --===============4574821782951638792== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Hi all, On 06/04/2021 14:43, Adolf Belka wrote: > Hi Michael, > > On 06/04/2021 12:21, Michael Tremer wrote: >> Hi, >> >> It looks like cap_text.c is missing to include stddef.h. That is where siz= e_t is defined. >> >> I just merged the libcap, so you can give this another try. > > I just found a bug entry in Gentoo from 2017 for the same issue I found of = gperf-3.1 with libcap-2.25 > Apparently gperf is called in the makefile to generate a hash table lookup = and if gperf is not available libcap falls back to using a plain list of cap = names, so it is not essential to use gperf. > > I just checked and the gperf call is no longer in the makefile for libcap-2= -49 so the new libcap version should solve things. > I will retry the build and let you know how it goes. > The build of gperf-3.1 went without any problems with libcap-2.49 The only think I found was that there was a message "Changes in libcap-2.49 c= heck rootfile!" and there were a lot of lines with +usr/share/gocode/src/kern= el.org/pub/linux/libs/security/libcap..... A patch for the update of gperf will be submitted shortly. Regards, Adolf. > Thanks and regards, > Adolf. >> >> Best, >> -Michael >> >>> On 5 Apr 2021, at 15:44, Adolf Belka wrote: >>> >>> Hi All, >>> >>> I had failures with building libcap-2.25 with the new gperf. From the fai= l messages I can see that the libcap build calls gperf and is finding unknown= type names in the response. >>> >>> I have seen that Matthias has updated libcap and submitted the patch. >>> >>> I will wait till the updated libcap is merged and then redo my gperf buil= d and see if that solves the problem. Until then I have excluded gperf from m= y current builds. >>> >>> Here is the log output from building libcap with gperf updated from 3.0.4= (2009) to 3.1 (2017). >>> >>> Apr=C2=A0 5 13:45:53: Building libcap libcap-2.25.tar.xz checksum OK >>> + cd /usr/src/lfs >>> + make -f libcap LFS_BASEDIR=3D/usr/src install >>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Installing libcap-2.25 ... >>> Install started; saving file list to /usr/src/lsalr ... >>> # Prevent a static library from being installed >>> cd /usr/src/libcap-2.25 && sed -i '/install.*STALIBNAME/d' libcap/Makefile >>> cd /usr/src/libcap-2.25 && make >>> make[1]: Entering directory '/usr/src/libcap-2.25' >>> make -C libcap all >>> make[2]: Entering directory '/usr/src/libcap-2.25/libcap' >>> =3D> making cap_names.list.h from /usr/src/libcap-2.25/libcap/../libcap/i= nclude/uapi/linux/capability.h >>> perl -e 'while ($l=3D<>) { if ($l =3D~ /^\#define[ \t](CAP[_A-Z]+)[ \t]+(= [0-9]+)\s+$/) { $tok=3D$1; $val=3D$2; $tok =3D~ tr/A-Z/a-z/; print "{\"$tok\"= ,$val},\n"; } }' /usr/src/libcap-2.25/libcap/../libcap/include/uapi/linux/cap= ability.h | fgrep -v 0x > cap_names.list.h >>> gcc -O2 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=3D64 -fPIC -I/usr/src/l= ibcap-2.25/libcap/../libcap/include/uapi -I/usr/src/libcap-2.25/libcap/../lib= cap/include _makenames.c -o _makenames >>> ./_makenames > cap_names.h >>> gcc -O2 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=3D64 -Dlinux -Wall -Wwr= ite-strings -Wpointer-arith -Wcast-qual -Wcast-align -Wstrict-prototypes -Wmi= ssing-prototypes -Wnested-externs -Winline -Wshadow -g=C2=A0 -fPIC -I/usr/src= /libcap-2.25/libcap/../libcap/include/uapi -I/usr/src/libcap-2.25/libcap/../l= ibcap/include -c cap_alloc.c -o cap_alloc.o >>> gcc -O2 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=3D64 -Dlinux -Wall -Wwr= ite-strings -Wpointer-arith -Wcast-qual -Wcast-align -Wstrict-prototypes -Wmi= ssing-prototypes -Wnested-externs -Winline -Wshadow -g=C2=A0 -fPIC -I/usr/src= /libcap-2.25/libcap/../libcap/include/uapi -I/usr/src/libcap-2.25/libcap/../l= ibcap/include -c cap_proc.c -o cap_proc.o >>> gcc -O2 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=3D64 -Dlinux -Wall -Wwr= ite-strings -Wpointer-arith -Wcast-qual -Wcast-align -Wstrict-prototypes -Wmi= ssing-prototypes -Wnested-externs -Winline -Wshadow -g=C2=A0 -fPIC -I/usr/src= /libcap-2.25/libcap/../libcap/include/uapi -I/usr/src/libcap-2.25/libcap/../l= ibcap/include -c cap_extint.c -o cap_extint.o >>> gcc -O2 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=3D64 -Dlinux -Wall -Wwr= ite-strings -Wpointer-arith -Wcast-qual -Wcast-align -Wstrict-prototypes -Wmi= ssing-prototypes -Wnested-externs -Winline -Wshadow -g=C2=A0 -fPIC -I/usr/src= /libcap-2.25/libcap/../libcap/include/uapi -I/usr/src/libcap-2.25/libcap/../l= ibcap/include -c cap_flag.c -o cap_flag.o >>> perl -e 'print "struct __cap_token_s { const char *name; int index; };\n%= {\nconst struct __cap_token_s *__cap_lookup_name(const char *, unsigned int);= \n%}\n%%\n"; while ($l =3D <>) { $l =3D~ s/[\{\"]//g; $l =3D~ s/\}.*// ; prin= t $l; }' < cap_names.list.h | gperf --ignore-case --language=3DANSI-C --reado= nly --null-strings --global-table --hash-function-name=3D__cap_hash_name --lo= okup-function-name=3D"__cap_lookup_name" -c -t -m20=C2=A0 > _caps_output.gperf >>> gcc -O2 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=3D64 -Dlinux -Wall -Wwr= ite-strings -Wpointer-arith -Wcast-qual -Wcast-align -Wstrict-prototypes -Wmi= ssing-prototypes -Wnested-externs -Winline -Wshadow -g=C2=A0 -fPIC -I/usr/src= /libcap-2.25/libcap/../libcap/include/uapi -I/usr/src/libcap-2.25/libcap/../l= ibcap/include -include _caps_output.gperf -c cap_text.c -o cap_text.o >>> In file included from : >>> ./_caps_output.gperf:71:80: error: unknown type name 'size_t' >>> =C2=A0=C2=A0=C2=A0 71 | gperf_case_strncmp (register const char *s1, regi= ster const char *s2, register size_t n) >>> | ^~~~~~ >>> ./_caps_output.gperf:96:53: error: unknown type name 'size_t' >>> =C2=A0=C2=A0=C2=A0 96 | __cap_hash_name (register const char *str, regist= er size_t len) >>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | ^~~~~~ >>> ./_caps_output.gperf:200:55: error: unknown type name 'size_t' >>> =C2=A0=C2=A0 200 | __cap_lookup_name (register const char *str, register = size_t len) >>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | ^~~~~~ >>> ./_caps_output.gperf:200:1: error: conflicting types for '__cap_lookup_na= me' >>> =C2=A0=C2=A0 200 | __cap_lookup_name (register const char *str, register = size_t len) >>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | ^~~~~~~~~~~~~~~~~ >>> ./_caps_output.gperf:33:29: note: previous declaration of '__cap_lookup_n= ame' was here >>> =C2=A0=C2=A0=C2=A0 33 | const struct __cap_token_s *__cap_lookup_name(con= st char *, unsigned int); >>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ^~~~~~~~~~~~~~~~~ >>> make[2]: *** [Makefile:63: cap_text.o] Error 1 >>> make[2]: Leaving directory '/usr/src/libcap-2.25/libcap' >>> make[1]: *** [Makefile:12: all] Error 2 >>> make[1]: Leaving directory '/usr/src/libcap-2.25' >>> make: *** [libcap:75: /usr/src/log/libcap-2.25] Error 2 >>> >>> On 05/04/2021 13:36, Adolf Belka wrote: >>>> Hi all, >>>> >>>> For information I am working on the following updates:- >>>> >>>> gettext >>>> gmp >>>> go >>>> gperf >>>> grep >>>> libmpc >>>> mpc >>>> mpd >>>> zstd >>>> >>>> >>>> Regards, >>>> >>>> Adolf. >>>> >>> --=20 >>> Sent from my laptop >>> >> --===============4574821782951638792==--