On Wed, 24 Jul 2024, victorm.l...@amd.com wrote: > From: Victor Lira <victorm.l...@amd.com> > > Signed-off-by: Victor Lira <victorm.l...@amd.com> > Requested-by: Stefano Stabellini <sstabell...@kernel.org> > --- > Notes: > This is a utilty script for help with the MISRA process. > This script matches all linker symbol names in linker script files for > arm and x86. > Not included are symbol names starting with "." or symbol names enclosed > in quotes since the files dont't use any. The regular expression also does > not match for "&=" and similar compound assignments. > --- > Cc: Stefano Stabellini <sstabell...@kernel.org> > Cc: roberto.bagn...@bugseng.com > Cc: consult...@bugseng.com > Cc: simone.balla...@bugseng.com > --- > Changes v2: > - address style comments > - updated script to use .lds instead of .lds.S > - remove sample output from patch > --- > automation/eclair_analysis/linker-symbols.sh | 34 ++++++++++++++++++++ > 1 file changed, 34 insertions(+) > create mode 100755 automation/eclair_analysis/linker-symbols.sh > > diff --git a/automation/eclair_analysis/linker-symbols.sh > b/automation/eclair_analysis/linker-symbols.sh > new file mode 100755 > index 0000000000..35ec97eb8e > --- /dev/null > +++ b/automation/eclair_analysis/linker-symbols.sh > @@ -0,0 +1,34 @@
Hi Victor, A previous comment about the presence of /bin/bash meant to suggest to use instead something like: #!/usr/bin/env bash or if you don't use any bash-ism: #!/bin/sh The rest looks OK to me > +# Stop immediately if any executed command has exit status different from 0. > +set -e > + > +# Extract linker symbol names (except those starting with ".") from > assignments. > + > +script_name=$(basename "$0") > +script_dir="$( > + cd "$(dirname "$0")" > + echo "${PWD}" > +)" > +src_dir="${script_dir}/../.." > + > +usage() { > + echo "Usage: ${script_name} <arm|x86>" > +} > + > +if [ $# -ne 1 ]; then > + usage > + exit 1 > +fi > + > +if [ "$1" != "arm" ] && [ "$1" != "x86" ]; then > + usage > + exit 1 > +fi > + > +filepath="${src_dir}/xen/arch/${1}/xen.lds" > + > +if [ ! -f "$filepath" ]; then > + echo "Must be run after build." > + exit 2 > +fi > + > +sed -n "s/^\s*\([a-zA-Z_][a-zA-Z_0-9.\-]*\)\s*=.*;.*$/\1/p" $filepath > -- > 2.25.1 >