29 Subtle combination of files and libraries make up the C++ runtime system for kernel modules. We are dependant on the KernelModule kmod.make and CreateKModInfo.perl scripts to be exactly instep with both this library module and the libkmod module as well.
40 The trick is that the linkline links all of the developers modules. If any static constructors are used .constructors_used will be left as an undefined symbol. This symbol is exported by the cplus_start.c routine which automatically brings in the appropriate C++ _start routine. However the actual _start symbol is only required by the kmod_info structure that is created and initialized by the CreateKModInfo.perl script. If no C++ was used the _start will be an undefined symbol that is finally satisfied by the c_start module in the kmod library.