All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nicola Vetrini <nicola.vetrini@bugseng.com>
To: Julien Grall <julien@xen.org>
Cc: xen-devel@lists.xenproject.org, sstabellini@kernel.org,
	michal.orzel@amd.com, xenia.ragiadakou@amd.com,
	ayan.kumar.halder@amd.com, consulting@bugseng.com,
	jbeulich@suse.com, andrew.cooper3@citrix.com,
	roger.pau@citrix.com, bertrand.marquis@arm.com,
	Simone Ballarin <simone.ballarin@bugseng.com>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: Re: [XEN PATCH v4 1/2] automation/eclair: make the docs for MISRA C:2012 Dir 4.1 visible to ECLAIR
Date: Wed, 15 Nov 2023 12:02:49 +0100	[thread overview]
Message-ID: <1689d4b47d708098c43601a58e867f1c@bugseng.com> (raw)
In-Reply-To: <f63fa9b5-a821-49d4-88f6-7d991ab6c644@xen.org>

On 2023-11-14 23:12, Julien Grall wrote:
> Hi,
> 
> On 14/11/2023 15:36, Nicola Vetrini wrote:
>> To be able to check for the existence of the necessary subsections in
>> the documentation for MISRA C:2012 Dir 4.1, ECLAIR needs to have a 
>> source
>> file that is built.
>> 
>> This file is generated from 'C-runtime-failures.rst' in docs/misra
>> and the configuration is updated accordingly.
>> 
>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
>> ---
>> Changes from RFC:
>> - Dropped unused/useless code
>> - Revised the sed command
>> - Revised the clean target
>> 
>> Changes in v2:
>> - Added explanative comment to the makefile
>> - printf instead of echo
>> 
>> Changes in v3:
>> - Terminate the generated file with a newline
>> - Build it with -std=c99, so that the documentation
>>    for D1.1 applies.
>> Changes in v5:
>> - Transform and build the file directly in the eclair-specific 
>> directory
>> ---
>>   automation/eclair_analysis/build.sh   | 21 +++++++++++++++++++--
>>   automation/eclair_analysis/prepare.sh |  7 ++++---
>>   2 files changed, 23 insertions(+), 5 deletions(-)
>> 
>> diff --git a/automation/eclair_analysis/build.sh 
>> b/automation/eclair_analysis/build.sh
>> index ec087dd822fa..f24292ed0643 100755
>> --- a/automation/eclair_analysis/build.sh
>> +++ b/automation/eclair_analysis/build.sh
>> @@ -33,12 +33,29 @@ else
>>     PROCESSORS=6
>>   fi
>>   +runtime_failures_docs() {
>> +  doc="C-runtime-failures.rst"
>> +  builddir="automation/eclair_analysis"
>> +
>> +  cp "docs/misra/${doc}" "${builddir}"
> 
> Is it necessary to copy the .rst? IOW, would it be sufficient to use...
> 
>> +  cd "${builddir}"
>> +  printf "/*\n\n" >"${doc}.tmp"
>> +  sed -e 's|\*/|*//*|g' "${doc}" >>"${doc}.tmp"
> 
> ... docs/misc/${doc} here?
> 

I didn't want to leave a stray file under docs/misra, but it's not 
essential.

>> +  printf "\n\n*/\n" >>"${doc}.tmp"
>> +  mv "${doc}.tmp" "${doc}.c"
> 
> NIT: I am not sure why you need to first create .tmp and then create.c.
> 

Wasn't this a pattern to defend against interruptions of the build, just 
as I did in v3?

+$(TARGETS:.o=.c): %.c: %.rst
+    printf "/*\n\n" > $@.tmp
+    sed -e 's|\*/|*//*|g' $< >> $@.tmp
+    printf "\n\n*/\n" >> $@.tmp
+    mv $@.tmp $@

>> +
>> +  # Cannot redirect to /dev/null because it would be excluded from 
>> the analysis
>> +  "${CROSS_COMPILE}gcc-12" -std=c99 -c "${doc}.c" -o "${doc}.o"
> 
> NIT: It would be helpful to specify why -std=c99 is used. Above, you 
> suggest this is to enable D1.1.
> 

Yeah, the comment in the changelog should be pasted here

> NIT: Can we define CC and use here and ...
> 
>> +  cd -
>> +}
>> +
>>   (
>> -  cd xen
>> +  runtime_failures_docs
>>       make "-j${PROCESSORS}" "-l${PROCESSORS}.0"    \
>>          "CROSS_COMPILE=${CROSS_COMPILE}"         \
>>          "CC=${CROSS_COMPILE}gcc-12"              \
> 
> ...? This would make easier to re-use the code.
> 

I don't expect this build script to be changed much to be honest, but if 
you think
this is beneficial then it's ok.

>>          "CXX=${CROSS_COMPILE}g++-12"             \
>> -       "XEN_TARGET_ARCH=${XEN_TARGET_ARCH}"
>> +       "XEN_TARGET_ARCH=${XEN_TARGET_ARCH}"     \
>> +       -C xen
>>   )
>> diff --git a/automation/eclair_analysis/prepare.sh 
>> b/automation/eclair_analysis/prepare.sh
>> index 0cac5eba00ae..fe9d16e48ecc 100755
>> --- a/automation/eclair_analysis/prepare.sh
>> +++ b/automation/eclair_analysis/prepare.sh
>> @@ -35,11 +35,12 @@ else
>>   fi
>>     (
>> -    cd xen
>> -    cp "${CONFIG_FILE}" .config
>> +    ./configure
>> +    cp "${CONFIG_FILE}" xen/.config
>>       make clean
>>       find . -type f -name "*.safparse" -print -delete
>> -    make -f ${script_dir}/Makefile.prepare prepare
>> +    cd xen
>> +    make -f "${script_dir}/Makefile.prepare" prepare
>>       # Translate the /* SAF-n-safe */ comments into ECLAIR CBTs
>>       scripts/xen-analysis.py --run-eclair --no-build --no-clean
>>   )
> 
> Cheers,

-- 
Nicola Vetrini, BSc
Software Engineer, BUGSENG srl (https://bugseng.com)


  reply	other threads:[~2023-11-15 11:03 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-14 15:36 [XEN PATCH v4 0/2] use the documentation for MISRA C:2012 Dir 4.1 Nicola Vetrini
2023-11-14 15:36 ` [XEN PATCH v4 1/2] automation/eclair: make the docs for MISRA C:2012 Dir 4.1 visible to ECLAIR Nicola Vetrini
2023-11-14 21:53   ` Stefano Stabellini
2023-11-14 22:12   ` Julien Grall
2023-11-15 11:02     ` Nicola Vetrini [this message]
2023-11-15 11:22       ` Julien Grall
2023-11-16  8:45         ` Nicola Vetrini
2023-11-16  9:02           ` Jan Beulich
2023-11-17  0:10             ` Stefano Stabellini
2023-11-17 19:21           ` Julien Grall
2023-11-18  2:19             ` Stefano Stabellini
2023-11-14 15:36 ` [XEN PATCH v4 2/2] docs/misra: add guidance on the format of Dir 4.1 docs for ECLAIR Nicola Vetrini
2023-11-14 21:53   ` Stefano Stabellini
2023-11-14 22:13   ` Julien Grall

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1689d4b47d708098c43601a58e867f1c@bugseng.com \
    --to=nicola.vetrini@bugseng.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=ayan.kumar.halder@amd.com \
    --cc=bertrand.marquis@arm.com \
    --cc=cardoe@cardoe.com \
    --cc=consulting@bugseng.com \
    --cc=jbeulich@suse.com \
    --cc=julien@xen.org \
    --cc=michal.orzel@amd.com \
    --cc=roger.pau@citrix.com \
    --cc=simone.ballarin@bugseng.com \
    --cc=sstabellini@kernel.org \
    --cc=xen-devel@lists.xenproject.org \
    --cc=xenia.ragiadakou@amd.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.