Re: [HACKERS] incorrect const usage

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Dmitry Samersoff <dms(at)wplus(dot)net>
Cc: pgsql-hackers(at)postgreSQL(dot)org
Subject: Re: [HACKERS] incorrect const usage
Date: 1999-03-29 16:06:15
Message-ID: 4655.922723575@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Dmitry Samersoff <dms(at)wplus(dot)net> writes:
> Problem caused by incorrect const tag usage still exist
> cc: Error: fe-connect.c, line 173: In this declaration, parameter 1 has a
> different type than specified in an earlier declaration of this function.
> PQconnectdb(const char *conninfo)

Ugh. Apparently you're getting bit by c.h's gratuitous
#define const
when _STDC_ is not set. This really ought to be handled by a direct
test whether CONST is usable; in fact that whole "#ifdef __STDC__"
section of c.h is pretty bogus. I will work on it.

The problem wouldn't have come up, except that libpq-fe.h doesn't
include config.h or c.h anymore (to avoid polluting application
namespace with huge amounts of Postgres-internal symbols). So the uses
of "const" in libpq-fe.h are seen by the compiler before it sees the
#define, and then when it hits the actual function definitions inside
libpq, it (rightly) complains.

What that means is that no one has yet tried to compile 6.4.* on a
compiler that doesn't recognize "const" (or if anyone did, they didn't
report its failure). Considering that we require compilers to support
ANSI-style function definitions, and "const" predates ANSI, it seems
unlikely that there'd be any hope of building Postgres with such a
compiler anyway. In short: we could probably just lose the "#define const"
entirely, as well as a lot of the other alleged support for pre-ANSI
compilers in c.h.

> or (worst) patch configure to add -std to CFLAGS

What's worst about that? If your compiler is not really ANSI without it,
it seems like a good idea to me. What is your platform exactly?
Does it have a template file? Adding -std to CFLAGS in the template
would be simple enough...

regards, tom lane

Browse pgsql-hackers by date

  From Date Subject
Next Message Vince Vielhaber 1999-03-29 16:32:38 Re: [HACKERS] libpq++
Previous Message Bruce Momjian 1999-03-29 16:04:46 Re: [COMMITTERS] 'pgsql/src/backend/access/heap heapam.c't