Re: HP-UX PA-RISC/Itanium 64-bit Patch and HP-UX 11.23 Patch - Mailing list pgsql-patches

From Bruce Momjian
Subject Re: HP-UX PA-RISC/Itanium 64-bit Patch and HP-UX 11.23 Patch
Date
Msg-id 200409032035.i83KZvB16795@candle.pha.pa.us
Whole thread Raw
In response to Re: HP-UX PA-RISC/Itanium 64-bit Patch and HP-UX 11.23 Patch  (Shinji Teragaito <shinji@kobe.hp.com>)
Responses Re: HP-UX PA-RISC/Itanium 64-bit Patch and HP-UX 11.23 Patch
List pgsql-patches
This has been applied and will be in beta3.

---------------------------------------------------------------------------

Shinji Teragaito wrote:
> >> On Tue, 24 Aug 2004 00:39:55 -0400, Tom Lane <tgl@sss.pgh.pa.us> said:
>
> > Shinji Teragaito <shinji@kobe.hp.com> writes:
> >> I made a patch to let PostgreSQL work in the LP64 data model on
> >> HP-UX PA-RISC and HP-UX Itanium platform.
>
> > The s_lock change looks good ... but ...
>
> > This patch seems likely to break many other platforms.  You do not
> > seriously expect us to apply that change to float8.out, do you?
>
>   No.
>
> > I'd also like to know the rationale for the Makefile.shlib changes
> > (which did not seem to be needed the last time I tested on HPUX 11)
> > and the -lxnet addition to Makefile.hpux (ditto).
>
>   * Makefile.shlib changes are required to link libgcc.a 64-bit
>     version correctly on HP-UX 11.23 (Itanium). Without specifying
>     -mlp64 in LDFLAGS, you will get libgcc.a 32-bit version. Then
>     linking libpq.so.3 with ld, you will see the following error:
>
>         /usr/ccs/bin/ld +h libpq.so.3 -b +b /usr/local/pgsql/lib
>         fe-auth.o ..(snip).. `gcc -print-libgcc-file-name` -o libpq.so.3
>
>         ld: Mismatched Data ABI. Expected EF_IA_64_ABI64 but found None in file
>         /usr/local/lib/gcc/ia64-hp-hpux11.23/3.4.1/libgcc.a[__divdi3.oS]
>
>     To link 64-bit object files with libgcc.a, libgcc.a must be
>     64-bit.
>
>     On the other hand, the changes to SHLIB_LINK is not required for
>     PA-RISC HP-UX. Becase the gcc binaries are seperated for 32-bit
>     and 64-bit uses respectively. According to the data model, ILP32
>     or LP64, you will select the appropriate gcc binary. Then `$(CC)
>     -print-libgcc-file-name` results to be the correct libgcc.a.
>
>   * When you specify _XOPEN_SOURCE_EXTENDED in CFLAGS, X/Open
>     Networking Interfaces doesn't work in LP64 data model without
>     linking with libxnet. The third parameter type in sockets and IP
>     resolution interfaces such as bind() and getpeername() is defined
>     as socklen_t. socklen_t is typedefed as size_t, which is typedefed
>     as unsigned long. In LP64 data model, size_t results to be
>     64-bit. But inside the HP-UX X/Open Networking Interfaces
>     implementation, the third parameter is expected as 32-bit
>     length. To work around this problem in LP64 data model especially,
>     the -lxnet addition to Makefile.hpux is required.
>
>     Refer to man 7 xopen_networking.
>
> Cheers,
>
> Shinji Teragaito
> Hewlett-Packard Japan, Ltd.
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
>

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

pgsql-patches by date:

Previous
From: Alvaro Herrera
Date:
Subject: Re: pgxs default installation + various fixes
Next
From: Fabien COELHO
Date:
Subject: Re: pgxs default installation + various fixes