[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 <mcb30@ipxe.org>
This commit is contained in:
Michael Brown
2025-05-06 12:07:38 +01:00
parent 4c11737d5d
commit 98646b9f01
10 changed files with 40 additions and 5 deletions

View File

@@ -45,7 +45,8 @@ SORTOBJDUMP := ./util/sortobjdump.pl
PADIMG := ./util/padimg.pl PADIMG := ./util/padimg.pl
LICENCE := ./util/licence.pl LICENCE := ./util/licence.pl
NRV2B := ./util/nrv2b NRV2B := ./util/nrv2b
ZBIN := ./util/zbin ZBIN32 := ./util/zbin32
ZBIN64 := ./util/zbin64
ELF2EFI32 := ./util/elf2efi32 ELF2EFI32 := ./util/elf2efi32
ELF2EFI64 := ./util/elf2efi64 ELF2EFI64 := ./util/elf2efi64
EFIROM := ./util/efirom EFIROM := ./util/efirom

View File

@@ -1449,10 +1449,15 @@ endif # defined(BIN)
ZBIN_LDFLAGS := -llzma ZBIN_LDFLAGS := -llzma
$(ZBIN) : util/zbin.c $(MAKEDEPS) $(ZBIN32) : util/zbin.c $(MAKEDEPS)
$(QM)$(ECHO) " [HOSTCC] $@" $(QM)$(ECHO) " [HOSTCC] $@"
$(Q)$(HOST_CC) $(HOST_CFLAGS) $< $(ZBIN_LDFLAGS) -o $@ $(Q)$(HOST_CC) $(HOST_CFLAGS) $< $(ZBIN_LDFLAGS) -DELF32 -o $@
CLEANUP += $(ZBIN) CLEANUP += $(ZBIN32)
$(ZBIN64) : util/zbin.c $(MAKEDEPS)
$(QM)$(ECHO) " [HOSTCC] $@"
$(Q)$(HOST_CC) $(HOST_CFLAGS) $< $(ZBIN_LDFLAGS) -DELF64 -o $@
CLEANUP += $(ZBIN64)
############################################################################### ###############################################################################
# #

View File

@@ -1,3 +1,7 @@
# Specify compressor
#
ZBIN = $(ZBIN32)
# ARM32-specific directories containing source files # ARM32-specific directories containing source files
# #
SRCDIRS += arch/arm32/core SRCDIRS += arch/arm32/core

View File

@@ -1,3 +1,7 @@
# Specify compressor
#
ZBIN = $(ZBIN64)
# ARM64-specific directories containing source files # ARM64-specific directories containing source files
# #
SRCDIRS += arch/arm64/core SRCDIRS += arch/arm64/core

View File

@@ -1,3 +1,7 @@
# Specify compressor
#
ZBIN = $(ZBIN32)
# Force i386-only instructions # Force i386-only instructions
# #
CFLAGS += -march=i386 CFLAGS += -march=i386

View File

@@ -1,3 +1,7 @@
# Specify compressor
#
ZBIN = $(ZBIN64)
# Assembler section type character # Assembler section type character
# #
ASM_TCHAR := @ ASM_TCHAR := @

View File

@@ -1,3 +1,7 @@
# Specify compressor
#
ZBIN = $(ZBIN32)
# RISCV32-specific directories containing source files # RISCV32-specific directories containing source files
# #
SRCDIRS += arch/riscv32/core SRCDIRS += arch/riscv32/core

View File

@@ -1,3 +1,7 @@
# Specify compressor
#
ZBIN = $(ZBIN64)
# RISCV64-specific directories containing source files # RISCV64-specific directories containing source files
# #
SRCDIRS += arch/riscv64/core SRCDIRS += arch/riscv64/core

View File

@@ -1,3 +1,7 @@
# Specify compressor
#
ZBIN = $(ZBIN64)
# Code size reduction. # Code size reduction.
# #
CFLAGS += -fstrength-reduce -fomit-frame-pointer CFLAGS += -fstrength-reduce -fomit-frame-pointer

3
src/util/.gitignore vendored
View File

@@ -1,5 +1,6 @@
nrv2b nrv2b
zbin zbin32
zbin64
hijack hijack
prototester prototester
elf2efi32 elf2efi32