Re: [PATCH kernel v2] zstd: Fixing mixed module-builtin objects

From: Masahiro Yamada
Date: Wed May 11 2022 - 01:25:56 EST


On Wed, May 11, 2022 at 11:03 AM Alexey Kardashevskiy <aik@xxxxxxxxx> wrote:
>
>
>
> On 4/29/22 15:33, Alexey Kardashevskiy wrote:
> > With CONFIG_ZSTD_COMPRESS=m and CONFIG_ZSTD_DECOMPRESS=y we end up in
> > a situation when files from lib/zstd/common/ are compiled once to be
> > linked later for ZSTD_DECOMPRESS (build-in) and ZSTD_COMPRESS (module)
> > even though CFLAGS are different for builtins and modules.
> > So far somehow this was not a problem but enabling LLVM LTO exposes
> > the problem as:
> >
> > ld.lld: error: linking module flags 'Code Model': IDs have conflicting values in 'lib/built-in.a(zstd_common.o at 5868)' and 'ld-temp.o'
> >
> > This particular conflict is caused by KBUILD_CFLAGS=-mcmodel=medium vs.
> > KBUILD_CFLAGS_MODULE=-mcmodel=large , modules use the large model on
> > POWERPC as explained at
> > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/powerpc/Makefile?h=v5.18-rc4#n127
> > but the current use of common files is wrong anyway.
> >
> > This works around the issue by introducing a zstd_common module with
> > shared code.
> >
> > Cc: Masahiro Yamada <masahiroy@xxxxxxxxxx>
> > Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx>
>
>
> Ping? Thanks,


Reviewed-by: Masahiro Yamada <masahiroy@xxxxxxxxxx>







--
Best Regards
Masahiro Yamada