arm64: next-20171114 GICv4 build failure
Marc Zyngier
marc.zyngier at arm.com
Tue Nov 14 04:24:30 PST 2017
[please keep me on cc for anything GIC or KVM related, thanks]
On 14/11/17 11:46, Andreas Färber wrote:
> Hello,
>
> Yesterday's and today's linux-next fail to build for me on arm64 with
> the following warnings and errors:
>
> CC arch/arm64/kvm/hyp/switch.o
> CC mm/shmem.o
> CC fs/super.o
> CC kernel/ucount.o
> In file included from ../include/kvm/arm_vgic.h:29:0,
> from ../arch/arm64/include/asm/kvm_host.h:38,
> from ../include/linux/kvm_host.h:37,
> from ../arch/arm64/include/asm/kvm_emulate.h:25,
> from ../arch/arm64/kvm/hyp/switch.c:22:
> ../include/linux/irqchip/arm-gic-v4.h:112:57: warning: 'struct
> irq_domain_ops' declared inside parameter list will not be visible
> outside of this definition or declaration
> int its_init_v4(struct irq_domain *domain, const struct irq_domain_ops
> *ops);
> ^~~~~~~~~~~~~~
> [...]
>
> LD vmlinux.o
> MODPOST vmlinux.o
> virt/kvm/arm/vgic/vgic-v4.o: In function `vgic_v4_teardown':
> /home/andreas/MCU/ARM/Bubblegum-96/linux/s900/../arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-v4.c:200:
> undefined reference to `its_free_vcpu_irqs'
> /home/andreas/MCU/ARM/Bubblegum-96/linux/s900/../arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-v4.c:200:(.text+0x80):
> relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol
> `its_free_vcpu_irqs'
> virt/kvm/arm/vgic/vgic-v4.o: In function `vgic_v4_init':
> /home/andreas/MCU/ARM/Bubblegum-96/linux/s900/../arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-v4.c:139:
> undefined reference to `its_alloc_vcpu_irqs'
> /home/andreas/MCU/ARM/Bubblegum-96/linux/s900/../arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-v4.c:139:(.text+0x178):
> relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol
> `its_alloc_vcpu_irqs'
> virt/kvm/arm/vgic/vgic-v4.o: In function `vgic_v4_sync_hwstate':
> /home/andreas/MCU/ARM/Bubblegum-96/linux/s900/../arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-v4.c:211:
> undefined reference to `its_schedule_vpe'
> /home/andreas/MCU/ARM/Bubblegum-96/linux/s900/../arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-v4.c:211:(.text+0x2b8):
> relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol
> `its_schedule_vpe'
> virt/kvm/arm/vgic/vgic-v4.o: In function `vgic_v4_flush_hwstate':
> /home/andreas/MCU/ARM/Bubblegum-96/linux/s900/../arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-v4.c:232:
> undefined reference to `its_schedule_vpe'
> /home/andreas/MCU/ARM/Bubblegum-96/linux/s900/../arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-v4.c:232:(.text+0x338):
> relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol
> `its_schedule_vpe'
> virt/kvm/arm/vgic/vgic-v4.o: In function `kvm_vgic_v4_set_forwarding':
> /home/andreas/MCU/ARM/Bubblegum-96/linux/s900/../arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-v4.c:302:
> undefined reference to `its_map_vlpi'
> /home/andreas/MCU/ARM/Bubblegum-96/linux/s900/../arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-v4.c:302:(.text+0x464):
> relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol
> `its_map_vlpi'
> virt/kvm/arm/vgic/vgic-v4.o: In function `kvm_vgic_v4_unset_forwarding':
> /home/andreas/MCU/ARM/Bubblegum-96/linux/s900/../arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-v4.c:341:
> undefined reference to `its_unmap_vlpi'
> /home/andreas/MCU/ARM/Bubblegum-96/linux/s900/../arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-v4.c:341:(.text+0x56c):
> relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol
> `its_unmap_vlpi'
> virt/kvm/arm/vgic/vgic-its.o: In function `update_lpi_config':
> /home/andreas/MCU/ARM/Bubblegum-96/linux/s900/../arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-its.c:304:
> undefined reference to `its_prop_update_vlpi'
> /home/andreas/MCU/ARM/Bubblegum-96/linux/s900/../arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-its.c:304:(.text+0x338):
> relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol
> `its_prop_update_vlpi'
> virt/kvm/arm/vgic/vgic-its.o: In function `its_free_ite':
> /home/andreas/MCU/ARM/Bubblegum-96/linux/s900/../arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-its.c:656:
> undefined reference to `its_unmap_vlpi'
> /home/andreas/MCU/ARM/Bubblegum-96/linux/s900/../arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-its.c:656:(.text+0x390):
> relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol
> `its_unmap_vlpi'
> virt/kvm/arm/vgic/vgic-its.o: In function `update_affinity':
> /home/andreas/MCU/ARM/Bubblegum-96/linux/s900/../arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-its.c:356:
> undefined reference to `its_get_vlpi'
> /home/andreas/MCU/ARM/Bubblegum-96/linux/s900/../arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-its.c:356:(.text+0x128c):
> relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol
> `its_get_vlpi'
> /home/andreas/MCU/ARM/Bubblegum-96/linux/s900/../arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-its.c:362:
> undefined reference to `its_map_vlpi'
> /home/andreas/MCU/ARM/Bubblegum-96/linux/s900/../arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-its.c:362:(.text+0x12a4):
> relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol
> `its_map_vlpi'
> virt/kvm/arm/vgic/vgic-its.o: In function `vgic_its_cmd_handle_invall':
> /home/andreas/MCU/ARM/Bubblegum-96/linux/s900/../arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-its.c:1165:
> undefined reference to `its_invall_vpe'
> /home/andreas/MCU/ARM/Bubblegum-96/linux/s900/../arch/arm64/kvm/../../../virt/kvm/arm/vgic/vgic-its.c:1165:(.text+0x1d48):
> additional relocation overflows omitted from the output
> /home/andreas/MCU/ARM/Bubblegum-96/linux/Makefile:993: recipe for target
> 'vmlinux' failed
> make[1]: *** [vmlinux] Error 1
> make[1]: Leaving directory '/home/andreas/MCU/ARM/Bubblegum-96/linux/s900'
> Makefile:146: recipe for target 'sub-make' failed
> make: *** [sub-make] Error 2
>
> I'm guessing there's some Kconfig or guard issue? No GICv4 options
> popped up during oldconfig. And my arm config still builds fine.
GICv4 is not optional. You'll get it no matter what... ;-) In your
cases, it fails because you probably don't have PCI selected (why PCI is
optional is a different story...).
I've pushed out some fixes yesterday[1], which should reach -next at
some point. Please give it a go and let me know if that helps.
Thanks,
M.
[1]:
https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git/log/?h=irq/irqchip-4.15
--
Jazz is not dead. It just smells funny...
More information about the linux-arm-kernel
mailing list