issue with linux/version.h in 3.7 packages

Josh Stone jistone at redhat.com
Mon Oct 8 20:09:14 UTC 2012


Hi,

I was just trying to track down why my modules started giving weird
errors on rawhide, like:

  error: "LINUX_VERSION_CODE" is not defined [-Werror=undef]
  error: "KERNEL_VERSION" is not defined [-Werror=undef]
  error: missing binary operator before token "("

It seems that "include/linux/version.h" has moved now to a different
path, "include/generated/uapi/linux/version.h".  This should be
harmless, as the new path is added with -I too.

However, kernel.spec does this:

>     # Make sure the Makefile and version.h have a matching timestamp so that
>     # external modules can be built
>     touch -r $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/Makefile $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include/linux/version.h

And since -Iinclude comes before -Iinclude/generated/uapi, then my
"#include <linux/version.h>" picks up the touched-empty file. :(

So I suggest this touch command needs to be updated to the generated
path, and perhaps also give it a -c to avoid ever creating a file.

Thanks,
Josh Stone


More information about the kernel mailing list