On Tue, Oct 16, 2018 at 03:29:37PM +0300, Jani Nikula wrote: > When building the kernel with Clang with defconfig and CONFIG_64BIT > disabled, vmlinux fails to link because of the BUILD_BUG in > _print_param. > > ld: drivers/gpu/drm/i915/i915_params.o: in function `i915_params_dump': > i915_params.c:(.text+0x56): undefined reference to > `__compiletime_assert_191' > > This function is semantically invalid unless the code is first inlined > then constant folded, which doesn't work for Clang because semantic > analysis happens before optimization/inlining. > > [The above written by Nathan Chancellor <natechancel...@gmail.com>] > > Use WARN_ONCE() instead of BUILD_BUG() to avoid the problem. The > WARN_ONCE() should get optimized away unless there's a type that's not > handled by _print_param(). > > References: https://github.com/ClangBuiltLinux/linux/issues/191 > References: > 20181009171401.14980-1-natechancellor@gmail.com">http://mid.mail-archive.com/20181009171401.14980-1-natechancellor@gmail.com > Cc: Nick Desaulniers <ndesaulni...@google.com> > Cc: Nathan Chancellor <natechancel...@gmail.com> > Cc: Chris Wilson <ch...@chris-wilson.co.uk> > Reported-by: Nick Desaulniers <ndesaulni...@google.com> > Reported-by: Nathan Chancellor <natechancel...@gmail.com> > Signed-off-by: Jani Nikula <jani.nik...@intel.com>
Tested-by: Nathan Chancellor <natechancel...@gmail.com> Thanks for the quick turnaround and help getting this fixed, Jani! > --- > drivers/gpu/drm/i915/i915_params.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/i915_params.c > b/drivers/gpu/drm/i915/i915_params.c > index bd6bd8879cab..8d71886b5f03 100644 > --- a/drivers/gpu/drm/i915/i915_params.c > +++ b/drivers/gpu/drm/i915/i915_params.c > @@ -184,7 +184,8 @@ static __always_inline void _print_param(struct > drm_printer *p, > else if (!__builtin_strcmp(type, "char *")) > drm_printf(p, "i915.%s=%s\n", name, *(const char **)x); > else > - BUILD_BUG(); > + WARN_ONCE(1, "no printer defined for param type %s (i915.%s)\n", > + type, name); > } > > /** > -- > 2.11.0 > _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx