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

Re: [Fwd: DBD::Pg on HP-UX 11.31 64bit]

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "H(dot)Merijn Brand" <h(dot)m(dot)brand(at)xs4all(dot)nl>
Cc: Simon Riggs <simon(at)2ndQuadrant(dot)com>, pgsql-bugs(at)postgresql(dot)org
Subject: Re: [Fwd: DBD::Pg on HP-UX 11.31 64bit]
Date: 2010-12-16 17:24:01
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-bugs
"H.Merijn Brand" <h(dot)m(dot)brand(at)xs4all(dot)nl> writes:
> This is what the docs on HP-UX say:

>       int getsockopt (
>           int         s,
>           int         level,
>           int         optname,
>           void       *optval,
>           int        *optlen
>           );

>     UNIX 03 Only (X/Open Sockets)

>       int getsockopt (
>           int                    s,
>           int                    level,
>           int                    optname,
>           void       *__restrict optval,
>           socklen_t  *__restrict optlen
>           );

Mmm, fun.  And what is socklen_t defined as?

> the includes tell me
> src/include/pg_config.h:#define ACCEPT_TYPE_ARG3 size_t

Hmm, that suggests that configure was already seeing the socklen_t
variant ...

> To use X/Open sockets, which seems to me the better option for
> postgresql, I changed scr/ =>

> CC = cc
> CFLAGS = -O2 -g -Ae -z +Z +DD64 -D_XOPEN_SOURCE=600
> LIBS = -lssl -lcrypto -lxnet -lz -lm
> LDFLAGS = -Wl,+vnocompatwarnings +DD64  -L/usr/local/ia64/lib \
>     -L/usr/lib/hpux64 -L/usr/contrib/X11R6/lib/hpux64 -s \
>     -L/usr/local/lib -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib

Screwing around with CFLAGS in an already-generated
is definitely *not* the way to approach this; you need configure to
have seen the same switches, else it will have selected the wrong
ACCEPT_TYPE_ARG3.  Try it with
	configure CPPFLAGS="-D_XOPEN_SOURCE=600"
or something like that.

> To ensure optimal alignment, I also added
> #pragma pack 16
> to all header files

And please do not inject random other ways of breaking things at the
same time --- there's no good reason to believe that that will even
work, and it's surely complicating trying to solve the immediate

> # PostgreSQL (reported)       PostgreSQL 8.4.4 on x86_64-unknown-linux-gnu, compiled by GCC gcc (SUSE Linux) 4.4.1 [gcc-4_4-branch revision 150839], 64-bit

Where'd that come from?  Seems a bit weird that this is referring to
something other than your HPUX build.

> As, at this point, there is no control over the library that perl itself is linked with:

Hmm.  I wonder whether perl is built with libraries that expect the
"int" definition instead of the "socklen_t" definition, or vice versa
(whichever way is not what libpq expects).  Do you know exactly how HP
is managing to support both of those ABIs?

			regards, tom lane

In response to


pgsql-bugs by date

Next:From: Tom LaneDate: 2010-12-16 17:31:21
Subject: Re: [Fwd: DBD::Pg on HP-UX 11.31 64bit]
Previous:From: Kevin GrittnerDate: 2010-12-16 16:57:06
Subject: Re: Urgent inquiry

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