As landry@ has reported, security/gnutls no longer builds on sparc64
and powerpc after the _ISOC11_SOURCE header change that has exposed
max_align_t.

The failure cascade is like this:

security/gnutls uses ports-gcc (gcc 4.9) on non-clang archs.

gcc 4.9 apparently does not accept the "restrict" keyword by default.
This causes a configure check to add -std=gnu99 to the compiler flags:
  checking for cc option to accept ISO C99... -std=gnu99 

Since max_align_t is from C11, the -std=gnu99 flag removes it from
visibility:
  checking for max_align_t... no

gnutls's copy of gnulib then provides its own replacement definition
of max_align_t.  So far this is consistent within the C universe.

But then gnutls builds its C++ library.  Plain c++, no -std flag.
This has different visibility rules.  The max_align_t from stddef.h
reappears and collides with the gnulib replacement:
  ../../src/gl/stddef.h:106:3: error: conflicting declaration
  'typedef union max_align_t max_align_t'
   } max_align_t; ^

I'm not sure how to fix this.  Maybe add -std=c11 (or -std=gnu11?)
right away to CFLAGS?

-- 
Christian "naddy" Weisgerber                          [email protected]

Reply via email to