On Tue 19 June 2012 14:50:09 Ezequiel Garcia wrote: > Hi Hans, > > On Tue, Jun 19, 2012 at 3:34 AM, Hans Verkuil <hverkuil@xxxxxxxxx> wrote: > > Hi all, > > > > Yesterday I upgraded the gcc version I use to compile the daily build to > > 4.7.1. > > > > This causes very strange errors when compiling 2.6.39 - 3.3: > > > > FATAL: media_build/v4l/tuner: sizeof(struct i2c_device_id)=32 is not a > > modulo of the size of section __mod_i2c_device_table=18. > > Fix definition of struct i2c_device_id in mod_devicetable.h > > > > This error does not appear when compiling with gcc 4.6.3, and I see > > absolutely nothing > > wrong with mod_devicetable.h. > > > > I tried very hard to figure out what is going on and why older and newer > > kernels > > are not affected, but I still have no idea. > > > > The error itself it reported by scripts/mod/file2alias.c. I can suppress > > that error > > but that will just lead to a modpost crash later in the compile process. > > > > The tuner.o file always causes this. Commenting tuner.o in the Makefile will > > cause > > the same problems in other modules (cafe_ccic), but there are also i2c > > modules that > > compile just fine. > > > > Does anyone have an insight into this? Did something magical change in > > kernel 3.4 > > that fixed this? > > > > Perhaps this thread could be useful: > > https://lkml.org/lkml/2012/6/15/323 Yeah, I read that as well. But there there is a clear change that caused the problem. As far as I can tell include/linux/mod_devicetable.h has identical i2c_device_id structs for linux-3.0/1/2/3/4, yet all compile fine with gcc-4.6.3, but for gcc-4.7.1 only linux-3.4 compiles. I'm stumped. Regards, Hans -- 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