Код: Выделить всё
riscv64-linux-gnu-ld: arch/riscv/boot/zboot-header.o: in function `.Ldoshdr':
(.head+0x68): undefined reference to `__efistub_efi_zboot_entry'
CC [M] drivers/net/ethernet/netswift/ngbevf/ngbevf.mod.o
make[4]: *** [/usr/src/packages/tmp/linux-6.6.0/drivers/firmware/efi/libstub/Makefile.zboot:52: arch/riscv/boot/vmlinuz.efi.elf] Error 1
make[3]: *** [/usr/src/packages/tmp/linux-6.6.0/arch/riscv/Makefile:163: vmlinuz.efi] Error 2
make[3]: *** Waiting for unfinished jobs....
Код: Выделить всё
ZBOOT_DEPS := $(obj)/zboot-header.o $(objtree)/drivers/firmware/efi/libstub/lib.a
LDFLAGS_vmlinuz.efi.elf := -T $(srctree)/drivers/firmware/efi/libstub/zboot.lds
$(obj)/vmlinuz.efi.elf: $(obj)/vmlinuz.o $(ZBOOT_DEPS) FORCE
$(call if_changed,ld)
Код: Выделить всё
ld -T drivers/firmware/efi/libstub/zboot.lds -o debian/build/build-generic/arch/riscv/boot/vmlinuz.efi.elf \
debian/build/build-generic/arch/riscv/boot/vmlinuz.o debian/build/build-generic/arch/riscv/boot/zboot-header.o \
debian/build/build-generic/drivers/firmware/efi/libstub/lib.a
ld: debian/build/build-generic/arch/riscv/boot/zboot-header.o: in function `.Ldoshdr':
(.head+0x68): undefined reference to `__efistub_efi_zboot_entry'
Мой вопрос: при поиске по коду ядра __efistub_efi_zboot_entry упоминался только один раз в драйверах/firmware/efi/libstub/zboot-header.S
Код: Выделить всё
.Loptional_header:
.short .Lpe_opt_magic
.byte 0, 0
.long _etext - .Lefi_header_end
.long __data_size
.long 0
.long __efistub_efi_zboot_entry - .Ldoshdr
Кстати, я пытался найти патч, в котором эта __efistub_efi_zboot_entry была добавлена в код ядра, патч https://patchew.org/linux/2022091008115 ... ernel.org/. Я хочу найти образец использования неопределенной метки или способ, которым восходящий код позволяет избежать этой ошибки, но безуспешно.
Какой-нибудь совет по решению этой проблемы с помощью такого метода, как восходящий код?
Подробнее здесь: https://stackoverflow.com/questions/797 ... boot-entry
Мобильная версия