With GNU ld:
ld: arch/x86/entry/vsyscall/vsyscall_gtod.o: in function `update_vsyscall':
vsyscall_gtod.c:(.text+0x232): undefined reference to `__udivdi3'
With lld:
ld.lld-9: error: undefined symbol: __udivdi3
>>> referenced by vsyscall_gtod.c
>>> entry/vsyscall/vsyscall_gtod.o:(update_vsyscall) in archive arch/x86/built-in.a
First pointed out by @nathanchance: https://github.com/ClangBuiltLinux/linux/issues/186#issuecomment-430780405
Good observation by @nickdesaulniers: https://github.com/ClangBuiltLinux/continuous-integration/pull/182#issuecomment-506031721
https://github.com/ClangBuiltLinux/linux/blob/249155c20f9b0754bc1b932a33344cfb4e0c2101/arch/x86/entry/vsyscall/vsyscall_gtod.c#L70
Arnd sent a patch that was picked up: https://git.kernel.org/tip/510c12149954eb9db6a30c2b9f7526af71afb7a4