summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hints/dec_osf.sh6
-rw-r--r--perl.h8
2 files changed, 13 insertions, 1 deletions
diff --git a/hints/dec_osf.sh b/hints/dec_osf.sh
index ea2646d823..114aca1df2 100644
--- a/hints/dec_osf.sh
+++ b/hints/dec_osf.sh
@@ -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 34f6dd06e9..7f912e1f6d 100644
--- 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)