Re: [Fwd: DBD::Pg on HP-UX 11.31 64bit] - Mailing list pgsql-bugs
| From | Tom Lane |
|---|---|
| Subject | Re: [Fwd: DBD::Pg on HP-UX 11.31 64bit] |
| Date | |
| Msg-id | 23253.1292520241@sss.pgh.pa.us Whole thread Raw |
| In response to | [Fwd: DBD::Pg on HP-UX 11.31 64bit] (Simon Riggs <simon@2ndQuadrant.com>) |
| Responses |
Re: [Fwd: DBD::Pg on HP-UX 11.31 64bit]
Re: [Fwd: DBD::Pg on HP-UX 11.31 64bit] |
| List | pgsql-bugs |
"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?
> 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/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.
> 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.
> # 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.
> 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
pgsql-bugs by date: