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

Re: [PATCH 2/5] xen/tools: remove usages of `stat -s` in check-endbr.sh


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: Roger Pau Monné <roger.pau@xxxxxxxxxx>
  • Date: Wed, 11 Feb 2026 13:24:11 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=oe8nDJkQ063EUuKX9Kgyms4o9znzSot29vNm7q0yrkI=; b=Udb20abHl74KMc5fsBfzCK/9dHJg1P+opt9qN2eGCgYlxxScvAL3gx85+LMAWgB9Mrd98nb5s6GUMsKfcy3pUmbnCpuKa6swDGk4z+gVcay8yAe7jp+Kbtw94CNsskDkW+Nal1Meb9sBTDaRiYgu7gOEhpiuZDa1h5yfAbQjnU+G9vKktTKg0Z1oi5qUb4e23PVGxuLMzSvLtqYctKUt2yiuj/xnXJPiFFn64MmIfFJX6RsSFkNE+WeVadxgvyFo+waDX+UYSqvySqRK7/7CGr/TpRae3WlwFnB1TXWbi/uuqR42SdTIliXl5i3T4UHMV+SVsnSTqCme0u6htHBHjg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=M/3jnqMFdCMf/DzYtHEsQrCy7IVt772P6xvFreCf30OktWOJtXYI3bCMFeWF6FXhTbyzmqtVuqORt/rhXe1Bynf+cbWNb+ebEO/bO8/ZXlHQNVZf/uUlYqJkvBg0sX6HsIOtSoE+RDaSQCcqoBDCtiJzEJ3NzGgFRUZVG533dAdnkWikDlDNDn5XVqSFidypSCdOGPDykCWz9niYurMyVq7YxYEDkl+MouHmm7B5bPl8qkYQa0SzXMpfoQimcNEcLDim7+r30kqbQzckgncFfU1vqF/05PK9MJTCSeEBmQCx6/KFww+X4ccXuQHa434SOVTEomXAHGL+RVN0fgMkAQ==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, Julien Grall <julien@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx
  • Delivery-date: Wed, 11 Feb 2026 12:24:27 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On Wed, Feb 11, 2026 at 12:40:58PM +0100, Jan Beulich wrote:
> On 11.02.2026 11:46, Roger Pau Monne wrote:
> > The `-s` option to stat is not POSIX compatible, and hence prevents the
> > check-endbr.sh script from running reliably.
> > 
> > The first instance of `stat -s` can be removed by fetching the section size
> > from the output of objdump itself, which the script already parses to get
> > the VMA values.
> 
> In both paragraphs, s/-s/-c/ ?

Bah, yes.

> > 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.
> 
> Hmm, indeed, just that ...
> 
> > --- a/xen/tools/check-endbr.sh
> > +++ b/xen/tools/check-endbr.sh
> > @@ -92,14 +92,15 @@ ${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)
> > +# Convert objdump hex reported .text size to decimal
> > +bin_sz=$(printf %u $bin_sz)
> 
> (Alternatively without this line, but ...
> 
> >  [ "$bin_sz" -ge $(((1 << 28) - $vma_lo)) ] &&
> 
> [ "$(($bin_sz))" -ge $(((1 << 28) - $vma_lo)) ] &&
> 
> ?)

Isn't that bash-specific functionality?  The script interpreter is set
as /bin/sh.

> >      { 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 +117,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; }
> 
> ... the variables' _sz suffixes then end up a little misleading. Not sure
> in how far we care. Perhaps not enough to warrant the bigger churn:
> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
> (with the description adjustment).

I could rename to _lines or some such, but I didn't see much benefit.
If you don't have a strong opinion towards renaming I will leave
as-is.

Thanks, Roger.



 


Rackspace

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