Operating System - HP-UX
1832978 Members
2970 Online
110048 Solutions
New Discussion

hpux 11iv1 - "Undefined symbol $$divI" when device driver loads

 
SOLVED
Go to solution
Gary Readler
Occasional Contributor

hpux 11iv1 - "Undefined symbol $$divI" when device driver loads

Hi ,
I have a device driver that we developed and have installed on
several hpux 11iv1 systems without any problems for over a year.
We recently installed the driver on another hpux 11iv1 system
and the driver fails to load with the following in the syslog.log

May 23 07:58:00 hp15 vmunix: mod_obj_load: Undefined symbol $$divI in
loadable module /stand/dlkm/mod.d/mymod.
May 23 07:58:00 hp15 vmunix: WARNING: MOD: mod_obj_load:
Processing symbol table in module /stand/dlkm/mod.d/mymod failed

When I do an nm command on /stand/vmunix on the failing system , there is no symbol for $$divI however there are several other symbols like $$div2I and $$div2U among others.

On systems where the driver installs ok there is a symbol for $$divI .

Can anyone shed any light on why this is ? Is there anything I can do to correct
this ?
Regards
Gary
2 REPLIES 2
Dennis Handly
Acclaimed Contributor
Solution

Re: hpux 11iv1 - "Undefined symbol $$divI" when device driver loads

Unfortunately I don't know the party line on this issue. Ideally if you use HP's supplied tools to create the DLKM, that symbol should be linked into it.

Note these millicode symbols are not normally needed if you optimize because the floating point unit is used.

To satisfy your unsat, you can add the following to your link line: -l:milli.a

Of course if there are symbols for $$div2I and $$div2U, you can always cast your int to a long.
Gary Readler
Occasional Contributor

Re: hpux 11iv1 - "Undefined symbol $$divI" when device driver loads

Dennis,
I did use the DLKM example code and make files as a start for the development of the driver a couple years back. I even use HP's
compiler.
So I guess its one of lifes little mysteries that we all run into on occasion.
I will try your suggestion -l:milli.a rather than change the var types because I don't know if some other kernel image will be missing those.
I'll report status when I try this.
Thanks for your help.
Regards
Gary