I don't think we need to concern ourselves with cross awk compatibility here.
Despite the misleading comment, /usr/bin/awk supports toupper. Index: makesyscalls.sh =================================================================== RCS file: /home/cvs/src/sys/kern/makesyscalls.sh,v retrieving revision 1.15 diff -u -p -r1.15 makesyscalls.sh --- makesyscalls.sh 9 Dec 2021 00:26:10 -0000 1.15 +++ makesyscalls.sh 1 May 2022 04:45:49 -0000 @@ -70,28 +70,6 @@ sysent="sysent.switch" trap "rm $sysdcl $sysprotos $sysent" 0 -# Awk program (must support nawk extensions) -# Use "awk" at Berkeley, "nawk" or "gawk" elsewhere. -awk=${AWK:-awk} - -# Does this awk have a "toupper" function? (i.e. is it GNU awk) -isgawk=`$awk 'BEGIN { print toupper("true"); exit; }' 2>/dev/null` - -# If this awk does not define "toupper" then define our own. -if [ "$isgawk" = TRUE ] ; then - # GNU awk provides it. - toupper= -else - # Provide our own toupper() - toupper=' -function toupper(str) { - _toupper_cmd = "echo "str" |tr a-z A-Z" - _toupper_cmd | getline _toupper_str; - close(_toupper_cmd); - return _toupper_str; -}' -fi - # before handing it off to awk, make a few adjustments: # (1) insert spaces around {, }, (, ), *, and commas. # (2) get rid of any and all dollar signs (so that rcs id use safe) @@ -111,8 +89,7 @@ s/\$//g 2,${ /^#/!s/\([{}()*,]\)/ \1 /g } -' < $2 | $awk " -$toupper +' < $2 | awk " BEGIN { # to allow nested #if/#else/#endif sets savedepth = 0