So, in the face of a technical mechanism designed to enforce the author’s beliefs about the copyright status of callers of this function, Oracle deliberately circumvent that technical mechanism by simply re-exporting the same function under a new name. It should be emphasised that calling an EXPORT_SYMBOL_GPL() function does not inherently cause the caller to become a derivative work of the kernel – it only represents the original author’s opinion of whether it would. You’d still need a court case to find out for sure. But if it turns out that the use of ktime_get() does cause a work to become derivative, Oracle would find it fairly difficult to argue that their infringement was accidental.
Aside from the obvious jab at Oracle for being an untrustworthy company, what I found interesting about this story is how legal concerns have crept all the way down to the very lowest levels of the Linux kernel.
It must be a nightmare to keep track of all this stuff and having to develop Oracle’s DTrace for Linux. You can’t just have fun coding away creating the best, most efficient, and most optimal code – nope, you have to code the best, most efficient legal workaround.