Hi,

General question.  

Is it valid to cross compile an out of tree driver with a different version 
of the cross compiler/toolchain than the kernel was compiled with? If not, 
where do you draw the line?

Recently we re-compiled an out of tree WiFi driver for the BBB on a PC host 
machine, pointing it at the kernel source tree with all of the build 
products/generated files in it. The kernel was built with the 6.4.x Linaro 
toolchain, however the developer built the WiFi driver with the Linaro 5.4 
toolchain.  The developer was able to deploy the WiFi driver to the target, 
and it worked just fine.

I mentioned to the developer that, in general, it's probably safer to use 
the same brand and version of the cross toolchain to build the driver and 
kernel, but now I'm so sure that this has to be the case.  For instance, If 
the function call interface is standard for all versions of the Linaro 
toolchain, then maybe this doesn't matter.  However, if version 4.x uses 
one set of registers to pass function parameters to a driver, for instance, 
and the driver is compiled with a different version of the compiler which 
expects the parameters to be passed in a different set of registers, then 
there would be an issue.

What's the rule of thumb here or what's a good reference to better 
understand the interfaces?

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/3c60199f-1830-4455-acbd-7f24bf46db01%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to