Heikki Linnakangas <heikki.linnakan...@enterprisedb.com> writes:
> On 11.03.2011 18:55, Bruce Momjian wrote:
>> OK, I am just asking.  FYI, we already include a boatload of includes in
>> c.h:
>> 
>> #include<stdio.h>
>> #include<stdlib.h>
>> #include<string.h>
>> #include<stddef.h>
>> #include<stdarg.h>
>> #ifdef HAVE_STRINGS_H
>> #include<strings.h>
>> #endif
>> #ifdef HAVE_STDINT_H
>> #include<stdint.h>
>> #endif
>> #include<sys/types.h>

> Presumably all of these are used by something in c.h itself. At least 
> strings.h is needed by memset, and stddef.h and/or stdlib.h is needed 
> for size_t. I'm too lazy to check the rest, but if there are any header 
> files there that are not in fact used by anything in c.h itself, they 
> should be removed from c.h, rather than going further into that direction.

I would argue that most of those includes (in particular all the stdXXX
ones) are needed to establish a minimum sane C programming environment.
Removing them would not be productive, regardless of whether c.h itself
requires them.

There are a bunch of *other* includes in c.h and the OS-specific port
files, which I'd like to see minimized, but not those.  It's this kind
of thing that we should be trying to get rid of:

#if defined(WIN32) || defined(__CYGWIN__)
#include <fcntl.h>                      /* ensure O_BINARY is available */
#endif

because it greatly increases the probability that a patch developed on
one platform will not port to others where c.h doesn't pull in the
same header.

                        regards, tom lane

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to