Hi,

I've just tried compiling GT 5.0.0 on AIX - and succeeded.

But, there were two minor fixes I had to do to the source code.  Two C
source files are using the symbolic names AF_LOCAL and PF_LOCAL, which
are OK on Linux as aliases to AF_UNIX / PF_UNIX, but AIX only defines
the latter ones.

Could someone please apply these changes to the main source tree?


---
source-trees/xio/drivers/popen/source/globus_xio_popen_driver.c.orig
2010-01-07 12:46:52.000000000 +1300
+++ source-trees/xio/drivers/popen/source/globus_xio_popen_driver.c
2010-03-18 16:18:42.888951980 +1300
@@ -557,5 +557,5 @@
 #   if defined(USE_SOCKET_PAIR)
     {
-        rc = socketpair(AF_LOCAL, SOCK_STREAM, 0, s_fds);
+        rc = socketpair(AF_UNIX, SOCK_STREAM, 0, s_fds);
         if(rc != 0)
         {
--- source-trees/gram/jobmanager/source/startup_socket.c.orig   2009-12-17
12:25:48.000000000 +1300
+++ source-trees/gram/jobmanager/source/startup_socket.c        2010-03-18
22:13:17.305365695 +1300
@@ -311,8 +311,8 @@
             manager->socket_path);
     memset(&addr, 0, sizeof(struct sockaddr_un));
-    addr.sun_family = PF_LOCAL;
+    addr.sun_family = PF_UNIX;
     strncpy(addr.sun_path, manager->socket_path, sizeof(addr.sun_path)-1);

-    sock = socket(PF_LOCAL, SOCK_DGRAM, 0);
+    sock = socket(PF_UNIX, SOCK_DGRAM, 0);
     if (sock < 0)
     {
@@ -668,7 +668,7 @@
     /* create socket */
     memset(&addr, 0, sizeof(struct sockaddr_un));
-    addr.sun_family = PF_LOCAL;
+    addr.sun_family = PF_UNIX;
     strncpy(addr.sun_path, sockpath, sizeof(addr.sun_path)-1);
-    sock = socket(PF_LOCAL, SOCK_DGRAM, 0);
+    sock = socket(PF_UNIX, SOCK_DGRAM, 0);
     if (sock < 0)
     {
@@ -753,5 +753,5 @@
     }
     /* create acksocks */
-    rc = socketpair(PF_LOCAL, SOCK_STREAM, 0, acksock);
+    rc = socketpair(PF_UNIX, SOCK_STREAM, 0, acksock);
     if (rc < 0)
     {

I'm also attaching the patches for the case they got corrupted in the
email body.

Otherwise, the install was straightforward.  I found useful the notes on
OpenSSL at
http://dev.globus.org/wiki/C_Security:_Vendor_OpenSSL#Known_Issues_and_Workarounds
- I had to set my environment accordingly to build the parts of Globus
linking against OpenSSL.

I also found one glitch with running binaries linked against openssl: I
had to manually add the openssl library directory, /opt/freeware/lib,
into my LIBPATH variable: otherwise, binaries like myproxy-logon were
failing with:

> $ myproxy-logon 
> exec(): 0509-036 Cannot load program myproxy-logon because of the following 
> errors:
>         0509-150   Dependent module libcrypto.a(libcrypto.so.0.9.7) could not 
> be loaded.
>         0509-022 Cannot load module libcrypto.a(libcrypto.so.0.9.7).
>         0509-026 System error: A file or directory in the path name does not 
> exist.

I don't know if it's a change in the linking process that does not store
the recommended path in shared library dependencies anymore.  This works
all fine with globus 4.0.6 (pre-built AIX binary) without having to add
/opt/freeware/lib to LIBPATH.

If anyone's interested, the notes from my install are at
http://technical.bestgrid.org/index.php/Installing_Globus_5.0.0_on_AIX

Apart from these minor glitches - Good job!  I'm impressed the build on
AIX was that easy :-)

Cheers,
Vladimir


Cheers,
Vlad



-- 
Vladimir Mencl, Ph.D.
E-Research Services and Systems Consultant
BlueFern Supercomputing Services
University of Canterbury
Private Bag 4800
Christchurch 8140
New Zealand

http://www.bluefern.canterbury.ac.nz
mailto:[email protected]
Phone: +64 3 364 3012
Mobile: +64 21 997 352
Fax: +64 3 364 2332

--- source-trees/xio/drivers/popen/source/globus_xio_popen_driver.c.orig	2010-01-07 12:46:52.000000000 +1300
+++ source-trees/xio/drivers/popen/source/globus_xio_popen_driver.c	2010-03-18 16:18:42.888951980 +1300
@@ -557,5 +557,5 @@
 #   if defined(USE_SOCKET_PAIR)
     {
-        rc = socketpair(AF_LOCAL, SOCK_STREAM, 0, s_fds);
+        rc = socketpair(AF_UNIX, SOCK_STREAM, 0, s_fds);
         if(rc != 0)
         {
--- source-trees/gram/jobmanager/source/startup_socket.c.orig	2009-12-17 12:25:48.000000000 +1300
+++ source-trees/gram/jobmanager/source/startup_socket.c	2010-03-18 22:13:17.305365695 +1300
@@ -311,8 +311,8 @@
             manager->socket_path);
     memset(&addr, 0, sizeof(struct sockaddr_un));
-    addr.sun_family = PF_LOCAL;
+    addr.sun_family = PF_UNIX;
     strncpy(addr.sun_path, manager->socket_path, sizeof(addr.sun_path)-1);
 
-    sock = socket(PF_LOCAL, SOCK_DGRAM, 0);
+    sock = socket(PF_UNIX, SOCK_DGRAM, 0);
     if (sock < 0)
     {
@@ -668,7 +668,7 @@
     /* create socket */
     memset(&addr, 0, sizeof(struct sockaddr_un));
-    addr.sun_family = PF_LOCAL;
+    addr.sun_family = PF_UNIX;
     strncpy(addr.sun_path, sockpath, sizeof(addr.sun_path)-1);
-    sock = socket(PF_LOCAL, SOCK_DGRAM, 0);
+    sock = socket(PF_UNIX, SOCK_DGRAM, 0);
     if (sock < 0)
     {
@@ -753,5 +753,5 @@
     }
     /* create acksocks */
-    rc = socketpair(PF_LOCAL, SOCK_STREAM, 0, acksock);
+    rc = socketpair(PF_UNIX, SOCK_STREAM, 0, acksock);
     if (rc < 0)
     {

Reply via email to