From: Michael Brown Date: Tue, 6 May 2025 11:07:38 +0000 (+0100) Subject: [build] Allow for 32-bit and 64-bit versions of util/zbin X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=98646b9f016d9bff91a5c89f402aeb452ee7f84b;p=thirdparty%2Fipxe.git [build] Allow for 32-bit and 64-bit versions of util/zbin Parsing ELF data is simpler if we don't have to build a single binary to handle both 32-bit and 64-bit ELF formats. Allow for separate 32-bit and 64-bit binaries built from util/zbin.c (as is already done for util/elf2efi.c). Signed-off-by: Michael Brown --- diff --git a/src/Makefile b/src/Makefile index 548a4e3f1..be5c7fda6 100644 --- a/src/Makefile +++ b/src/Makefile @@ -45,7 +45,8 @@ SORTOBJDUMP := ./util/sortobjdump.pl PADIMG := ./util/padimg.pl LICENCE := ./util/licence.pl NRV2B := ./util/nrv2b -ZBIN := ./util/zbin +ZBIN32 := ./util/zbin32 +ZBIN64 := ./util/zbin64 ELF2EFI32 := ./util/elf2efi32 ELF2EFI64 := ./util/elf2efi64 EFIROM := ./util/efirom diff --git a/src/Makefile.housekeeping b/src/Makefile.housekeeping index b29173213..3d4e731f6 100644 --- a/src/Makefile.housekeeping +++ b/src/Makefile.housekeeping @@ -1449,10 +1449,15 @@ endif # defined(BIN) ZBIN_LDFLAGS := -llzma -$(ZBIN) : util/zbin.c $(MAKEDEPS) +$(ZBIN32) : util/zbin.c $(MAKEDEPS) $(QM)$(ECHO) " [HOSTCC] $@" - $(Q)$(HOST_CC) $(HOST_CFLAGS) $< $(ZBIN_LDFLAGS) -o $@ -CLEANUP += $(ZBIN) + $(Q)$(HOST_CC) $(HOST_CFLAGS) $< $(ZBIN_LDFLAGS) -DELF32 -o $@ +CLEANUP += $(ZBIN32) + +$(ZBIN64) : util/zbin.c $(MAKEDEPS) + $(QM)$(ECHO) " [HOSTCC] $@" + $(Q)$(HOST_CC) $(HOST_CFLAGS) $< $(ZBIN_LDFLAGS) -DELF64 -o $@ +CLEANUP += $(ZBIN64) ############################################################################### # diff --git a/src/arch/arm32/Makefile b/src/arch/arm32/Makefile index 0c1cf99d1..070041734 100644 --- a/src/arch/arm32/Makefile +++ b/src/arch/arm32/Makefile @@ -1,3 +1,7 @@ +# Specify compressor +# +ZBIN = $(ZBIN32) + # ARM32-specific directories containing source files # SRCDIRS += arch/arm32/core diff --git a/src/arch/arm64/Makefile b/src/arch/arm64/Makefile index 9b9dd5ec8..719a1e61c 100644 --- a/src/arch/arm64/Makefile +++ b/src/arch/arm64/Makefile @@ -1,3 +1,7 @@ +# Specify compressor +# +ZBIN = $(ZBIN64) + # ARM64-specific directories containing source files # SRCDIRS += arch/arm64/core diff --git a/src/arch/i386/Makefile b/src/arch/i386/Makefile index e59f05fc8..44ccfccc8 100644 --- a/src/arch/i386/Makefile +++ b/src/arch/i386/Makefile @@ -1,3 +1,7 @@ +# Specify compressor +# +ZBIN = $(ZBIN32) + # Force i386-only instructions # CFLAGS += -march=i386 diff --git a/src/arch/loong64/Makefile b/src/arch/loong64/Makefile index 90d0ec8e1..809af07eb 100644 --- a/src/arch/loong64/Makefile +++ b/src/arch/loong64/Makefile @@ -1,3 +1,7 @@ +# Specify compressor +# +ZBIN = $(ZBIN64) + # Assembler section type character # ASM_TCHAR := @ diff --git a/src/arch/riscv32/Makefile b/src/arch/riscv32/Makefile index 0415f7c2d..0d8b7ef50 100644 --- a/src/arch/riscv32/Makefile +++ b/src/arch/riscv32/Makefile @@ -1,3 +1,7 @@ +# Specify compressor +# +ZBIN = $(ZBIN32) + # RISCV32-specific directories containing source files # SRCDIRS += arch/riscv32/core diff --git a/src/arch/riscv64/Makefile b/src/arch/riscv64/Makefile index 2fd18fc13..017fbacef 100644 --- a/src/arch/riscv64/Makefile +++ b/src/arch/riscv64/Makefile @@ -1,3 +1,7 @@ +# Specify compressor +# +ZBIN = $(ZBIN64) + # RISCV64-specific directories containing source files # SRCDIRS += arch/riscv64/core diff --git a/src/arch/x86_64/Makefile b/src/arch/x86_64/Makefile index b3064b752..276b96d3b 100644 --- a/src/arch/x86_64/Makefile +++ b/src/arch/x86_64/Makefile @@ -1,3 +1,7 @@ +# Specify compressor +# +ZBIN = $(ZBIN64) + # Code size reduction. # CFLAGS += -fstrength-reduce -fomit-frame-pointer diff --git a/src/util/.gitignore b/src/util/.gitignore index b4cb13601..fe68ee753 100644 --- a/src/util/.gitignore +++ b/src/util/.gitignore @@ -1,5 +1,6 @@ nrv2b -zbin +zbin32 +zbin64 hijack prototester elf2efi32