Revert #20301, apparently the _SOCKADDR_LEN #define is
Jarkko Hietaniemi [Tue, 29 Jul 2003 19:55:50 +0000 (19:55 +0000)]
important for IPv6 (Spider).  Since there is no way to
otherwise detect 3.X, use the hints.

p4raw-id: //depot/perl@20324

hints/dec_osf.sh
perl.h

index ea2646d..114aca1 100644 (file)
@@ -226,7 +226,7 @@ libswanted="`echo $libswanted | sed -e 's/ ndbm / /'`"
 lddlflags='-shared -expect_unresolved "*"'
 
 # Intentional leading tab.
-       myosvers="`/usr/sbin/sizer -v 2>/dev/null || head -1 /etc/motd`"
+       myosvers="`/usr/sbin/sizer -v 2>/dev/null || uname -r`"
 
 # Fancy compiler suites use optimising linker as well as compiler.
 # <spider@Orb.Nashua.NH.US>
@@ -255,6 +255,10 @@ esac
 # Yes, the above loses if gcc does not use the system linker.
 # If that happens, let me know about it. <jhi@iki.fi>
 
+# Because there is no other handy way to recognize 3.X.
+case "`uname -r`" in
+*3.*)  ccflags="$ccflags -DDEC_OSF1_3_X" ;;
+esac
 
 # If debugging or (old systems and doing shared)
 # then do not strip the lib, otherwise, strip.
diff --git a/perl.h b/perl.h
index 34f6dd0..7f912e1 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -672,6 +672,14 @@ int usleep(unsigned int);
 #  define WIN32SCK_IS_STDSCK           /* don't pull in custom wsock layer */
 #endif
 
+/* In Tru64 use the 4.4BSD struct msghdr, not the 4.3 one.
+ * This is important for using IPv6. 
+ * For OSF/1 3.2, however, defining _SOCKADDR_LEN would be
+ * a bad idea since it breaks send() and recv(). */
+#if defined(__osf__) && defined(__alpha) && !defined(_SOCKADDR_LEN) && !defined(DEC_OSF1_3_X)
+#   define _SOCKADDR_LEN
+#endif
+
 #if defined(HAS_SOCKET) && !defined(VMS) && !defined(WIN32) /* VMS/WIN32 handle sockets via vmsish.h/win32.h */
 # include <sys/socket.h>
 # if defined(USE_SOCKS) && defined(I_SOCKS)