hostlist for router fallback_hosts must be mutable
[exim.git] / src / scripts / os-type
index d747ae90843f271fd86fefd1f5658876bb41fa59..a188c4a560dccc3cd44383a39d8a1c2e7c1d7301 100755 (executable)
@@ -1,5 +1,4 @@
 #! /bin/sh
-# $Cambridge: exim/src/scripts/os-type,v 1.1 2004/10/06 15:07:40 ph10 Exp $
 
 # Shell script to determine the operating system type. Some of the heuristics
 # herein have accumulated over the years and may not strictly be needed now,
@@ -21,6 +20,11 @@ case "$EXIM_OSTYPE" in ?*) os="$EXIM_OSTYPE";; esac
 
 case "$os" in '') os=`uname -s`;; esac
 
+# Identify Glibc systems under different names.
+
+case "$os" in GNU) os=GNU;; esac
+case "$os" in GNU/*|Linux) os=Linux;; esac
+
 # It is believed that all systems respond to uname -s, but just in case
 # there is one that doesn't, use the shell's $OSTYPE variable. It is known
 # to be unhelpful for some systems (under IRIX is it "irix" and under BSDI
@@ -78,6 +82,7 @@ linux)      os=Linux;;
 linux-*)    os=Linux;;
 Linux-*)    os=Linux;;
 netbsd*)    os=NetBSD;;
+NetBSD*)    os=NetBSD;;
 openbsd*)   os=OpenBSD;;
 osf1)       os=OSF1;;
 qnx*)       os=QNX;;
@@ -120,22 +125,11 @@ SunOS5) case `uname -m` in
         esac
         ;;
 
-# In the case of Linux we need to distinguish which libc is used.
-# This is more cautious than it needs to be. In practice libc5 will always
-# be a symlink, and libc6 will always be a linker control file, but it's
-# easy enough to do a better check, and check the symlink destination or the
-# control file contents and make sure.
-
-Linux)  if [ -L /usr/lib/libc.so ]; then
-            if [ x"$(file /usr/lib/libc.so | grep "libc.so.5")"x != xx ]; then
-                    os=Linux-libc5
-            fi
-        else
-            if grep -q libc.so.5 /usr/lib/libc.so; then
-                    os=Linux-libc5
-            fi
-        fi
-        ;;
+# In the case of Linux we used to distinguish which libc was used so that
+# the old libc5 was supported as well as the current glibc. This support
+# was giving some people problems, so it was removed in June 2005, under
+# the assumption that nobody would be using libc5 any more (it is over seven
+# years old).
 
 # In the case of NetBSD we need to distinguish between a.out, ELF
 # and COFF binary formats.  However, a.out and COFF are the same
@@ -145,9 +139,9 @@ Linux)  if [ -L /usr/lib/libc.so ]; then
 # ELF soon.
 
 NetBSD) if echo __ELF__ | ${CC-cc} -E - | grep -q __ELF__ ; then
-           # Non-ELF system
-           os="NetBSD-a.out"
-       fi
+        # Non-ELF system
+        os="NetBSD-a.out"
+        fi
         ;;
 
 esac