svn commit: r338095 - head/lib/libsysdecode

Alex Richardson arichardson at FreeBSD.org
Mon Aug 20 10:39:39 UTC 2018


Author: arichardson
Date: Mon Aug 20 10:39:37 2018
New Revision: 338095
URL: https://svnweb.freebsd.org/changeset/base/338095

Log:
  Make mkioctls script work on Linux and MacOS
  
  Using find -s  will not work with the Linux or MacOS find command. We pipe
  to sort instead since the only real requirement here is that the order
  stays the same. While I am touching this file I also fixed a `==` construct
  which is not supported by POSIX sh but appears to work on FreeBSD.
  
  Reviewed By:	imp
  Approved By:	jhb (mentor)
  Differential Revision: https://reviews.freebsd.org/D14246

Modified:
  head/lib/libsysdecode/mkioctls

Modified: head/lib/libsysdecode/mkioctls
==============================================================================
--- head/lib/libsysdecode/mkioctls	Mon Aug 20 09:29:21 2018	(r338094)
+++ head/lib/libsysdecode/mkioctls	Mon Aug 20 10:39:37 2018	(r338095)
@@ -17,18 +17,29 @@ LC_ALL=C; export LC_ALL
 # XXX should we use an ANSI cpp?
 ioctl_includes=$(
 	cd $includedir
+	set -e
+	# if /bin/sh is bash this will avoid further errors due to missing commands
+	if set -o | grep -q pipefail; then
+		set -o pipefail
+	fi
 
 	filter='tee'
-	if [ "${MK_PF}" == "no" ]; then
+	if [ "${MK_PF}" = "no" ]; then
 		filter='egrep -v (net/pfvar|net/if_pfsync)\.h'
 	fi
-
-	find -H -s * -name '*.h' | \
+	# find -s would avoid the need to invoke sort but it is non-portable
+	find -L ./* -type f -name '*.h' | \
+		LC_ALL=C sort | \
 		$filter | \
 		xargs egrep -l \
 '^#[ 	]*define[ 	]+[A-Za-z_][A-Za-z0-9_]*[ 	]+_IO[^a-z0-9_]' |
 		awk '{printf("#include <%s>\\n", $1)}'
 )
+
+if [ -z "$ioctl_includes" ]; then
+	echo "Failed to build list of ioctl headers"
+	exit 1
+fi
 
 awk -v x="$ioctl_includes" 'BEGIN {print x}' |
 	$CPP -nostdinc -I$includedir -dM -DCOMPAT_43TTY - |


More information about the svn-src-all mailing list