/bin/sh does not set OSTYPE, so this variable is inherited from the
shell from which pkg_libchk is invoked. From all standard shells in
the base system, only csh and tcsh do set this variable, so when
pkg_libchk is invoked from sh (that is not invoked from csh-like
shell), this variable will be empty. Moreover, bash sets OSTYPE to
freebsdX.Y, so grepping on output of 'readelf -e' wont work either.
'uname -s' provides much more reliable way to get the name of the
operating system and all *BSD ELF ABI types inside readelf correspond
to the 'uname -s':
{{{
case ELFOSABI_NETBSD: return "UNIX - NetBSD";
case ELFOSABI_FREEBSD: return "UNIX - FreeBSD";
case ELFOSABI_OPENBSD: return "UNIX - OpenBSD";
}}}
PR: ports/158967
Approved-by: Dominic Fandrey <kamikaze@bsdforen.de> (maintainer), erwin (mentor)
Feature-safe: yes