/lib/modules/2.6.26-gentoo-r1/build/include/linux/netfilter/st_sctp.h includes the C++ keyword bool on lines 67 and 79, the keyword true on lines 74 and 86, and the keyword false on lines 73 and 85. This makes it impossible to build stuff written in C against it using gcc 4.3.1-r1 (i686-pc-linux-gnu), which is correct behaviour because those things are not defined in C. Specifically, no version of iptables in portage can build against that. I actually have no idea what installs this file exactly (equery belongs shows nothing on my system), but it's most probably part of the kernel. Reproducible: Always Steps to Reproduce: 1. Build a gentoo system with kernel 2.6.26-gentoo-r1 2. Try to merge iptables Actual Results: It cannot compile, complaining of a syntax error (it expected a keyword) Expected Results: It should compile successfully. I solved this temporarily on my system by replacing bool with char and adding these lines near the top of the file: #define true 1 #define false 0 That might make C++ apps unable to use the headers, though.
If you figure out what installs this file, we can look more into this. I was unable to locate the source.