mirror of
https://git.proxmox.com/git/efi-boot-shim
synced 2025-07-27 12:45:27 +00:00
Improve our debuginfo path print
Signed-off-by: Peter Jones <pjones@redhat.com>
This commit is contained in:
parent
b4cd19405f
commit
403afdad02
15
Makefile
15
Makefile
@ -1,3 +1,9 @@
|
|||||||
|
VERSION = 0.8
|
||||||
|
RELEASE :=
|
||||||
|
ifneq ($(RELEASE),"")
|
||||||
|
RELEASE="-$(RELEASE)"
|
||||||
|
endif
|
||||||
|
|
||||||
CC = $(CROSS_COMPILE)gcc
|
CC = $(CROSS_COMPILE)gcc
|
||||||
LD = $(CROSS_COMPILE)ld
|
LD = $(CROSS_COMPILE)ld
|
||||||
OBJCOPY = $(CROSS_COMPILE)objcopy
|
OBJCOPY = $(CROSS_COMPILE)objcopy
|
||||||
@ -36,15 +42,18 @@ ifeq ($(ARCH),x86_64)
|
|||||||
CFLAGS += -mno-mmx -mno-sse -mno-red-zone -nostdinc \
|
CFLAGS += -mno-mmx -mno-sse -mno-red-zone -nostdinc \
|
||||||
-maccumulate-outgoing-args \
|
-maccumulate-outgoing-args \
|
||||||
-DEFI_FUNCTION_WRAPPER -DGNU_EFI_USE_MS_ABI \
|
-DEFI_FUNCTION_WRAPPER -DGNU_EFI_USE_MS_ABI \
|
||||||
"-DEFI_ARCH=L\"x64\""
|
"-DEFI_ARCH=L\"x64\"" \
|
||||||
|
"-DDEBUGDIR=L\"/usr/lib/debug/usr/share/shim/x64-$(VERSION)$(RELEASE)/\""
|
||||||
endif
|
endif
|
||||||
ifeq ($(ARCH),ia32)
|
ifeq ($(ARCH),ia32)
|
||||||
CFLAGS += -mno-mmx -mno-sse -mno-red-zone -nostdinc \
|
CFLAGS += -mno-mmx -mno-sse -mno-red-zone -nostdinc \
|
||||||
-maccumulate-outgoing-args -m32 \
|
-maccumulate-outgoing-args -m32 \
|
||||||
"-DEFI_ARCH=L\"ia32\""
|
"-DEFI_ARCH=L\"ia32\"" \
|
||||||
|
"-DDEBUGDIR=L\"/usr/lib/debug/usr/share/shim/ia32-$(VERSION)$(RELEASE)/\""
|
||||||
endif
|
endif
|
||||||
ifeq ($(ARCH),aarch64)
|
ifeq ($(ARCH),aarch64)
|
||||||
CFLAGS += "-DEFI_ARCH=L\"aa64\""
|
CFLAGS += "-DEFI_ARCH=L\"aa64\""
|
||||||
|
"-DDEBUGDIR=L\"/usr/lib/debug/usr/share/shim/aa64-$(VERSION)$(RELEASE)/\""
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($(origin VENDOR_CERT_FILE), undefined)
|
ifneq ($(origin VENDOR_CERT_FILE), undefined)
|
||||||
@ -56,8 +65,6 @@ endif
|
|||||||
|
|
||||||
LDFLAGS = --hash-style=sysv -nostdlib -znocombreloc -T $(EFI_LDS) -shared -Bsymbolic -L$(EFI_PATH) -L$(LIB_PATH) -LCryptlib -LCryptlib/OpenSSL $(EFI_CRT_OBJS) --build-id=sha1
|
LDFLAGS = --hash-style=sysv -nostdlib -znocombreloc -T $(EFI_LDS) -shared -Bsymbolic -L$(EFI_PATH) -L$(LIB_PATH) -LCryptlib -LCryptlib/OpenSSL $(EFI_CRT_OBJS) --build-id=sha1
|
||||||
|
|
||||||
VERSION = 0.8
|
|
||||||
|
|
||||||
TARGET = shim.efi MokManager.efi.signed fallback.efi.signed
|
TARGET = shim.efi MokManager.efi.signed fallback.efi.signed
|
||||||
OBJS = shim.o netboot.o cert.o replacements.o version.o
|
OBJS = shim.o netboot.o cert.o replacements.o version.o
|
||||||
KEYS = shim_cert.h ocsp.* ca.* shim.crt shim.csr shim.p12 shim.pem shim.key shim.cer
|
KEYS = shim_cert.h ocsp.* ca.* shim.crt shim.csr shim.p12 shim.pem shim.key shim.cer
|
||||||
|
@ -816,8 +816,8 @@ debug_hook(void)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
x = 1;
|
x = 1;
|
||||||
Print(L"add-symbol-file /usr/lib/debug/usr/share/shim/"
|
Print(L"add-symbol-file "DEBUGDIR
|
||||||
EFI_ARCH"/fallback.debug %p -s .data %p\n", &_etext,
|
L"fallback.debug %p -s .data %p\n", &_etext,
|
||||||
&_edata);
|
&_edata);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
19
shim.c
19
shim.c
@ -2151,7 +2151,7 @@ debug_hook(void)
|
|||||||
UINT8 *data = NULL;
|
UINT8 *data = NULL;
|
||||||
UINTN dataSize = 0;
|
UINTN dataSize = 0;
|
||||||
EFI_STATUS efi_status;
|
EFI_STATUS efi_status;
|
||||||
volatile register int x = 0;
|
volatile register UINTN x = 0;
|
||||||
extern char _text, _data;
|
extern char _text, _data;
|
||||||
|
|
||||||
if (x)
|
if (x)
|
||||||
@ -2162,19 +2162,28 @@ debug_hook(void)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Print(L"add-symbol-file /usr/lib/debug/usr/share/shim/"
|
Print(L"add-symbol-file "DEBUGDIR
|
||||||
EFI_ARCH"/shim.debug 0x%08x -s .data 0x%08x\n", &_text,
|
L"shim.debug 0x%08x -s .data 0x%08x\n", &_text,
|
||||||
&_data);
|
&_data);
|
||||||
|
|
||||||
Print(L"Pausing for debugger attachment.\n");
|
Print(L"Pausing for debugger attachment.\n");
|
||||||
|
Print(L"To disable this, remove the EFI variable SHIM_DEBUG-%g .\n",
|
||||||
|
&guid);
|
||||||
x = 1;
|
x = 1;
|
||||||
while (x) {
|
while (x++) {
|
||||||
|
/* Make this so it can't /totally/ DoS us. */
|
||||||
#if defined(__x86_64__) || defined(__i386__) || defined(__i686__)
|
#if defined(__x86_64__) || defined(__i386__) || defined(__i686__)
|
||||||
|
if (x > 4294967294)
|
||||||
|
break;
|
||||||
__asm__ __volatile__("pause");
|
__asm__ __volatile__("pause");
|
||||||
#elif defined(__aarch64__)
|
#elif defined(__aarch64__)
|
||||||
|
if (x > 1000)
|
||||||
|
break;
|
||||||
__asm__ __volatile__("wfi");
|
__asm__ __volatile__("wfi");
|
||||||
#else
|
#else
|
||||||
uefi_call_wrapper(BS->Stall, 1, 50000);
|
if (x > 12000)
|
||||||
|
break;
|
||||||
|
uefi_call_wrapper(BS->Stall, 1, 5000);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
x = 1;
|
x = 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user