Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-hackers by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group