On Mon, 20 Jan 2020 at 10:49, Ingo Molnar <mingo@xxxxxxxxxx> wrote: > > > * Ard Biesheuvel <ardb@xxxxxxxxxx> wrote: > > > A couple of fixes for more unusual configurations that weren't caught in > > my testing before. One for KASAN, one for the LLVM linker and one for the > > old EFI memory map when running on mixed mode systems. > > > > These apply onto the Git pull request [0[ that I sent out at the beginning > > of the week. > > > > [0] https://lore.kernel.org/linux-efi/20200113172245.27925-1-ardb@xxxxxxxxxx/ > > > > Ard Biesheuvel (3): > > efi/x86: avoid KASAN false positives when accessing the 1:1 mapping > > x86/boot/compressed: relax sed symbol type regex for LLVM ld.lld > > efi/x86: disallow efi=old_map in mixed mode > > > > arch/x86/boot/Makefile | 2 +- > > arch/x86/platform/efi/efi_64.c | 11 ++++++----- > > arch/x86/platform/uv/bios_uv.c | 2 +- > > 3 files changed, 8 insertions(+), 7 deletions(-) > > Just a minor bugreport, in some (weird) config combinations we now get > this build failure: > > ld: arch/x86/platform/efi/efi_64.o: in function `efi_set_virtual_address_map': > efi_64.c:(.init.text+0x1419): undefined reference to `__efi64_thunk' > ld: efi_64.c:(.init.text+0x1530): undefined reference to `efi_uv1_memmap_phys_prolog' > ld: efi_64.c:(.init.text+0x1706): undefined reference to `efi_uv1_memmap_phys_epilog' > > Config attached. > > I believe the trigger condition is: > > !CONFIG_X86_UV > CONFIG_EFI=y > Strange. Those references to missing symbols are guarded by efi_is_mixed() and efi_have_uv1_memmap(), both of which are static inline bool() functions wrapping IS_ENABLED() checks against CONFIG_EFI_MIXED and CONFIG_X86_UV, respectively. IOW, it is unexpected that the compiler doesn't const-propagate those expressions and optimize away the references entirely. Is there any special debug or diagnostic options enabled?