[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [RFC PATCH v2] automation: add linker symbol name script



On Wed, 24 Jul 2024, victorm.lira@xxxxxxx wrote:
> From: Victor Lira <victorm.lira@xxxxxxx>
> 
> Signed-off-by: Victor Lira <victorm.lira@xxxxxxx>
> Requested-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
> ---
> 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 <sstabellini@xxxxxxxxxx>
> Cc: roberto.bagnara@xxxxxxxxxxx
> Cc: consulting@xxxxxxxxxxx
> Cc: simone.ballarin@xxxxxxxxxxx
> ---
> 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
> 



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.