support/scripts/check-kernel-headers.sh: use a trap to remove the temporary file
The POSIX specification defines a 'trap <action> EXIT' mechanism that is useful to perform clean-up actions in shell scripts. A trap has two main advantages over hand-crafted clean-up mechanisms: - It runs even if the process is terminated by a SIGTERM. - It runs even if the script stops due to a pipeline failure (set -e). Now we can make the script to stop immediately if a compilation error occurs, instead of letting it try to run an unexisting program. This change may appear to be overkill but Buildroot is an open source project and each piece of code is a potential learning tool for other developments. We must strive to provide good examples. Signed-off-by: Carlos Santos <unixmania@gmail.com> Acked-by: Yann E. MORIN <yann.morin@orange.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
parent
6136765b23
commit
9e546440d3
|
@ -9,6 +9,15 @@ HDR_M="${HDR_VER%%.*}"
|
|||
HDR_V="${HDR_VER#*.}"
|
||||
HDR_m="${HDR_V%%.*}"
|
||||
|
||||
# Exit on any error, so we don't try to run an unexisting program if the
|
||||
# compilation fails.
|
||||
set -e
|
||||
|
||||
# Set the clean-up trap in advance to prevent a race condition in which we
|
||||
# create the file but get a SIGTERM before setting it. Notice that we don't
|
||||
# need to care about EXEC being empty, since 'rm -f ""' does nothing.
|
||||
trap 'rm -f "${EXEC}"' EXIT
|
||||
|
||||
EXEC="$(mktemp -p "${BUILDDIR}" -t .check-headers.XXXXXX)"
|
||||
|
||||
# We do not want to account for the patch-level, since headers are
|
||||
|
@ -37,6 +46,3 @@ int main(int argc __attribute__((unused)),
|
|||
_EOF_
|
||||
|
||||
"${EXEC}"
|
||||
ret=${?}
|
||||
rm -f "${EXEC}"
|
||||
exit ${ret}
|
||||
|
|
Loading…
Reference in a new issue