ClangBuiltLinux / linux

Linux kernel source tree
Other
241 stars 14 forks source link

__compiletime_assert in drivers/media/platform/ti-vpe/cal-camerarx.c #1116

Closed nathanchance closed 3 years ago

nathanchance commented 4 years ago

x86_64 allyesconfig with -O3:

ld.lld: error: undefined symbol: __compiletime_assert_280
>>> referenced by cal-camerarx.c
>>>               media/platform/ti-vpe/cal-camerarx.o:(cal_write_field) in archive drivers/built-in.a

ld.lld: error: undefined symbol: __compiletime_assert_284
>>> referenced by cal-camerarx.c
>>>               media/platform/ti-vpe/cal-camerarx.o:(cal_write_field) in archive drivers/built-in.a

My reproduction script with a simplified list of configs needed to trigger this:

#!/usr/bin/env bash

set -x

function kmake() {(
    PATH=${HOME}/cbl/toolchains/llvm-binutils/bin:${PATH} \
        make \
        -C "${HOME}"/src/linux-next \
        -skj"$(nproc)" \
        LLVM=1 \
        KCFLAGS=-O3 \
        O=out/x86_64 \
        "${@}"
)}

kmake distclean defconfig

scripts/config \
    --file "${HOME}"/src/linux-next/out/x86_64/.config \
    -d ACPI \
    -d MEDIA_SUPPORT_FILTER \
    -e MEDIA_SUPPORT \
    -e MEDIA_CAMERA_SUPPORT \
    -e VIDEO_DEV \
    -e VIDEO_V4L2 \
    -e COMPILE_TEST \
    -e V4L_PLATFORM_DRIVERS \
    -e VIDEO_TI_CAL

kmake olddefconfig bzImage

This is probably low priority due to the -O3. Bisect converged on https://git.kernel.org/next/linux-next/c/9d551891473e35eae4ea3b21cac30136f455d405 but that does not see right.

$ git bisect log
# bad: [01830e6c042e8eb6eb202e05d7df8057135b4c26] Add linux-next specific files for 20200731
# good: [e2c46b5762c616c249201688d3b9846627f78d2c] Merge tag 'block-5.8-2020-07-30' of git://git.kernel.dk/linux-block
git bisect start '01830e6c042e8eb6eb202e05d7df8057135b4c26' 'e2c46b5762c616c249201688d3b9846627f78d2c'
# bad: [553a4905a775dedea7677481575f92ba8bac2421] Merge remote-tracking branch 'crypto/master'
git bisect bad 553a4905a775dedea7677481575f92ba8bac2421
# good: [7637c0c14a0f0f42956c77b4c6e88d5f53e9feaf] Merge remote-tracking branch 'hid/for-next'
git bisect good 7637c0c14a0f0f42956c77b4c6e88d5f53e9feaf
# good: [49b0aa1b6585705de4a08971602cd2726d9027f0] net/ncsi: use eth_zero_addr() to clear mac address
git bisect good 49b0aa1b6585705de4a08971602cd2726d9027f0
# bad: [767c8f4324ef63b40aa98e66c1a54d7489e6d19b] Merge remote-tracking branch 'swiotlb/linux-next'
git bisect bad 767c8f4324ef63b40aa98e66c1a54d7489e6d19b
# bad: [8f2a4a9d5ff5202d0b3e3a144ebb9b67aabadd29] media: dvbdev.h: keep * together with the type
git bisect bad 8f2a4a9d5ff5202d0b3e3a144ebb9b67aabadd29
# good: [6ff1d7260693cad1e06c24f99dc2f4d0cebb2589] media: ti-vpe: cal: Remove needless variable initialization
git bisect good 6ff1d7260693cad1e06c24f99dc2f4d0cebb2589
# bad: [46c308a964fe6515845eacb8765a2c2e2b8c1570] media: staging: rkisp1: stats: replace spin_lock_irqsave with spin_lock_irq
git bisect bad 46c308a964fe6515845eacb8765a2c2e2b8c1570
# good: [2355593496c5556ef6cecaa87d7add702882c060] media: ti-vpe: cal: Rename cal_create_instance() to cal_ctx_create()
git bisect good 2355593496c5556ef6cecaa87d7add702882c060
# good: [7e75b1502f65d70088f522cb4474502644b44428] media: ti-vpe: cal: Remove isvcirqset() and isportirqset() macros
git bisect good 7e75b1502f65d70088f522cb4474502644b44428
# good: [cd2144603ad3276cb0379f5f70d85cedcc68ecb4] media: ti-vpe: cal: Inline cal_camerarx_max_lanes() in its only caller
git bisect good cd2144603ad3276cb0379f5f70d85cedcc68ecb4
# good: [f4d9837d872523e8ef8bd1e0156eb90e2fed8dc3] media: ti-vpe: cal: Use 'unsigned int' type instead of 'unsigned'
git bisect good f4d9837d872523e8ef8bd1e0156eb90e2fed8dc3
# bad: [d373018f3abda9d2446a059133cd6425f56b3b51] media: ti-vpe: cal: Move CAL I/O accessors to cal.h
git bisect bad d373018f3abda9d2446a059133cd6425f56b3b51
# bad: [9d551891473e35eae4ea3b21cac30136f455d405] media: ti-vpe: cal: Split video node handling to cal-video.c
git bisect bad 9d551891473e35eae4ea3b21cac30136f455d405
# first bad commit: [9d551891473e35eae4ea3b21cac30136f455d405] media: ti-vpe: cal: Split video node handling to cal-video.c
nathanchance commented 3 years ago

This is not reproducible on -next anymore with LLVM 13. Additionally, I think that this patch would resolve any issues.