Hi,
I have been reading the book "Linux Device Drivers, 2nd Edition" and have some questions about symbol versioning. In Chapter 11 it mentions that you can use the <linux/modversions.h> header file to compile your module with symbol versions enabled, so that your module will load on multiple kernels and fail if the symbol CRC's do not match. I tested this out on a simple test module, but this module fails to load unless I pass the '-f' flag to insmod (Red Hat 7.3 and 8.0).
Is there a way to compile the module so that insmod will only complain if there is a version conflict? Or do you always have to use -f in this case to force the module to load? If you have to do that, will -f still fail to load if the versioned symbols don't match?