Re: "arm64: vdso: Substitute gettimeofday() with C implementation" breaks clang build

From: Vincenzo Frascino
Date: Tue Jun 25 2019 - 08:47:33 EST


Hi Qian,

On 25/06/2019 13:16, Qian Cai wrote:
> The linux-next commit "arm64: vdso: Substitute gettimeofday() with C
> implementation" [1] breaks clang build.
>
> error: invalid value 'tiny' in '-mcode-model tiny'
> make[1]: *** [scripts/Makefile.build:279:
> arch/arm64/kernel/vdso/vgettimeofday.o] Error 1
> make[1]: *** Waiting for unfinished jobs....
> make: *** [arch/arm64/Makefile:180: vdso_prepare] Error 2
>
> [1] https://patchwork.kernel.org/patch/11009663/
>

I am not sure what does exactly break from your report. Could you please provide
more details?

On my env:

$ make mrproper && make defconfig && make CC=clang HOSTCC=clang -j$(nproc)

...

arch/arm64/Makefile:56: CROSS_COMPILE_COMPAT is clang, the compat vDSO will not
be built

...

LDS arch/arm64/kernel/vdso/vdso.lds
AS arch/arm64/kernel/vdso/note.o
AS arch/arm64/kernel/vdso/sigreturn.o
CC arch/arm64/kernel/vdso/vgettimeofday.o
LD arch/arm64/kernel/vdso/vdso.so.dbg
VDSOCHK arch/arm64/kernel/vdso/vdso.so.dbg
VDSOSYM include/generated/vdso-offsets.h

...

LD vmlinux.o
MODPOST vmlinux.o
MODINFO modules.builtin.modinfo
KSYM .tmp_kallsyms1.o
KSYM .tmp_kallsyms2.o
LD vmlinux
SORTEX vmlinux
SYSMAP System.map
Building modules, stage 2.
OBJCOPY arch/arm64/boot/Image
MODPOST 483 modules

--
Regards,
Vincenzo