Only in openmpi-1.3.2: htons.patch diff -crB openmpi-1.3.2/ompi/mca/btl/tcp/btl_tcp_component.c openmpi-1.3.2.patched/ompi/mca/btl/tcp/btl_tcp_component.c *** openmpi-1.3.2/ompi/mca/btl/tcp/btl_tcp_component.c 2008-12-02 19:50:43.000000000 +0100 --- openmpi-1.3.2.patched/ompi/mca/btl/tcp/btl_tcp_component.c 2009-07-06 10:44:38.000000000 +0200 *************** *** 584,592 **** for( index = 0; index < range; index++ ) { #if OPAL_WANT_IPV6 ! ((struct sockaddr_in6*) &inaddr)->sin6_port = port + index; #else ! ((struct sockaddr_in*) &inaddr)->sin_port = port + index; #endif /* OPAL_WANT_IPV6 */ if(bind(sd, (struct sockaddr*)&inaddr, addrlen) < 0) { if( (EADDRINUSE == opal_socket_errno) || (EADDRNOTAVAIL == opal_socket_errno) ) { --- 584,592 ---- for( index = 0; index < range; index++ ) { #if OPAL_WANT_IPV6 ! ((struct sockaddr_in6*) &inaddr)->sin6_port = htons(port + index); #else ! ((struct sockaddr_in*) &inaddr)->sin_port = htons(port + index); #endif /* OPAL_WANT_IPV6 */ if(bind(sd, (struct sockaddr*)&inaddr, addrlen) < 0) { if( (EADDRINUSE == opal_socket_errno) || (EADDRNOTAVAIL == opal_socket_errno) ) { diff -crB openmpi-1.3.2/orte/mca/oob/tcp/oob_tcp.c openmpi-1.3.2.patched/orte/mca/oob/tcp/oob_tcp.c *** openmpi-1.3.2/orte/mca/oob/tcp/oob_tcp.c 2008-11-04 21:56:45.000000000 +0100 --- openmpi-1.3.2.patched/orte/mca/oob/tcp/oob_tcp.c 2009-07-06 10:42:53.000000000 +0200 *************** *** 603,611 **** for (index = 0; index < range; index++ ) { if (AF_INET == af_family) { ! ((struct sockaddr_in*) &inaddr)->sin_port = port + index; } else if (AF_INET6 == af_family) { ! ((struct sockaddr_in6*) &inaddr)->sin6_port = port + index; } else { return ORTE_ERROR; } --- 603,611 ---- for (index = 0; index < range; index++ ) { if (AF_INET == af_family) { ! ((struct sockaddr_in*) &inaddr)->sin_port = htons(port + index); } else if (AF_INET6 == af_family) { ! ((struct sockaddr_in6*) &inaddr)->sin6_port = htons(port + index); } else { return ORTE_ERROR; }