AIX FAQ Updates - Mailing list pgsql-patches

From Chris Browne
Subject AIX FAQ Updates
Date
Msg-id 607jfsjcal.fsf_-_@dba2.int.libertyrms.com
Whole thread Raw
Responses Re: AIX FAQ Updates
List pgsql-patches
I believe this change will apply equally to 7.4, 8.0, and CVS HEAD.

Index: FAQ_AIX
===================================================================
RCS file: /projects/cvsroot/pgsql/doc/FAQ_AIX,v
retrieving revision 1.11
diff -c -u -r1.11 FAQ_AIX
--- FAQ_AIX    12 Nov 2002 20:02:32 -0000    1.11
+++ FAQ_AIX    15 Jul 2005 15:51:10 -0000
@@ -18,3 +18,79 @@
 You need libm.a that is in the fileset bos.adt.libm.  (Try the
 following command.)
 $ lslpp -l bos.adt.libm
+
+
+---
+From: Christopher Browne <cbbrowne@ca.afilias.info>
+Date: 2005-07-15
+
+On AIX 5.3, there have been some problems getting PostgreSQL to
+compile and run using GCC.
+
+1.  You will want to use a version of GCC subsequent to 3.3.2,
+    particularly if you use a prepackaged version.  We had good
+    success with 4.0.1.
+
+    Problems with earlier versions seem to have more to do with the
+    way IBM packaged GCC than with actual issues with GCC, so that if
+    you compile GCC yourself, you might well have success with an
+    earlier version of GCC.
+
+2.  AIX 5.3 has a problem where sockadr_storage is not defined to be
+    large enough.  In version 5.3, IBM increased the size of
+    sockaddr_un, the address structure for UNIX Domain Sockets, but
+    did not correspondingly increase the size of sockadr_storage.
+
+    The result of this is that attempts to use UDS with PostgreSQL
+    lead to libpq overflowing the data structure.  TCP/IP connections
+    work OK, but not UDS, which prevents the regression tests from
+    working.
+
+   The nonconformance may be readily demonstrated by compiling and
+   running the following C program which calculates and compares the
+   sizes of the various structures:
+
+test_size.c
+------------
+
+---------- snip here - test_size.c ----------------------------
+#include <stdio.h>
+#include <sys/un.h>
+#include <sys/socket.h>
+int main (int argc, char *argv[]) {
+        struct sockaddr_storage a;
+        struct sockaddr_un b;
+        printf("Size of sockadr_storage: %d\n", sizeof(a));
+        printf ("Size of sockaddr_un:%d\n", sizeof(b));
+
+        if (sizeof(a) >= sizeof(b))
+                printf ("Conformant to RFC 3493\n");
+        else
+                printf ("Non-conformant to RFC 3493\n");
+}
+---------- snip here - test_size.c ----------------------------
+
+
+The problem was reported to IBM, and is recorded as bug report
+PMR29657.
+
+An immediate resolution is to alter _SS_MAXSIZE to = 1025 in
+/usr/include/sys/socket.h, which will resolve the immediate problem.
+
+It appears that the "final" resolution will be to alter _SS_MAXSIZE to
+1280, making the size nicely align with page boundaries.
+
+IBM will be providing a fix in the next maintenance release (expected
+in October 2005) with an updated socket.h.
+---
+From: Christopher Browne <cbbrowne@ca.afilias.info>
+Date: 2005-07-15
+
+Some of the AIX tools may be "a little different" from what you may be
+accustomed to on other platforms.  If you are looking for a version of
+ldd, useful for determining what object code depends on what
+libraries, the following URLs may help you...
+
+http://www.faqs.org/faqs/aix-faq/part4/section-22.html
+
+http://www.han.de/~jum/aix/ldd.c
\ No newline at end of file

--
(format nil "~S@~S" "cbbrowne" "acm.org")
http://www.ntlug.org/~cbbrowne/sap.html
Rules of the Evil Overlord #78.  "I will not tell my Legions of Terror
"And he must  be taken alive!" The command will be:  ``And try to take
him alive if it is reasonably practical.''"
<http://www.eviloverlord.com/>

pgsql-patches by date:

Previous
From: Andrew Dunstan
Date:
Subject: fixing REL7_3_STABLE build issues
Next
From: Bruce Momjian
Date:
Subject: Re: thousands comma numeric formatting in psql