genprotimg/boot: Makefile: simplify objcopy command

Instead of maintaining an include list, use an exclude list (if
neccessary). This simplifies the `objcopy` calls a lot, and it's
possible because `objcopy -O binary` only includes the memory dump of
the contents of the input object file. [1] This means that sections like
for debug information that do not occupy memory during the process
execution are discarded by design. [2]

In addition, if we do not want a particular ELF section, we can list it
in the discard section of the linker script.

[1] https://man7.org/linux/man-pages/man1/objcopy.1.html
[2] https://man7.org/linux/man-pages/man5/elf.5.html

Reviewed-by: Steffen Eiden <seiden@linux.ibm.com>
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
This commit is contained in:
Marc Hartmayer
2023-02-03 19:07:57 +01:00
committed by Jan Höppner
parent 43967feb2c
commit 6097ee3f9d

View File

@@ -82,14 +82,8 @@ stage3b_reloc.elf:
$(LINK) $$SFLAGS $(NO_PIE_LDFLAGS) $(NO_WARN_RWX_SEGMENTS_LDFLAGS) -Wl,--build-id=none -m64 -static -nostdlib $(filter %.o, $^) -o $@
@chmod a-x $@
%.bin: %.elf
$(OBJCOPY) -O binary \
--only-section=.text* \
--only-section=.ex_table* \
--only-section=.fixup* \
--only-section=.data* \
--only-section=.rodata* \
$< $@
%.bin: %.elf
$(OBJCOPY) -O binary $< $@
@chmod a-x $@
clean: