[XEN PATCH 3/5] xen/arch/x86: make objdump output user locale agnostic

Maximilian Engelhardt posted 5 patches 10 months, 1 week ago
[XEN PATCH 3/5] xen/arch/x86: make objdump output user locale agnostic
Posted by Maximilian Engelhardt 10 months, 1 week ago
The objdump output is fed to grep, so make sure it doesn't change with
different user locales and break the grep parsing.
This problem was identified while updating xen in Debian and the fix is
needed for generating reproducible builds in varying environments.

Signed-off-by: Maximilian Engelhardt <maxi@daemonizer.de>
---
 xen/arch/x86/arch.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk
index 9dde8a5756..cb47d72991 100644
--- a/xen/arch/x86/arch.mk
+++ b/xen/arch/x86/arch.mk
@@ -109,7 +109,7 @@ endif
 ifeq ($(XEN_BUILD_PE),y)
 
 # Check if the linker produces fixups in PE by default
-efi-nr-fixups := $(shell $(OBJDUMP) -p $(efi-check).efi | grep '^[[:blank:]]*reloc[[:blank:]]*[0-9][[:blank:]].*DIR64$$' | wc -l)
+efi-nr-fixups := $(shell LC_ALL=C $(OBJDUMP) -p $(efi-check).efi | grep '^[[:blank:]]*reloc[[:blank:]]*[0-9][[:blank:]].*DIR64$$' | wc -l)
 
 ifeq ($(efi-nr-fixups),2)
 MKRELOC := :
-- 
2.39.5
Re: [XEN PATCH 3/5] xen/arch/x86: make objdump output user locale agnostic
Posted by Jan Beulich 10 months ago
On 30.12.2024 22:00, Maximilian Engelhardt wrote:
> The objdump output is fed to grep, so make sure it doesn't change with
> different user locales and break the grep parsing.
> This problem was identified while updating xen in Debian and the fix is
> needed for generating reproducible builds in varying environments.

It required me to check objdump (really: libbfd) source code to figure that
it's ...

> --- a/xen/arch/x86/arch.mk
> +++ b/xen/arch/x86/arch.mk
> @@ -109,7 +109,7 @@ endif
>  ifeq ($(XEN_BUILD_PE),y)
>  
>  # Check if the linker produces fixups in PE by default
> -efi-nr-fixups := $(shell $(OBJDUMP) -p $(efi-check).efi | grep '^[[:blank:]]*reloc[[:blank:]]*[0-9][[:blank:]].*DIR64$$' | wc -l)
> +efi-nr-fixups := $(shell LC_ALL=C $(OBJDUMP) -p $(efi-check).efi | grep '^[[:blank:]]*reloc[[:blank:]]*[0-9][[:blank:]].*DIR64$$' | wc -l)

... the "reloc" in here which (oddly enough) may be subject to translation.
Would have been nice if such a relevant detail had been added to the
description.

Jan