git: accfb4cc9346 - main - genoffset.sh: stop using a temporary file
Date: Thu, 16 Nov 2023 15:07:46 UTC
The branch main has been updated by jtl: URL: https://cgit.FreeBSD.org/src/commit/?id=accfb4cc9346b23f6d6383dfc98d2c97ae18ce0d commit accfb4cc9346b23f6d6383dfc98d2c97ae18ce0d Author: Jonathan T. Looney <jtl@FreeBSD.org> AuthorDate: 2023-11-16 15:02:32 +0000 Commit: Jonathan T. Looney <jtl@FreeBSD.org> CommitDate: 2023-11-16 15:02:32 +0000 genoffset.sh: stop using a temporary file Instead, use a here document for the input. This allows us to run the while loop in the main script so we can build the list of asserts in a shell variable. We then print out the list of asserts at the end of the loop. Reviewed by: imp Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D42407 --- sys/kern/genoffset.sh | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/sys/kern/genoffset.sh b/sys/kern/genoffset.sh index fda27998ca79..c974a7d52e8c 100644 --- a/sys/kern/genoffset.sh +++ b/sys/kern/genoffset.sh @@ -35,16 +35,13 @@ usage() work() ( - local last off x1 x2 x3 struct field type lastoff lasttype + local last off x1 x2 x3 struct field type lastoff lasttype asserts echo "#ifndef _OFFSET_INC_" echo "#define _OFFSET_INC_" echo "#if !defined(GENOFFSET) && (!defined(KLD_MODULE) || defined(KLD_TIED))" last= - temp=$(mktemp -d genoffset.XXXXXXXXXX) - trap "rm -rf ${temp}" EXIT - # Note: we need to print symbol values in decimal so the numeric sort works - ${NM:='nm'} ${NMFLAGS} -t d "$1" | grep __assym_offset__ | sed -e 's/__/ /g' | sort -k 4 -k 1 -n | + asserts= while read off x1 x2 struct field type x3; do off=$(echo "$off" | sed -E 's/^0+//') if [ "$last" != "$struct" ]; then @@ -60,12 +57,14 @@ work() printf "%b" "\t${type}\t${field};\n" lastoff="$off" lasttype="$type" - echo "_SA(${struct}, ${field}, ${off});" >> "$temp/asserts" - done + asserts="${asserts}_SA(${struct}, ${field}, ${off});\n" + done <<EOT +$(${NM:='nm'} ${NMFLAGS} -t d "$1" | grep __assym_offset__ | sed -e 's/__/ /g' | sort -k 4 -k 1 -n) +EOT echo "};" echo "#define _SA(s,f,o) _Static_assert(__builtin_offsetof(struct s ## _lite, f) == o, \\" printf '\t"struct "#s"_lite field "#f" not at offset "#o)\n' - cat "$temp/asserts" + echo -e "${asserts}\c" echo "#undef _SA" echo "#endif" echo "#endif"