from /var/tmp/portage/sys-cluster/glusterfs-3.10.1/work/glusterfs-3.10.1/libglusterfs/src/common-utils.h:44, from /var/tmp/portage/sys-cluster/glusterfs-3.10.1/work/glusterfs-3.10.1/libglusterfs/src/dict.c:20: /usr/include/sys/sysmacros.h:57:45: error: attempt to use poisoned "system" directly. If you did not intend to use a system-defined macro\n\ ^ make[4]: *** [Makefile:958: libglusterfs_la-dict.lo] Error 1 ----------------------------------------------------------------- This is an unstable amd64 chroot image (named 13.0-no-multilib_20170418-203001) at a hardened host acting as a tinderbox. ----------------------------------------------------------------- gcc-config -l: [1] x86_64-pc-linux-gnu-5.4.0 * Available Python interpreters, in order of preference: [1] python3.4 [2] python3.6 (fallback) [3] python2.7 (fallback) [4] pypy3 (fallback) [5] pypy (fallback) Available Ruby profiles: [1] ruby21 (with Rubygems) * [2] ruby22 (with Rubygems)
Created attachment 471074 [details] emerge-info.txt
Created attachment 471076 [details] config.log.tbz2
Created attachment 471078 [details] emerge-history.txt
Created attachment 471080 [details] environment
Created attachment 471082 [details] etc.portage.tbz2
Created attachment 471084 [details] sys-cluster:glusterfs-3.10.1:20170427-113918.log
Created attachment 471086 [details] temp.tbz2
Almost 4 month later ... Is there any patch?
Workaround: 1) sudo su - as root: 2) export EPATCH_USER_EXCLUDE="00_all_0005-sys-types.h-drop-sys-sysmacros.h-include.patch" 3) emerge glibc 4) unset EPATCH_USER_EXCLUDE 5) emerge glusterfs if you want glibc as it was: 6) emerge glibc I know, it's a pain but that's how I managed to get this working. With the patch every version of GlusterFS fails currently.
To be more precise, GlusterFS fails to emerge on my system currently.
I now digged a bit into this. The error message indicates that /usr/include/sys/sysmacros.h itself, line number 57, is the place of use of the poisoned preprocessor symbol "system", and indeed, replacing "system-defined" for example by "systemdefined" lets glusterfs build correctly. Note that this is in what is meant to be a warning message, unquoted only as a hack to have "symbol" replaced within it. But alas, this also allows the "system" preprocessor symbol to match... I don't know why this triggers specifically in glusterfs. Must be the specific includes used. Anyway this should not happen. /usr/include/sys/sysmacros.h is part of sys-libs/glibc-2.25-r4 as was already noted.
I hit this on arm and I wondered whether this was fixed in 3.12.0 so I hashed out a new ebuild with several improvements. I didn't encounter the problem on amd64 so I figured it was fixed until I then tried the new version on arm. I wonder why it doesn't affect my amd64 system. I'll try to work this out before I get 3.12.0 into the tree.
I've found the cause and submitted a fix upstream. I have also submitted a pull request to Gentoo for adding 3.12.0 to the tree. That includes the fix. https://github.com/gluster/glusterfs/pull/320 https://github.com/gentoo/gentoo/pull/5667
Same problem here, same case: I've asked on irc on various channel, and one answer include this link: https://bugzilla.redhat.com/show_bug.cgi?id=1494654 attached to the ticket, there is the proposed patch. Thanks Ivan
Created attachment 497598 [details, diff] pragma_exempt.patch the patch reported on RedHat bug tracking related to this bug. https://bugzilla.redhat.com/show_bug.cgi?id=1494654
The attached patch fixes the issue reliably here, both for the current stable version (3.6.5), and the current ~amd64 version (3.10.1).
please remind: gluaster website report 3.10.6 as stable, and 3.12 as testing, please, dump versions to maintain alignment.
3.12.2 is now up. This needs to be stabilised later.
3.12.3 is stable now and old versions are gone.