Created attachment 334724 [details] build.log libtool: compile: powerpc64-unknown-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I../include -I../include/opensm -I./../include -Wall -g -D_XOPEN_SOURCE=6 00 -D_BSD_SOURCE=1 -pipe -O2 -mcpu=cell -mabi=altivec -mgen-cell-microcode -c cl_dispatcher.c -fPIC -DPIC -o .libs/libosmcomp_la-cl_dispatcher.o In file included from /usr/include/stdlib.h:960:0, from cl_dispatcher.c:46: /usr/include/bits/stdlib-ldbl.h:35:1: error: 'qecvt' undeclared here (not in a function) /usr/include/bits/stdlib-ldbl.h:36:1: error: 'qfcvt' undeclared here (not in a function) /usr/include/bits/stdlib-ldbl.h:37:1: error: 'qgcvt' undeclared here (not in a function) /usr/include/bits/stdlib-ldbl.h:38:1: error: 'qecvt_r' undeclared here (not in a function) /usr/include/bits/stdlib-ldbl.h:39:1: error: 'qfcvt_r' undeclared here (not in a function)
Created attachment 334726 [details] emerge --info
Created attachment 334944 [details, diff] glibc-2.16.0-stdlib-ldbl-qecvt.patch The problem was caused by mismatching #ifdef guards: The usage in stdlib-ldbl.h was guarded by "defined __USE_SVID || defined __USE_XOPEN_EXTENDED" while stdlib.h guarded the declaration with "(defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K) || defined __USE_SVID". Apparently __USE_XOPEN2K is defined in my case. Attached patch fixes the issue.
I can't compile pulseaudio-3.0, is it the same bug? >>> Compiling source in /var/tmp/portage/media-sound/pulseaudio-3.0/work/pulseaudio-3.0 ... make -j1 make all-recursive make[1]: Entering directory `/var/tmp/portage/media-sound/pulseaudio-3.0/work/pulseaudio-3.0' Making all in src make[2]: Entering directory `/var/tmp/portage/media-sound/pulseaudio-3.0/work/pulseaudio-3.0/src' ORCC pulsecore/svolume-orc-gen.c ORCC pulsecore/svolume-orc-gen.h make all-am make[3]: Entering directory `/var/tmp/portage/media-sound/pulseaudio-3.0/work/pulseaudio-3.0/src' CC libpulse_la-channelmap.lo In file included from /usr/include/json/features.h:4:0, from /usr/include/stdlib.h:24, from pulse/channelmap.c:27: /usr/include/json/forwards.h:6:1: error: unknown type name ‘namespace’ /usr/include/json/forwards.h:6:16: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token In file included from /usr/include/stdlib.h:24:0, from pulse/channelmap.c:27: /usr/include/json/features.h:6:1: error: unknown type name ‘namespace’ /usr/include/json/features.h:6:16: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token In file included from pulse/channelmap.c:27:0: /usr/include/stdlib.h:34:1: error: unknown type name ‘__BEGIN_DECLS’ /usr/include/stdlib.h:97:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘typedef’ /usr/include/stdlib.h:139:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘extern’ /usr/include/stdlib.h:144:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘extern’ /usr/include/stdlib.h: In function ‘atoi’: /usr/include/stdlib.h:148:6: error: unknown type name ‘__THROW’ /usr/include/stdlib.h:148:33: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__nonnull’ /usr/include/stdlib.h:151:6: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__THROW’ /usr/include/stdlib.h:152:1: error: unknown type name ‘__END_NAMESPACE_STD’ /usr/include/stdlib.h:164:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘extern’ /usr/include/stdlib.h:167:1: error: unknown type name ‘__END_NAMESPACE_STD’ /usr/include/stdlib.h:183:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘extern’ /usr/include/stdlib.h:189:6: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__THROW’ /usr/include/stdlib.h:190:1: error: unknown type name ‘__END_NAMESPACE_STD’
(In reply to comment #3) > I can't compile pulseaudio-3.0, is it the same bug? > In file included from /usr/include/json/features.h:4:0, > from /usr/include/stdlib.h:24, > from pulse/channelmap.c:27: > /usr/include/json/forwards.h:6:1: error: unknown type name ‘namespace’ Probably not. Yours seems like a include path issue, where stdlib.h accidentally includes some json C++ header while compiling a C program.
(In reply to comment #4) > (In reply to comment #3) > > I can't compile pulseaudio-3.0, is it the same bug? > > In file included from /usr/include/json/features.h:4:0, > > from /usr/include/stdlib.h:24, > > from pulse/channelmap.c:27: > > /usr/include/json/forwards.h:6:1: error: unknown type name ‘namespace’ > Probably not. Yours seems like a include path issue, where stdlib.h > accidentally includes some json C++ header while compiling a C program. You are correct it's jsoncpp drama, thank you and sorry for the noise ;)
Created attachment 343776 [details, diff] glibc-2.17-stdlib-ldbl-qecvt.patch Upstream requested that the patch be recreated against 2.17. But it looks exactly the same, so apparently their changes were reverted before the release.
i've applied the fix that upstream merged to glibc 2.16 & 2.17 http://sources.gentoo.org/gentoo/src/patchsets/glibc/2.16.0/0065_all_glibc-2.18-qecvt-guards.patch?rev=1.1