Gentoo Archives: gentoo-user

From: Kai Peter <kp@×××××××××××××××.org>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] Multilib blues continues
Date: Thu, 05 Jul 2018 10:07:56
Message-Id: 8b9cf38cf8eec2ad7e57a86f612881aa@lists.openqmail.org
In Reply to: [gentoo-user] Multilib blues continues by "Zoltán Kócsi"
1 On 2018-07-05 09:09, Zoltán Kócsi wrote:
2 > The */* x86_ ... in the use file and asking emerge to re-build the
3 > libraries is pretty cool for building both 64 and 32 bit libs.
4 >
5 > But it has it's problems, it seems.
6 > The library libcap fails to compile with some spectacular errors:
7 >
8 > ----------------------------------
9 > x86_64-pc-linux-gnu-gcc -m32 -O2 -pipe -Wall -Wwrite-strings
10 > -Wpointer-arith -Wcast-qual -Wcast-align -Wstrict-prototypes
11 > -Wmissing-prototypes -Wnested-externs -Winline -Wshadow -g -Wall
12 > -Wwrite-strings -Wpointer-arith -Wcast-qual -Wcast-align
13 > -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline
14 > -Wshadow -g -fPIC
15 > -I/var/tmp/portage/sys-libs/libcap-2.24-r2/work/libcap-2.24-abi_x86_32.x86/libcap/../libcap/include/uapi
16 > -I/var/tmp/portage/sys-libs/libcap-2.24-r2/work/libcap-2.24-abi_x86_32.x86/libcap/../libcap/include
17 > -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Dlinux -c cap_file.c -o
18 > cap_file.o
19 > In file included from <command-line>:0:0:
20 > ./_caps_output.gperf:71:80: error: unknown type name 'size_t'
21 > gperf_case_strncmp (register const char *s1, register const char *s2,
22 > register size_t n)
23 >
24 > ^~~~~~
25 > ./_caps_output.gperf:96:53: error: unknown type name 'size_t'
26 > __cap_hash_name (register const char *str, register size_t len)
27 > ^~~~~~
28 > ./_caps_output.gperf:197:55: error: unknown type name 'size_t'
29 > __cap_lookup_name (register const char *str, register size_t len)
30 > ^~~~~~
31 > ./_caps_output.gperf:197:1: error: conflicting types for
32 > '__cap_lookup_name'
33 > __cap_lookup_name (register const char *str, register size_t len)
34 > ^~~~~~~~~~~~~~~~~
35 > ./_caps_output.gperf:33:29: note: previous declaration of
36 > '__cap_lookup_name' was here
37 > const struct __cap_token_s *__cap_lookup_name(const char *, unsigned
38 > int);
39 > ^~~~~~~~~~~~~~~~~
40 > cap_text.c: In function 'cap_to_name':
41 > cap_text.c:291:2: warning: ignoring return value of 'asprintf',
42 > declared with attribute warn_unused_result [-Wunused-result]
43 > asprintf(&tmp, "%u", cap);
44 > ^~~~~~~~~~~~~~~~~~~~~~~~~
45 > make[1]: *** [Makefile:84: cap_text.o] Error 1
46 > ------------------------------------
47 >
48 > If it can't find size_t then for some reason it fails to include
49 > pretty much any standard header. Which is supported by the
50 > "included from <command-line>" pip from gcc. Obviously, whatever
51 > generates the _caps_output.gperf file made a mistake, both not
52 > including the standard headers and also with declaration of the
53 > __cap_lookup_name() function.
54 >
55 > Considering that libcap builds happily on a 64-bit system and I assume
56 > would also build on 32-bit one, the problem must be with the magic
57 > required to build a 32-bit version on a 64-bit machine.
58 >
59 > Should it be considered a bug worthy of reporting?
60 >
61 > Thanks,
62 >
63 > Zoltan
64
65 See bug 604802 (https://bugs.gentoo.org/604802).
66
67 Workaround: unmerge gperf, merge libpcap, afterwards merge gperf again.
68
69 For an 'emerge -e @world', temporarily downgrade to gperf-3.0.4 before.
70
71 --
72 Sent with eQmail-1.11 beta

Replies

Subject Author
Re: [gentoo-user] Multilib blues continues "Zoltán Kócsi" <zoltan@××××××××××.au>