> On Jun 24, 2023, at 3:31 AM, Andrew Jones <andrew.jones@xxxxxxxxx> wrote: > > !! External Email > > 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. [ I aggregate my response to both of your emails ] Thanks! I will create .debug files for x86, but I am going to remove the ‘-g’ option. If anyone wants it, he would need to provide CFLAGS during configure. I will cleanup the .debug files for each arch separately since other files are cleanup’d that way.