Hi,
It looks like cap_text.c is missing to include stddef.h. That is where size_t is defined.
I just merged the libcap, so you can give this another try.
Best, -Michael
On 5 Apr 2021, at 15:44, Adolf Belka adolf.belka@ipfire.org wrote:
Hi All,
I had failures with building libcap-2.25 with the new gperf. From the fail 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 build and see if that solves the problem. Until then I have excluded gperf from my current builds.
Here is the log output from building libcap with gperf updated from 3.0.4 (2009) to 3.1 (2017).
Apr 5 13:45:53: Building libcap libcap-2.25.tar.xz checksum OK
- cd /usr/src/lfs
- make -f libcap LFS_BASEDIR=/usr/src install
====================================== 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' => making cap_names.list.h from /usr/src/libcap-2.25/libcap/../libcap/include/uapi/linux/capability.h perl -e 'while ($l=<>) { if ($l =~ /^#define[ \t](CAP[_A-Z]+)[ \t]+([0-9]+)\s+$/) { $tok=$1; $val=$2; $tok =~ tr/A-Z/a-z/; print "{"$tok",$val},\n"; } }' /usr/src/libcap-2.25/libcap/../libcap/include/uapi/linux/capability.h | fgrep -v 0x > cap_names.list.h gcc -O2 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC -I/usr/src/libcap-2.25/libcap/../libcap/include/uapi -I/usr/src/libcap-2.25/libcap/../libcap/include _makenames.c -o _makenames ./_makenames > cap_names.h gcc -O2 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Dlinux -Wall -Wwrite-strings -Wpointer-arith -Wcast-qual -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wshadow -g -fPIC -I/usr/src/libcap-2.25/libcap/../libcap/include/uapi -I/usr/src/libcap-2.25/libcap/../libcap/include -c cap_alloc.c -o cap_alloc.o gcc -O2 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Dlinux -Wall -Wwrite-strings -Wpointer-arith -Wcast-qual -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wshadow -g -fPIC -I/usr/src/libcap-2.25/libcap/../libcap/include/uapi -I/usr/src/libcap-2.25/libcap/../libcap/include -c cap_proc.c -o cap_proc.o gcc -O2 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Dlinux -Wall -Wwrite-strings -Wpointer-arith -Wcast-qual -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wshadow -g -fPIC -I/usr/src/libcap-2.25/libcap/../libcap/include/uapi -I/usr/src/libcap-2.25/libcap/../libcap/include -c cap_extint.c -o cap_extint.o gcc -O2 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Dlinux -Wall -Wwrite-strings -Wpointer-arith -Wcast-qual -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wshadow -g -fPIC -I/usr/src/libcap-2.25/libcap/../libcap/include/uapi -I/usr/src/libcap-2.25/libcap/../libcap/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 = <>) { $l =~ s/[{"]//g; $l =~ s/}.*// ; print $l; }' < cap_names.list.h | gperf --ignore-case --language=ANSI-C --readonly --null-strings --global-table --hash-function-name=__cap_hash_name --lookup-function-name="__cap_lookup_name" -c -t -m20 > _caps_output.gperf gcc -O2 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Dlinux -Wall -Wwrite-strings -Wpointer-arith -Wcast-qual -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wshadow -g -fPIC -I/usr/src/libcap-2.25/libcap/../libcap/include/uapi -I/usr/src/libcap-2.25/libcap/../libcap/include -include _caps_output.gperf -c cap_text.c -o cap_text.o In file included from <command-line>: ./_caps_output.gperf:71:80: error: unknown type name 'size_t' 71 | gperf_case_strncmp (register const char *s1, register const char *s2, register size_t n) | ^~~~~~ ./_caps_output.gperf:96:53: error: unknown type name 'size_t' 96 | __cap_hash_name (register const char *str, register size_t len) | ^~~~~~ ./_caps_output.gperf:200:55: error: unknown type name 'size_t' 200 | __cap_lookup_name (register const char *str, register size_t len) | ^~~~~~ ./_caps_output.gperf:200:1: error: conflicting types for '__cap_lookup_name' 200 | __cap_lookup_name (register const char *str, register size_t len) | ^~~~~~~~~~~~~~~~~ ./_caps_output.gperf:33:29: note: previous declaration of '__cap_lookup_name' was here 33 | const struct __cap_token_s *__cap_lookup_name(const char *, unsigned int); | ^~~~~~~~~~~~~~~~~ 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.
-- Sent from my laptop