Catch kernel module undefined symbols at build time
Many times while developing, it's possible to end up using an undefined symbol in the system. While genunix and unix check one another out by creating a shared library and linking against one another, the same cannot be said for regular kernel modules. In those cases, undefined symbols lead to krtld just complaining about the module and refusing to load it.
To minimize disruption to the system and to keep the existing system as straightforward as possible I put together something that uses mapfiles to describe the symbols that are provided by various modules or interfaces. This allows us to opt modules into this system. To prove that this works, I've prototyped this against all of the Intel networking kernel modules (i40e, ixgbe, igb, e1000g).
The README in the source for the change describes the full details of how to add additional mapfiles and to opt modules into this system.
Updated by Electric Monk about 3 years ago
- Status changed from New to Closed
commit 3e3ca1ce307a7d82ef007b435088f3f04a0f3e65 Author: Robert Mustacchi <firstname.lastname@example.org> Date: 2019-06-14T21:23:50.000Z 10362 Catch kernel module undefined symbols at build time Reviewed by: Jerry Jelinek <email@example.com> Reviewed by: Patrick Mooney <firstname.lastname@example.org> Reviewed by: Gergő Doma <email@example.com> Reviewed by: Garrett D'Amore <firstname.lastname@example.org> Approved by: Garrett D'Amore <email@example.com>