On Sat, Jun 17, 2023 at 01:49:25AM +0000, Nadav Amit wrote: > From: Nadav Amit <namit@xxxxxxxxxx> > > Debugging tests that run on EFI is hard because the debug information is > not included in the EFI file. Dump it into a separeate .debug file to > allow the use of gdb or pretty_print_stacks script. > > Signed-off-by: Nadav Amit <namit@xxxxxxxxxx> > --- > arm/Makefile.common | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/arm/Makefile.common b/arm/Makefile.common > index d60cf8c..f904702 100644 > --- a/arm/Makefile.common > +++ b/arm/Makefile.common > @@ -69,7 +69,7 @@ FLATLIBS = $(libcflat) $(LIBFDT_archive) $(libeabi) > ifeq ($(CONFIG_EFI),y) > %.so: EFI_LDFLAGS += -defsym=EFI_SUBSYSTEM=0xa --no-undefined > %.so: %.o $(FLATLIBS) $(SRCDIR)/arm/efi/elf_aarch64_efi.lds $(cstart.o) > - $(CC) $(CFLAGS) -c -o $(@:.so=.aux.o) $(SRCDIR)/lib/auxinfo.c \ > + $(CC) $(CFLAGS) -c -g -o $(@:.so=.aux.o) $(SRCDIR)/lib/auxinfo.c \ > -DPROGNAME=\"$(@:.so=.efi)\" -DAUXFLAGS=$(AUXFLAGS) > $(LD) $(EFI_LDFLAGS) -o $@ -T $(SRCDIR)/arm/efi/elf_aarch64_efi.lds \ > $(filter %.o, $^) $(FLATLIBS) $(@:.so=.aux.o) \ > @@ -78,6 +78,9 @@ ifeq ($(CONFIG_EFI),y) > > %.efi: %.so > $(call arch_elf_check, $^) > + $(OBJCOPY) --only-keep-debug $^ $@.debug > + $(OBJCOPY) --strip-debug $^ > + $(OBJCOPY) --add-gnu-debuglink=$@.debug $^ > $(OBJCOPY) \ > -j .text -j .sdata -j .data -j .dynamic -j .dynsym \ > -j .rel -j .rela -j .rel.* -j .rela.* -j .rel* -j .rela* \ > -- > 2.34.1 > We also need a change to arm_clean to clean these new files up. Or, since we probably want them for x86 as well and we already have other efi cleanup to do, then maybe we should have a common efi_clean in the top- level Makefile which x86's and arm's clean use to clean up all efi related files. Thanks, drew