January 19, 2010 posted by Julio Merino
As of past night, the macppc and shark ports have support for the new-style kernel modules. I've added support for these through a workaround in the build system, which makes the compiler generate long jumps for all calls in the code, avoiding unsupported ELF relocation types. This allows us to use the modules even if the kernel-level loader is not able to deal with such relocations. The kernel-level support is now enabled by default in macppc and shark GENERIC kernels.
We'll need to revisit this in the future and implement real support for dealing with those relocation types. Why? The modules built with this flag are slower than they should be... but at least they do work.