When loading an unbundled device driver, STREAMS module, file system, or other kernel module, you may see the following error message:
kernel_module_path: undefined symbol WARNING: mod_load: cannot load module 'kernel_module_path' |
The kernel runtime linker does not recognize the new register symbol type introduced in the SC5.0 FCS compilers and assemblers for 64-bit SPARC binaries.
Workaround: You must verify that the error message was generated because the kernel runtime linker does not recognize the new register symbol type. To do this, type:
# nm kernel_module_path | grep REGI |
If this is the problem, the output from this command is a table that shows one row with 2 in the Value column and REGI in the Type column, and another row with 3 in the Value column and REGI in the Type column. An example is:
[154] | 2| 0|REGI |GLOB |0 |UNDEF | [155] | 3| 0|REGI |GLOB |0 |UNDEF | |
To correct the problem:
If you have the source code for the kernel module, recompile the kernel module with -xregs=no%appl option, or, if it is written in assembly language, assemble it with -xregsym=no option.
If you do not have the source code, contact the provider of the kernel module to report the problem.