Message ID | dd207f2aa0a79b784df5d042f8a0169707c21902.1700211131.git.nicola.vetrini@bugseng.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | use the documentation for MISRA C:2012 Dir 4.1 | expand |
On Fri, 17 Nov 2023, 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> It looks like you also addressed all Julien's comments appropriately
On Tue, 28 Nov 2023, Stefano Stabellini wrote: > On Fri, 17 Nov 2023, 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> > > It looks like you also addressed all Julien's comments appropriately I meant to add my reviewed-by Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Hi, On 29/11/2023 04:16, Stefano Stabellini wrote: > On Fri, 17 Nov 2023, 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> > > It looks like you also addressed all Julien's comments appropriately They are indeed. So I have committed the series. Cheers,
diff --git a/automation/eclair_analysis/build.sh b/automation/eclair_analysis/build.sh index ec087dd822fa..122b93b80581 100755 --- a/automation/eclair_analysis/build.sh +++ b/automation/eclair_analysis/build.sh @@ -33,12 +33,35 @@ else PROCESSORS=6 fi +# Variables driving the build +CC=${CROSS_COMPILE}gcc-12 +CXX=${CROSS_COMPILE}g++-12 + +runtime_failures_docs() { + doc="C-runtime-failures.rst" + builddir="automation/eclair_analysis" + + cd "${builddir}" + printf "/*\n\n" >"${doc}.c" + sed -e 's|\*/|*//*|g' "../../docs/misra/${doc}" >>"${doc}.c" + + # At least a dummy decl is needed to comply with the C standard. + printf "\n\n*/\ntypedef int dummy_typedef;\n" >>"${doc}.c" + + # The C language standard applicable to Xen is C99 (with extensions), + # therefore even this dummy file needs to be compiled with -std=c99. + # Cannot redirect to /dev/null because it would be excluded from the analysis + "${CC}" -std=c99 -c "${doc}.c" -o "${doc}.o" + cd - +} + ( - cd xen + runtime_failures_docs make "-j${PROCESSORS}" "-l${PROCESSORS}.0" \ "CROSS_COMPILE=${CROSS_COMPILE}" \ - "CC=${CROSS_COMPILE}gcc-12" \ - "CXX=${CROSS_COMPILE}g++-12" \ - "XEN_TARGET_ARCH=${XEN_TARGET_ARCH}" + "CC=${CC}" \ + "CXX=${CXX}" \ + "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 )
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 v4: - Transform and build the file directly in the eclair-specific directory Changes in v5: - Small improvements --- automation/eclair_analysis/build.sh | 31 +++++++++++++++++++++++---- automation/eclair_analysis/prepare.sh | 7 +++--- 2 files changed, 31 insertions(+), 7 deletions(-)