Модифицирую потихоньку ядро, необходимо управлять несколькими драйверами по ioctl. Один модифицировал нормально - работает. Внес необходимые изменения, запускаю компиляцию и вижу:
Код:
$ make uImage
CHK include/linux/version.h
SPLIT include/linux/autoconf.h -> include/config/*
SYMLINK include/asm-arm/arch -> include/asm-arm/arch-davinci
make[1]: `arch/arm/kernel/asm-offsets.s' is up to date.
make[1]: `include/asm-arm/mach-types.h' is up to date.
CHK include/linux/compile.h
CHK usr/initramfs_list
LD drivers/media/video/davinci/built-in.o
drivers/media/video/davinci/davinci_capture.o(.text+0x94): In function `device_ioctl':
davinci_vpfe.c: multiple definition of `device_ioctl'
drivers/media/video/davinci/mt9t001.o(.text+0x3178):mt9t001.c: first defined here
arm_v5t_le-ld: Warning: size of symbol `device_ioctl' changed from 160 in drivers/media/video/davinci/mt9t001.o to 84 in drivers/media/video/davinci/davinci_capture.o
drivers/media/video/davinci/davinci_capture.o(.data+0x1464): multiple definition of `Fops'
drivers/media/video/davinci/mt9t001.o(.data+0x0): first defined here
make[4]: *** [drivers/media/video/davinci/built-in.o] Error 1
make[3]: *** [drivers/media/video/davinci] Error 2
make[2]: *** [drivers/media/video] Error 2
make[1]: *** [drivers/media] Error 2
make: *** [drivers] Error 2
Насколько я понимаю, компилятору не нравится использвание функций с одним названием в двух файлах. Но это как то странно.
Кто нибудь сталкивался с подобным? Если сталкивались, как решали?
Спасибо.