Re: cron job: media_tree daily build: ERRORS

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Em Fri, 19 Oct 2012 00:11:47 -0300
Mauro Carvalho Chehab <mchehab@xxxxxxxxxx> escreveu:

> Em Thu, 18 Oct 2012 19:25:50 +0200 (CEST)
> "Hans Verkuil" <hverkuil@xxxxxxxxx> escreveu:
> 
> > This message is generated daily by a cron job that builds media_tree for
> > the kernels and architectures in the list below.
> > 
> > Results of the daily build of media_tree:
> > 
> > date:        Thu Oct 18 19:00:14 CEST 2012
> > git hash:    ff30d37083096acb56fb6edc0209d7ba36731a55
> > gcc version:      i686-linux-gcc (GCC) 4.7.1
> > host hardware:    x86_64
> > host os:          3.4.07-marune
> > 
> > linux-git-arm-eabi-davinci: ERRORS
> ...
> ...ERRORS
> 
> I fixed today part of the issues by correcting the linux/Makefile. Now, the tarball
> generated at linuxtv.org site will have everything needed.
> 
> However:
> 
> The UABI patches deadly-broke our out-of-tree building system. One of the premises
> there is that there will be just one file with the same inside the entire media
> tree. It was never a problem before to do it, as it is not allowed to have two
> drivers for the same thing.
> 
> The UABI patches did something weird, though: for some files, there are now _two_versions_
> of the same API file, e. g. (from linux/Makefile):
> 
> # Both Kernelspace and Userspace API
> TARDIR += include/linux/dvb/			include/uapi/linux/dvb/
> TARFILES += include/linux/usb/video.h		include/uapi/linux/dvb/video.h
> TARFILES += include/media/v4l2-subdev.h		include/uapi/linux/v4l2-subdev.h
> TARFILES += include/media/v4l2-common.h		include/uapi/linux/v4l2-common.h
> TARFILES += include/media/v4l2-mediabus.h	include/uapi/linux/v4l2-mediabus.h
> 
> Basically, all headers that used to have if __KERNEL__ inside were now converted
> into two files, one with the "kernel" header, and another one with the pure userspace
> version.
> 
> That violates the previous rule imposed by the out-of-tree building system.
> 
> Fixing it is not a trivial task, as it requires to replace this part of
> v4l/Makefile to something more smart:
> 	
> links::
> 	@echo creating symbolic links...
> 	@find ../linux/drivers/media -name '*.[ch]' -type f -print0 | xargs -0n 255 ln -sf --target-directory=.
> 	@find ../linux/sound -name '*.[ch]' -type f -print0 | xargs -0n 255 ln -sf --target-directory=.
> 	@find ../linux/drivers/staging -name '*.[ch]' -type f -print0 | xargs -0n 255 ln -sf --target-directory=.
> 	@find ../linux/drivers/misc -name '*.[ch]' -type f -print0 | xargs -0n 255 ln -sf --target-directory=.
> 
> So that would, for example, detect those duplicated files and select just
> the Kernel one, and add a "-I ../linux/include", in order to allow those
> includes to get the *uapi/* one.
> 
> Another alternative would be to not create links for *.h at all.
> 
> The build system logic could also be completely replaced by one that works with subdirs.

Forget about the above.... Mental note to myself: don't try to fix anything late night
after an stressing day ;)

The reason for the breakage is right; the diagnosis is wrong. The files at linux/include
aren't c/c to v4l/ dir; they're linked with -I.

Yet, compiling here are giving several errors:

/home/v4l/media_build/v4l/dvb_frontend.c: In function 'dvb_frontend_clear_cache':
/home/v4l/media_build/v4l/dvb_frontend.c:952:17: error: 'NO_STREAM_ID_FILTER' undeclared (first use in this function)
/home/v4l/media_build/v4l/dvb_frontend.c:952:17: note: each undeclared identifier is reported only once for each function it appears in
/home/v4l/media_build/v4l/dvb_frontend.c:969:11: error: 'LNA_AUTO' undeclared (first use in this function)
/home/v4l/media_build/v4l/dvb_frontend.c: At top level:
/home/v4l/media_build/v4l/dvb_frontend.c:1025:3: error: 'DTV_STREAM_ID' undeclared here (not in a function)
/home/v4l/media_build/v4l/dvb_frontend.c:1025:2: error: array index in initializer not of integer type
/home/v4l/media_build/v4l/dvb_frontend.c:1025:2: error: (near initialization for 'dtv_cmds')
/home/v4l/media_build/v4l/dvb_frontend.c:1026:3: error: 'DTV_DVBT2_PLP_ID_LEGACY' undeclared here (not in a function)
/home/v4l/media_build/v4l/dvb_frontend.c:1026:2: error: array index in initializer not of integer type
/home/v4l/media_build/v4l/dvb_frontend.c:1026:2: error: (near initialization for 'dtv_cmds')
/home/v4l/media_build/v4l/dvb_frontend.c:1027:3: error: 'DTV_LNA' undeclared here (not in a function)
/home/v4l/media_build/v4l/dvb_frontend.c:1027:2: error: array index in initializer not of integer type
/home/v4l/media_build/v4l/dvb_frontend.c:1027:2: error: (near initialization for 'dtv_cmds')
/home/v4l/media_build/v4l/dvb_frontend.c:1060:2: error: array index in initializer not of integer type
/home/v4l/media_build/v4l/dvb_frontend.c:1060:2: error: (near initialization for 'dtv_cmds')

Very likely becase gcc is using the DVB uapi under /usr/include, instead of the one at
the building system.


Maybe that's because of the very large number of include dirs added by our building
system:

  gcc -I/home/v4l/media_build/v4l -Wp,-MD,/home/v4l/media_build/v4l/.dw2102.o.d  -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.7.2/include -I/home/v4l/media_build/v4l/../linux/include -I/usr/src/kernels/3.6.1-1.fc17.x86_64/arch/x86/include -Iarch/x86/include/generated -Iinclude  -include /usr/src/kernels/3.6.1-1.fc17.x86_64/include/linux/kconfig.h -I/home/v4l/media_build/v4l/ -I/home/v4l/media_build/v4l/../linux/include -D__KERNEL__ -I/home/v4l/media_build/v4l/ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -m64 -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -fstack-protector -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_AVX=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -Wfram!
 e-larger-than=2048 -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -g -pg -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -Idrivers/media/i2c -Idrivers/media/i2c -I/usr/src/kernels/3.6.1-1.fc17.x86_64/drivers/media/dvb-core -I/usr/src/kernels/3.6.1-1.fc17.x86_64/drivers/media/dvb-frontends -I/usr/src/kernels/3.6.1-1.fc17.x86_64/drivers/media/dvb-core/ -I/usr/src/kernels/3.6.1-1.fc17.x86_64/drivers/media/tuners/ -I/usr/src/kernels/3.6.1-1.fc17.x86_64/drivers/media/dvb-core -I/usr/src/kernels/3.6.1-1.fc17.x86_64/drivers/media/dvb-frontends -I/usr/src/kernels/3.6.1-1.fc17.x86_64/drivers/media/tuners -Idrivers/media/dvb-core/ -Idrivers/media/dvb-frontends/ -Idrivers/media/tuners/ -Idrivers/media/dvb-core -I/usr/src/kernels/3.6.1-1.fc17.x86_64/drivers/media/i2c/soc_camera -I/usr/src/kernels/3.6.1-1.fc17.x86_64/drivers/media/i2c -Idrivers/media/dvb-core/ -Idrivers/media/dvb-frontends/ -Idriv!
 ers/media/tuners -Idrivers/media/dvb-core/ -Idrivers/media/common/b2c2/ -Idrivers/media/dvb-core/ -Idrivers/media/dvb-frontends/ -Idrivers/media/dvb-core/ -Idrivers/media/dvb-frontends -Idrivers/media/dvb-core -Idrivers/media/dvb-frontends -Idrivers/media/dvb-core/ -Idrivers/media/dvb-frontends/ -Idrivers/media/dvb-core/ -Idrivers/media/dvb-frontends/ -Idrivers/media/tuners/ -Idrivers/staging/media/cxd2099/ -Idrivers/media/dvb-core/ -Idrivers/media/dvb-frontends/ -Idrivers/media/tuners/ -Idrivers/staging/media/cxd2099/ -I/usr/src/kernels/3.6.1-1.fc17.x86_64/drivers/media/i2c -I/usr/src/kernels/3.6.1-1.fc17.x86_64/drivers/media/i2c -I/usr/src/kernels/3.6.1-1.fc17.x86_64/drivers/media/tuners -I/usr/src/kernels/3.6.1-1.fc17.x86_64/drivers/media/dvb-core -I/usr/src/kernels/3.6.1-1.fc17.x86_64/drivers/media/dvb-frontends -Idrivers/media/dvb-core -Idrivers/media/dvb-frontends -Idrivers/media/tuners -Idrivers/media/i2c -Idrivers/media/tuners -Idrivers/media/dvb-core -Idrivers/medi!
 a/dvb-frontends -Idrivers/media/i2c -Idrivers/media/tuners -Idrivers/me!
 dia/dvb-core -Idrivers/media/dvb-frontends -Idrivers/media/i2c -Idrivers/media/tuners -Idrivers/media/dvb-core -Idrivers/media/dvb-frontends -Idrivers/media/dvb-core -Idrivers/media/dvb-frontends -Idrivers/media/i2c -Idrivers/media/tuners -I/usr/src/kernels/3.6.1-1.fc17.x86_64/drivers/media/i2c -I/usr/src/kernels/3.6.1-1.fc17.x86_64/drivers/media/tuners -I/usr/src/kernels/3.6.1-1.fc17.x86_64/drivers/media/dvb-core -I/usr/src/kernels/3.6.1-1.fc17.x86_64/drivers/media/dvb-frontends -I/usr/src/kernels/3.6.1-1.fc17.x86_64/drivers/media/i2c -I/usr/src/kernels/3.6.1-1.fc17.x86_64/drivers/media/tuners -I/usr/src/kernels/3.6.1-1.fc17.x86_64/drivers/media/dvb-core -I/usr/src/kernels/3.6.1-1.fc17.x86_64/drivers/media/dvb-frontends -Idrivers/media/dvb-core/ -Idrivers/media/dvb-core/ -Idrivers/media/dvb-frontends -I/usr/src/kernels/3.6.1-1.fc17.x86_64/drivers/media/dvb-core -I/usr/src/kernels/3.6.1-1.fc17.x86_64/drivers/media/dvb-frontends/ -I/usr/src/kernels/3.6.1-1.fc17.x86_64/driver!
 s/media/tuners -I/usr/src/kernels/3.6.1-1.fc17.x86_64/drivers/media/pci/ttpci -I/usr/src/kernels/3.6.1-1.fc17.x86_64/drivers/media/dvb-core -I/usr/src/kernels/3.6.1-1.fc17.x86_64/drivers/media/dvb-frontends -I/usr/src/kernels/3.6.1-1.fc17.x86_64/drivers/media/tuners -Idrivers/media/dvb-core -Idrivers/media/common/siano -Idrivers/media/dvb-core/ -Idrivers/media/common/b2c2/ -I/usr/src/kernels/3.6.1-1.fc17.x86_64/drivers/media/usb/gspca -I/usr/src/kernels/3.6.1-1.fc17.x86_64/drivers/media/usb/gspca -I/usr/src/kernels/3.6.1-1.fc17.x86_64/drivers/media/usb/gspca -Idrivers/media/tuners -Idrivers/media/dvb-core -Idrivers/media/dvb-frontends -Idrivers/media/i2c -Idrivers/media/i2c -Idrivers/media/tuners -Idrivers/media/dvb-core -Idrivers/media/dvb-frontends -Idrivers/media/i2c -Idrivers/media/tuners -Idrivers/media/dvb-core -Idrivers/media/dvb-frontends -Idrivers/media/i2c -Idrivers/media/tuners -Idrivers/media/i2c -Idrivers/media/i2c -Idrivers/media/tuners -Idrivers/media/dvb-cor!
 e -Idrivers/media/dvb-frontends -Idrivers/media/usb/dvb-usb -Idrivers/m!
 edia/i2c -Idrivers/media/tuners -Idrivers/media/dvb-core -Idrivers/media/dvb-frontends -Idrivers/media/i2c -Idrivers/media/tuners -Idrivers/media/dvb-core -Idrivers/media/dvb-frontends -Idrivers/media/dvb-core -Idrivers/media/common/siano -Idrivers/media/dvb-core -Isound -Idrivers/media/dvb-core/ -Idrivers/media/dvb-frontends/ -Idrivers/media/tuners/ -Idrivers/media/dvb-frontends -Idrivers/media/dvb-core -g -include /home/v4l/media_build/v4l/compat.h  -DMODULE  -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(dw2102)"  -D"KBUILD_MODNAME=KBUILD_STR(dvb_usb_dw2102)" -c -o /home/v4l/media_build/v4l/dw2102.o /home/v4l/media_build/v4l/dw2102.c

Maybe all of these can be fixed at: v4l/scripts/make_makefile.pl, making it to handle
the tags "ccflags-y" that are added at Makefile.media. There are, currently, 126 lines
there, where only 29 unique lines:

$ grep ccflags v4l/Makefile.media |sort|uniq
ccflags-$(CONFIG_VIDEO_GO7007_USB_S2250_BOARD:m=y) += -Idrivers/media/usb/dvb-usb
ccflags-$(CONFIG_VIDEO_OMAP3_DEBUG) += -DDEBUG
#ccflags-$(CONFIG_VIDEO_SAA7134:m=y) += -Idrivers/media/video/saa7134 -DSAA7134_MPEG_GO7007=3
ccflags-y += $(extra-cflags-y) $(extra-cflags-m)
ccflags-y += -Idrivers/media/common/b2c2/
ccflags-y += -Idrivers/media/common/siano
ccflags-y += -Idrivers/media/dvb-core
ccflags-y += -Idrivers/media/dvb-core/
ccflags-y += -Idrivers/media/dvb-core -Idrivers/media/dvb-frontends
ccflags-y += -Idrivers/media/dvb-core/ -Idrivers/media/dvb-frontends
ccflags-y += -Idrivers/media/dvb-core/ -Idrivers/media/dvb-frontends/
ccflags-y += -Idrivers/media/dvb-frontends
ccflags-y += -Idrivers/media/dvb-frontends/
ccflags-y += -Idrivers/media/i2c
ccflags-y += -Idrivers/media/tuners
ccflags-y += -Idrivers/media/tuners/
ccflags-y += -Idrivers/media/usb/dvb-usb
ccflags-y += -Idrivers/staging/media/cxd2099/
ccflags-y += -Isound
ccflags-y += -I$(srctree)/drivers/media/dvb-core
ccflags-y += -I$(srctree)/drivers/media/dvb-core/
ccflags-y += -I$(srctree)/drivers/media/dvb-frontends
ccflags-y += -I$(srctree)/drivers/media/dvb-frontends/
ccflags-y += -I$(srctree)/drivers/media/i2c
ccflags-y += -I$(srctree)/drivers/media/i2c/soc_camera
ccflags-y += -I$(srctree)/drivers/media/pci/ttpci
ccflags-y += -I$(srctree)/drivers/media/tuners
ccflags-y += -I$(srctree)/drivers/media/tuners/
ccflags-y += -I$(srctree)/drivers/media/usb/gspca

(even so, there are redundant things there).

Regards,
Mauro
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux