From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com> |
Cc: | Bruce Momjian <bruce(at)momjian(dot)us>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Add unistd.h to c.h |
Date: | 2011-03-11 22:10:07 |
Message-ID: | 29118.1299881407@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)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
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2011-03-11 22:25:47 | template0 database comment |
Previous Message | Tom Lane | 2011-03-11 21:56:31 | Re: FuncExpr.collid/OpExpr.collid unworkably serving double duty |