Am 20.12.2012 20:25, schrieb Michael Elkins: > On Thu, Dec 20, 2012 at 06:17:58PM +0100, Fabian Groffen wrote: >> On 20-12-2012 18:06:10 +0100, Matthias Andree wrote: >>> HOWEVER: I seem to recall that you will still get Solaris breakage by >>> defining the macros quoted above, too. Not sure if AC_SYSTEM_EXTENSIONS >>> avoids that. >> >> Yes, you get breakage. However, I believe we don't need any of that >> trickery for Mutt. Hence, stick with my recommendation to backout >> changesets 36b0cc717ecc and 73900ca5db9a. > > I've reverted [36b0cc717ecc] which is the main problem. [73900ca5db9a] > is harmless by itself, it just won't be used. I have to figure out > another way to get the wide char support in ncurses to show up, since it > depends on _XOPEN_SOURCE_EXTENDED being defined.
Thank you. The thing is, these feature macros turn on standard features, and usually turn off system-specific extensions that some other modules might depend on, as seen for db.h now. One could argue that db.h is broken because it relies on nonstandard types such as u_int, but practically speaking, that would not take us anywhere. The way out that I see is, rather than inflicting these POSIX/XOPEN macros on the whole build, only use them in the .c files that need them. This, however, hinges on the ability to isolate relevant implementations in a few .c files.