Re: randconfig build error with next-20141020, in drivers/media/platform/marvell-ccic/mcam-core.c

From: Andreas Ruprecht
Date: Mon Oct 20 2014 - 18:57:23 EST


Hi,

after a lot of staring at the configuration it seems like this boils
down to an issue within the Kconfig constraint description.

Broken down to the important bits:

- CONFIG_VIDEO_TW68 and CONFIG_VIDEO_SAA7134 *select*
CONFIG_VIDEOBUF2_DMA_SG

- Both of these options are set to "*m*" in the configuration provided,
which means that CONFIG_VIDEOBUF2_DMA_SG will also be selected as "m".
According to Documentation/kbuild/kconfig-language.txt, line 101, "m" is
set as the minimal value for CONFIG_VIDEOBUF2_DMA_SG by the selects, and
as no other options select it as "y", it stays "m".

- CONFIG_VIDEO_CAFE_CCIC is set to "*y*".
The header file at drivers/media/platform/marvell-ccic/mcam-core.h then
sets an internal preprocessor variable in line 28:

#if IS_ENABLED(CONFIG_VIDEOBUF2_DMA_SG)
#define MCAM_MODE_DMA_SG 1
#endif

The source code right around line 1299 in
drivers/media/platform/marvell-ccic/mcam-core.c, where the undefined
reference occurs, depends on MCAM_MODE_DMA_SG.

This means that CONFIG_VIDEOBUF2_DMA_SG is compiled as an LKM, thus the
reference for vb2_dma_sg_memops from mcam-core.c (which is statically
compiled) can not be resolved in the builtin.o files and vmlinux.

Unfortunately, I haven't got a solution on how to resolve that, but
maybe this summary helps someone else to come up with one.

Best regards,
Andreas

On 20.10.2014 19:52, Jim Davis wrote:
> Building with the attached random configuration file,
>
> drivers/built-in.o: In function `mcam_setup_vb2':
> /home/jim/linux/drivers/media/platform/marvell-ccic/mcam-core.c:1299: undefined
> reference to `vb2_dma_sg_memops'
> make: *** [vmlinux] Error 1
>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/