[Intel-gfx] [PATCH 1/2] drm/i915: Ensure _print_param() builds with Clang
Chris Wilson
chris at chris-wilson.co.uk
Tue Oct 16 15:16:46 UTC 2018
Quoting Jani Nikula (2018-10-16 13:29:37)
> 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 <natechancellor at 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: http://mid.mail-archive.com/20181009171401.14980-1-natechancellor@gmail.com
> Cc: Nick Desaulniers <ndesaulniers at google.com>
> Cc: Nathan Chancellor <natechancellor at gmail.com>
> Cc: Chris Wilson <chris at chris-wilson.co.uk>
> Reported-by: Nick Desaulniers <ndesaulniers at google.com>
> Reported-by: Nathan Chancellor <natechancellor at gmail.com>
> Signed-off-by: Jani Nikula <jani.nikula at intel.com>
Fair enough,
Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
-Chris
More information about the Intel-gfx
mailing list