Re: HP-UX 11.31 Itanium2 64bit again - Mailing list pgsql-bugs

From H.Merijn Brand
Subject Re: HP-UX 11.31 Itanium2 64bit again
Date
Msg-id 20140311170133.0086c6e9@pc09.procura.nl
Whole thread Raw
In response to Re: HP-UX 11.31 Itanium2 64bit again  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs
I do not know what is common on this mailing list: reply-all or only to
the list. Sorry if I break with common practice when I now do a
reply-all

On Tue, 11 Mar 2014 11:38:40 -0400, Tom Lane <tgl@sss.pgh.pa.us> wrote:

Hi Tom, thanks for replying, you are the same that tried to get me
forward last time.

> "H.Merijn Brand" <h.m.brand@procura.nl> writes:
> > After the installation, DBD::Pg is able to link against libpq.so.5, but
> > just as in 2010/2011, it is not able to make any connection due to some
> > socket incompatabilities:
>
> > $ perl -MDBI -wE'DBI->connect ("dbi:Pg:")'
> > DBI connect('','',...) failed: could not get socket error status: Invalid argument at -e line 1.
>
> > The docs state that  HP-UX is one of the platforms postgresql is tested
> > on, but is it ever tested beyond the product itself? Is there anyone to
> > guide me in making this work?
>
> PG is tested on approximately that configuration, or was till recently:
> http://buildfarm.postgresql.org/cgi-bin/show_history.pl?nm=anole&br=HEAD
> (Doesn't look like buildfarm member anole has run on HEAD in a couple
> of months --- EDB folk, can you unwedge that?)  We don't test Perl
> compatibility however.
>
> Assuming that that error is originating in PG and not somewhere in DBI
> or Perl, it must be coming from this bit in fe-connect.c:
>
>                 if (getsockopt(conn->sock, SOL_SOCKET, SO_ERROR,
>                                (char *) &optval, &optlen) == -1)
>                 {
>                     appendPQExpBuffer(&conn->errorMessage,
>                     libpq_gettext("could not get socket error status: %s\n"),
>                             SOCK_STRERROR(SOCK_ERRNO, sebuf, sizeof(sebuf)));
>                     goto error_return;
>                 }
>
> which makes me wonder if you're hitting some form of the problem described
> here: http://curl.haxx.se/mail/lib-2009-04/0287.html
>
> We normally avoid that problem by defining _XOPEN_SOURCE_EXTENDED
> (see src/template/hpux, though you should check your build log to
> make sure that symbol actually got passed to cc).  I wonder though
> if the Perl environment is somehow causing the other getsockopt
> prototype to be called.  Are you *sure* it's a 64-bit Perl build?

Yes:

$ file `which perl`
/pro/bin/perl:  ELF-64 executable object file - IA64

> Was Perl itself built with _XOPEN_SOURCE_EXTENDED?

No:

$ perl -V:.* | grep Ae
ccflags=' -Ae -DPERL_DONT_CREATE_GVSV +Z -z -D_HPUX_SOURCE -Wl,+vnocompatwarnings +DD64 -I/pro/local/include
-D_LARGEFILE_SOURCE-D_FILE_OFFSET_BITS=64 '; 
cppflags='-Aa -D__STDC_EXT__ -DPERL_DONT_CREATE_GVSV +Z -z -D_HPUX_SOURCE -Ae -DPERL_DONT_CREATE_GVSV +Z -z
-D_HPUX_SOURCE-Wl,+vnocompatwarnings +DD64 -I/pro/local/include'; 
ccflags_nolargefiles=' -Ae -DPERL_DONT_CREATE_GVSV +Z -z -D_HPUX_SOURCE -Wl,+vnocompatwarnings +DD64
-I/pro/local/include '; 

> > I am now stuck to postgresql-8.4.5 which is the last release I was able
> > to build to a state that worked with perl.
>
> AFAIK our code in this area has been about the same since well before 8.4,
> so maybe what you're hitting is something else.  But that's the only lead
> I have on the basis of the offered evidence.
>
> BTW, googling also turned up your old message
> http://www.postgresql.org/message-id/20101216174803.20b2b6db@pc09.procura.nl
> in which you claim to have changed the platform #define's around.  That
> may not have been such a great idea.  We expect getsockopt to use the
> same last argument type as accept() does, and if I've got all the details
> straight, you need _XOPEN_SOURCE_EXTENDED to make that true on HPUX.

This time, postgres built out-of-the-box for both HP C-ANSI-C and
GNU-gcc, so I did not have to change any defines! :)

And I also have those mails stored and reread them, but the only thing
alike is the socket fail. I did not get any of the build failures

>             regards, tom lane


--
H.Merijn Brand    merijn@procura.nl   (072) 567 13 51
PROCURA B.V.    http://www.procura.nl    KvK 37140650
Ban de e-mail disclaimers:  http://tinyurl.com/kmne65

pgsql-bugs by date:

Previous
From: yzhang@trinityusa.com
Date:
Subject: BUG #9531: Failed to install
Next
From: "H.Merijn Brand"
Date:
Subject: Re: HP-UX 11.31 Itanium2 64bit again