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: