For the time being try editing the file yourself. First make a backup copy of the file. Then change these macros
#define ___swab16(x) \ ({ \ __u16 __x = (x); \ ((__u16)( \ (((__u16)(__x) & (__u16)0x00ffU) << 8) | \ (((__u16)(__x) & (__u16)0xff00U) >> 8) )); \ })
So they look like this:
#define ___swab16(x) \ (__extension__{ \ __u16 __x = (x); \ ((__u16)( \ (((__u16)(__x) & (__u16)0x00ffU) << 8) | \ (((__u16)(__x) & (__u16)0xff00U) >> 8) )); \ })
i.e. add __extension__ before the braced group. This should do the trick.
OK, I added __extension__ to those macros but it still doesn't work; here is what I get: /usr/include/linux/byteorder/swab.h: In function `const __u32 __fswab24(unsigned int)': /usr/include/linux/byteorder/swab.h:174: error: ISO C++ forbids braced-groups within expressions /usr/include/linux/byteorder/swab.h:174: error: parse error before `{' token /usr/include/linux/byteorder/swab.h:174: error: `__x' undeclared (first use this function) /usr/include/linux/byteorder/swab.h:174: error: (Each undeclared identifier is reported only once for each function it appears in.) /usr/include/linux/byteorder/swab.h: At global scope: /usr/include/linux/byteorder/swab.h:174: error: parse error before `)' token /usr/include/linux/byteorder/swab.h: In function `__u32 __swab24p(__u32*)': /usr/include/linux/byteorder/swab.h:178: error: parse error before `{' token /usr/include/linux/byteorder/swab.h: At global scope: /usr/include/linux/byteorder/swab.h:178: error: parse error before `)' token /usr/include/linux/byteorder/swab.h: In function `void __swab24s(__u32*)': /usr/include/linux/byteorder/swab.h:182: error: parse error before `{' token /usr/include/linux/byteorder/swab.h:182: error: parse error before `)' token
I'll talk with my colleague whether or not to put a modified glibc-devel in /pub/projects/gcc/8.2 sometime next week.
In the future *please* report things like this at http://www.suse.de/feedback as I clearly stated in the READMEs (if you haven't already done so)! Otherwise chances are very high that we'll never notice it. I'll remember that, thanks for pointing me there ;-)