> Date: Mon, 9 Jan 2017 12:14:21 +0100
> From: Marc Espie <es...@nerim.net>
> 
> On Sun, Jan 08, 2017 at 09:53:50PM +0000, Stuart Henderson wrote:
> > graphics/ttfautohint
> > 
> > c++ -std=gnu++11 -DHAVE_CONFIG_H -I. -I..   -I../lib  -I../gnulib/src  
> > -I../gnulib/src  -I/usr/X11R6/include/freetype2   -O2 -pipe -MT info.o -MD 
> > -MP -MF .deps/info.Tpo -c -o info.o info.cpp
> > In file included from ../gnulib/src/stdio.h:53:0,
> >                  from info.cpp:15:
> > ../gnulib/src/stddef.h:106:3: error: conflicting declaration 'typedef union 
> > max_align_t max_align_t'
> >  } max_align_t;
> >    ^
> > In file included from ../gnulib/src/stddef.h:55:0,
> >                  from ../gnulib/src/stdio.h:53,
> >                  from info.cpp:15:
> > /usr/include/stddef.h:80:3: note: previous declaration as 'typedef struct 
> > max_align_t max_align_t'
> >  } max_align_t;
> >    ^
> Well, gnu/stddef.h has no business redefining max_align_t
> 
> That said, I don't see any way that our definition can be right. It should be
> an union.

The definition is carefully chosen to match what both gcc and clang
provide.  There are apparently a lot of subtleties involved, and
possibly compiler bugs that this works around.

Reply via email to