PGSQL 7.2.1 compile error on Red Hat 5.2 due to peercred

From: Joe Bernstein <joe(at)sfbooks(dot)com>
To: pgsql-ports(at)postgresql(dot)org
Subject: PGSQL 7.2.1 compile error on Red Hat 5.2 due to peercred
Date: 2002-04-14 03:24:15
Message-ID: 20020413222415.A9362@stanley.postilion.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-ports

On attempts the last two weekends to compile first PostgreSQL 7.2,
then 7.2.1, I've run into the same error.

The machine is an i586 with a Linux on it that is ancestrally Red
Hat 5.2, kernel 2.3.2, but that has been hacked since and may since
have had another Linux installed over it (I'm not sure). I do know
that I ran into trouble trying to install Perl 5.005_03 on it; that
it now has an installation of Perl 5.004_04 which may or may not be
later (I didn't put it there); that I have successfully installed
trn 4.0-something on it. So in other words it may be a broken OS,
but isn't totally broken. The error with Perl had something to do
with SysV IPCs.

The error occurs, after a successful run of configure, when gmake
reaches src/backend/libpq/hba.c. It goes like this:

gcc -O2 -g -Wall -Wmissing-prototypes -Wmissing-declarations -I../../../src/incl ude -I/opt/include -I/usr/local/ssl/include -c hba.c -o hba.o
hba.c: In function `ident_unix':
hba.c:885: storage size of `peercred' isn't known
hba.c:885: warning: unused variable `peercred'
gmake[3]: *** [hba.o] Error 1
gmake[3]: Leaving directory
`/home/joe/postgresql-7.2.1/src/backend/libpq'
gmake[2]: *** [libpq-recursive] Error 2
gmake[2]: Leaving directory `/home/joe/postgresql-7.2.1/src/backend'
gmake[1]: *** [all] Error 2
gmake[1]: Leaving directory `/home/joe/postgresql-7.2.1/src'
gmake: *** [all] Error 2

I looked at hba.c. I have never been good at C, and haven't looked at
it much at all since 1984, but it *looks* to me like the code there is
assuming that something will be implemented Just So, which obviously
isn't implemented Just So on this machine. (Looking more carefully,
I see that there's an include earlier for a ucred.h, which is not
present in /usr/include/sys on this machine, or anywhere else that
whereis knows about. I assume this is relevant since peercred is
declared as a struct of type ucred.)

I looked in Google. It appears that the recent addition of peercred
for authentication was meant to make ident authentication work in Linux
machines. I hadn't actually planned to use ident authentication at all
(but did see the posts saying that without it you can't run VACUUM; if
that's true, why didn't the manual say so?). It also appears that
peercred is not the only way to make ident authentication work on Linux;
it seems to be the preferred one, but I have the impression there
may even be other ways in the shipped source, let alone possible ways
not included there.

But I don't know C well, and certainly don't know how gcc works or
how I can convince it not to care about something it considers bad
code... on this machine, anyway.

So look: Is whatever may or may not be wrong with this machine
concerning peercred so catastrophically wrong that I Must Not attempt
to run PostgreSQL? If this is not the case, I'd really appreciate some
advice as to how I can change what to get the program to compile.

I have full logs of the configure and gmake runs, in case you need to
know anything more.

Thanks

Joe Bernstein
joe(at)sfbooks(dot)com
http://these-survive.postilion.org/ (which indicates why I'm trying to
compile PostgreSQL, by the way)

Responses

Browse pgsql-ports by date

  From Date Subject
Next Message Lamar Owen 2002-04-14 03:48:22 PostgreSQL 7.2.1-2PGDG RPMs available for RedHat-skipjack 7.2.93 and RedHat 6.2/SPARC
Previous Message renaud diez 2002-04-11 09:34:20 problem with postgres and mandrake 8.2