Re: [Fwd: DBD::Pg on HP-UX 11.31 64bit] - Mailing list pgsql-bugs

From H.Merijn Brand
Subject Re: [Fwd: DBD::Pg on HP-UX 11.31 64bit]
Date
Msg-id 20101216183902.5aaa8d35@pc09.procura.nl
Whole thread Raw
In response to Re: [Fwd: DBD::Pg on HP-UX 11.31 64bit]  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs
On Thu, 16 Dec 2010 12:24:01 -0500, Tom Lane <tgl@sss.pgh.pa.us> wrote:

> "H.Merijn Brand" <h.m.brand@xs4all.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?

sys/types.h
473:typedef size_t              socklen_t;

> > 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 ...

That was my conclusion too

> > To use X/Open sockets, which seems to me the better option for
> > postgresql, I changed scr/Makefile.global =>
>
> > 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 Makefile.global
> 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.

I know, but I first wanted to nail down the real cause of failure

> > 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
> problem.

I did this because of the truckload of warnings I got. I'll do a fresh
checkout on my next attempt

> > # PostgreSQL (reported)       PostgreSQL 8.4.4 on x86_64-unknown-linux-gnu, compiled by GCC gcc (SUSE Linux) 4.4.1
[gcc-4_4-branchrevision 150839], 64-bit 
>
> Where'd that come from?  Seems a bit weird that this is referring to
> something other than your HPUX build.

$PGHOST is set to our postgres server

One of the reasons is that *that* is what I eventually have to get
working: 64bit perl on HP-UX 11.31 talking through DBD::Pg to a remote
postgres server.

> > 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?

It is, as getsockopt () is in libc. All executables - of course - are
linked to libc, so unless they were *also* linked to libxnet, the libc
variant will be chosen.

I might find some time to rebuild perl from scratch with the -D option
and the addition of libxnet and see it that causes a different result

--
H.Merijn Brand  http://tux.nl      Perl Monger  http://amsterdam.pm.org/
using 5.00307 through 5.12 and porting perl5.13.x on HP-UX 10.20, 11.00,
11.11, 11.23 and 11.31, OpenSuSE 10.1, 11.0 .. 11.3 and AIX 5.2 and 5.3.
http://mirrors.develooper.com/hpux/           http://www.test-smoke.org/
http://qa.perl.org      http://www.goldmark.org/jeff/stupid-disclaimers/

pgsql-bugs by date:

Previous
From: "H.Merijn Brand"
Date:
Subject: Re: [Fwd: DBD::Pg on HP-UX 11.31 64bit]
Next
From: "H.Merijn Brand"
Date:
Subject: Re: [Fwd: DBD::Pg on HP-UX 11.31 64bit]