X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/61ec970df30325dbcd8c9d0f0e431dc793126656..91c707ef9229d7ba5e17b885416761feb2fdfc46:/src/scripts/os-type diff --git a/src/scripts/os-type b/src/scripts/os-type index d747ae908..1fcd37bc3 100755 --- a/src/scripts/os-type +++ b/src/scripts/os-type @@ -1,5 +1,7 @@ #! /bin/sh -# $Cambridge: exim/src/scripts/os-type,v 1.1 2004/10/06 15:07:40 ph10 Exp $ + +# Copyright (c) The Exim Maintainters 2022 +# SPDX-License-Identifier: GPL-2.0-or-later # 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 +23,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 +85,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 +128,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 +142,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