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

From: "H(dot)Merijn Brand" <h(dot)m(dot)brand(at)xs4all(dot)nl>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
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:39:02
Message-ID: 20101216183902.5aaa8d35@pc09.procura.nl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Thu, 16 Dec 2010 12:24:01 -0500, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:

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

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

$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/

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message H.Merijn Brand 2010-12-16 17:42:57 Re: [Fwd: DBD::Pg on HP-UX 11.31 64bit]
Previous Message Tom Lane 2010-12-16 17:31:21 Re: [Fwd: DBD::Pg on HP-UX 11.31 64bit]