From b9ca0895a0679d4d3223685d37f0600b82eae49c Mon Sep 17 00:00:00 2001 From: Jan Setje-Eilers Date: Sat, 20 Feb 2021 16:18:16 -0800 Subject: Drop --set-section-alignment from Makefile since linker ALIGN(4096) already enforces the alignment, clarify that objcopy only needs to do the alignment in the SBAT spec. --- Makefile | 2 +- SBAT.md | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 02f380e0..0cd45b91 100644 --- a/Makefile +++ b/Makefile @@ -95,7 +95,7 @@ VENDOR_SBATS := $(foreach x,$(wildcard data/sbat.*.csv),$(notdir $(x))) sbat_data.o : | $(SBATPATH) $(VENDOR_SBATS) sbat_data.o : /dev/null $(CC) $(CFLAGS) -x c -c -o $@ $< - $(OBJCOPY) --set-section-alignment '.sbat=512' --add-section .sbat=$(SBATPATH) $@ + $(OBJCOPY) --add-section .sbat=$(SBATPATH) $@ $(foreach vs,$(VENDOR_SBATS),$(call add-vendor-sbat,$(vs),$@)) $(SHIMNAME) : $(SHIMSONAME) diff --git a/SBAT.md b/SBAT.md index cce34b6b..ce4ef69c 100644 --- a/SBAT.md +++ b/SBAT.md @@ -336,6 +336,11 @@ objcopy --set-section-alignment '.sbat=512' --add-section .sbat=sbat.csv foo.efi ``` +Older versions of objcopy(1) do not support --set-section-alignment +which is required to force the correct alignment expected from a PE +file. As long as there is another step, later in the build process, +such as an linker invocation that forces alignment, objcopy(1) does +not need to align an intermediate file. #### UEFI SBAT Variable content -- cgit v1.2.3