|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen master] xen/tools: remove usages of `stat -c` in check-endbr.sh
commit 1348cb4f046af922c1f23d6a0124645d4d765d10
Author: Roger Pau Monne <roger.pau@xxxxxxxxxx>
AuthorDate: Wed Feb 11 09:02:16 2026 +0100
Commit: Roger Pau Monne <roger.pau@xxxxxxxxxx>
CommitDate: Thu Feb 12 19:22:11 2026 +0100
xen/tools: remove usages of `stat -c` in check-endbr.sh
The `-c` option to stat is not POSIX compatible, and hence prevents the
check-endbr.sh script from running reliably.
The first instance of `stat -c` can be removed by fetching the section size
from the output of objdump itself, which the script already parses to get
the VMA values.
The other two instances can be replaced by counting the lines in the
respective files. Those files contain list of addresses, so the size in
bytes is not strictly needed, we can count the number of lines instead.
Suggested-by: Bertrand Marquis <bertrand.marquis@xxxxxxx>
Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
Acked-by: Bertrand Marquis <bertrand.marquis@xxxxxxx>
Acked-by: Jan Beulich <jbeulich@xxxxxxxx>
Acked-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
xen/tools/check-endbr.sh | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/xen/tools/check-endbr.sh b/xen/tools/check-endbr.sh
index bf153a570d..aaaa9ebe6b 100755
--- a/xen/tools/check-endbr.sh
+++ b/xen/tools/check-endbr.sh
@@ -92,14 +92,13 @@ ${OBJDUMP} -j .text $1 -d -w | grep ' endbr64 *$' |
cut -f 1 -d ':' > $VALID &
# check nevertheless.
#
eval $(${OBJDUMP} -j .text $1 -h |
- $AWK '$2 == ".text" {printf "vma_hi=%s\nvma_lo=%s\n", substr($4, 1, 9),
substr($4, 10, 16)}')
+ $AWK '$2 == ".text" {printf "bin_sz=%s\nvma_hi=%s\nvma_lo=%s\n", "0x" $3,
substr($4, 1, 9), substr($4, 10, 16)}')
-${OBJCOPY} -j .text $1 -O binary $TEXT_BIN
-
-bin_sz=$(stat -c '%s' $TEXT_BIN)
-[ "$bin_sz" -ge $(((1 << 28) - $vma_lo)) ] &&
+[ "$(($bin_sz))" -ge $(((1 << 28) - $vma_lo)) ] &&
{ echo "$MSG_PFX Error: .text offsets must not exceed 256M" >&2; exit 1; }
+${OBJCOPY} -j .text $1 -O binary $TEXT_BIN
+
# instruction: hex: oct:
# endbr64 f3 0f 1e fa 363 017 036 372
# endbr32 f3 0f 1e fb 363 017 036 373
@@ -116,8 +115,8 @@ fi | $AWK -F':' '{printf "%s%07x\n", "'$vma_hi'",
int('$((0x$vma_lo))') + $1}' >
wait
# Sanity check $VALID and $ALL, in case the string parsing bitrots
-val_sz=$(stat -c '%s' $VALID)
-all_sz=$(stat -c '%s' $ALL)
+val_sz=$(wc -l < $VALID)
+all_sz=$(wc -l < $ALL)
[ "$val_sz" -eq 0 ] && { echo "$MSG_PFX Error: Empty valid-addrs" >&2;
exit 1; }
[ "$all_sz" -eq 0 ] && { echo "$MSG_PFX Error: Empty all-addrs" >&2;
exit 1; }
[ "$all_sz" -lt "$val_sz" ] && { echo "$MSG_PFX Error: More valid-addrs than
all-addrs" >&2; exit 1; }
--
generated by git-patchbot for /home/xen/git/xen.git#master
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |