RE: Current media_build doesn't succeed building on kernel 3.1.10

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

 




Martin Burnicki <martin.burnicki@xxxxxxxxxxxx> wrote:
Hi,
> 
> Mauro Carvalho Chehab wrote:
> > Em Sun, 30 Sep 2012 20:52:42 +0200
> >
> > Martin Burnicki <martin.burnicki@xxxxxxxxxxxx> escreveu:
> > > Hi all,
> > >
> > > is anybody out there who can help me with the media_build system? 
> > > I'm trying to build the current modules on an openSUSE 12.1 system 
> > > (kernel 3.1.10, x86_64), but I'm getting compilation errors because 
> > > the s5k4ecgx driver uses function devm_regulator_bulk_get() which 
> > > AFAICS has been introduced in kernel 3.4 only. When I run the 
> > > ./build script compilation stops with these messages:
> > >
> > >  CC [M]  /root/projects/media_build/v4l/s5k4ecgx.o
> > > media_build/v4l/s5k4ecgx.c: In function 's5k4ecgx_load_firmware':
> > > media_build/v4l/s5k4ecgx.c:346:2: warning: format '%d' expects 
> > > argument of \ type 'int', but argument 4 has type 'size_t' 
> > > [-Wformat]
> > > media_build/v4l/s5k4ecgx.c: In function 's5k4ecgx_probe':
> > > media_build/v4l/s5k4ecgx.c:977:2: error: implicit declaration of \
> > >     function 'devm_regulator_bulk_get'
> > > [-Werror=implicit-function-declaration] cc1: some warnings being 
> > > treated as errors
> >
> > Those are warnings. It wil compile if you disable 
> > -Werror=implicit-function-declaration.
> 
> Hm, yes. Even though the module would finally not load due to "missing symbols" this won't matter since I don't need this module. So I suppose I need something like
> 
> EXTRA_CFLAGS=-Wno-error=implicit-function-declaration
> 
> to let this be treated like a warning and thus the build process will continue. However, I'm trying to use the ./build script from
> 
> git clone git://linuxtv.org/media_build.git
> 
> which seems to be best practice to get new modules added to an older kernel. 
> Can you or someone else tell me how to pass these EXTRA_CFLAGS to the ./build script?
> 
> I've tried several ways without success.
> 
> Martin
>

I've had the same problem here trying to get it to run on 3.2 kernel Ubuntu 12.04.  And new 3.4 and 3.5 kernels worked but I had other problems with stability so need this to build.

Watch out with that -Wno-error=implicit-function-declaration as it is not supported by gcc.  The gcc documentation says there is no 'no-error' version of this warning option.  So I'm not 100% sure how to turn these errors back into warnings.

Anyway I have found another quick solution to the problems that worked for me.

These are the steps I did:
Load up a terminal windows and start the build as normal.  (you may want to start with a fresh media build folders)
git clone git://linuxtv.org/media_build.git
cd media_build 
./build

Then as soon as it starts building .o files load a second terminal window and do the following:
cd media_build/v4l
nano s5k4ecgx.c

Now find the line with 'devm_regulator_bulk_get' function call and either comment or delete this line and the line below (it flows onto two lines)
Save this change and wait for the build to complete as normal

This is a very temp fix but it will at least let you build.  If you run build again it will overwrite the s5k4ecgx.c file with the incompatible one.

If it's not a simple change to suppress these errors then it might be better to either patch s5k4ecgx.c or somewhere else to detect the kernel version and not compile those lines or the whole module.  
Another option is to create a dummy function called 'devm_regulator_bulk_get' in a header somewhere.
And another simple solution is to create a diff patch to change those lines and stick that in the backports folder and set this to run on kernel 3.3 and older.

Hope this helps

Michael West



--
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