Operating System - HP-UX
1748230 Members
4069 Online
108759 Solutions
New Discussion юеВ

DLKM, Overrun of module DLT or long branch stub table

 
Ian Norton
Advisor

DLKM, Overrun of module DLT or long branch stub table

Hello,

I have a 11.31/11.23 kernel module that I am adding DLKM support to, I've been able to build the module and it still works as a static module but when I try to load it dynamically I see this in the kernel logs:

WARNING: MOD: mod_obj_relone: Overrun of module DLT or long branch stub table for module /stand/current/mod/mymod.
NOTICE: MOD: mod_obj_load: Relocation in module /stand/current/mod/mymod failed.

I have read recently that this *might* be due to having too large/many statics or perhaps bad compiler flags. My compiler flags are the same as those produced by the sample drivers in the DDK except (for some reason unknown to me) +DSblended is added just before +DSitanium2

How can I figure out if this is due to going past some size boundary or not?

Thanks

Ian
20 REPLIES 20
Ian Norton
Advisor

Re: DLKM, Overrun of module DLT or long branch stub table

I should add that the sample drivers do all load properly.
Dennis Handly
Acclaimed Contributor

Re: DLKM, Overrun of module DLT or long branch stub table

How big is the object file? Can you attach it here?
Are you using +Oshortdata=0 +kernel?
What does this show?
elfdump -S -h module
Ian Norton
Advisor

Re: DLKM, Overrun of module DLT or long branch stub table

The object is 120616 bytes,
elfdump output below:
--->8---
Index Type Vaddr Offset Size Name

1 UNWI 0000000000000000 0000000000000040 000005e8 .IA_64.unwind
2 RELA 0000000000000000 0000000000000628 000011b8 .rela.IA_64.unwind
3 PBIT 0000000000000000 00000000000017e0 00000ab0 .IA_64.unwind_info
4 RELA 0000000000000000 0000000000002290 000005e8 .rela.IA_64.unwind_info
5 HP_O 0000000000000000 0000000000002878 00000608 .HP.opt_annot
6 RELA 0000000000000000 0000000000002e80 00000030 .rela.HP.opt_annot
7 PBIT 0000000000000000 0000000000002eb0 00002196 .rodata
8 RELA 0000000000000000 0000000000005048 000004c8 .rela.rodata
9 PBIT 0000000000000000 0000000000005520 0000a5b0 .text
10 RELA 0000000000000000 000000000000fad0 00003cd8 .rela.text
11 PBIT 0000000000000000 00000000000137b0 00000200 .data
12 RELA 0000000000000000 00000000000139b0 000001f8 .rela.data
13 PBIT 0000000000000000 0000000000013bb0 00000290 .data.KC_META
14 RELA 0000000000000000 0000000000013e40 00000018 .rela.data.KC_META
15 PBIT 0000000000000000 0000000000013e58 00000008 .data.KC_META_PTR
16 RELA 0000000000000000 0000000000013e60 00000018 .rela.data.KC_META_PTR
17 NOBI 0000000000000000 0000000000013e78 00000008 .bss
18 NOTE 0000000000000000 0000000000013e78 00001d08 .note
19 PBIT 0000000000000000 0000000000015b80 0000151a .debug_line
20 RELA 0000000000000000 000000000001709c 000005e8 .rela.debug_line
21 PBIT 0000000000000000 0000000000017688 00001f50 .debug_actual
22 RELA 0000000000000000 00000000000195d8 000005e8 .rela.debug_actual
23 PBIT 0000000000000000 0000000000019bc0 0000010e .debug_procs_abbrev
24 PBIT 0000000000000000 0000000000019cce 00000daa .debug_procs_info
25 RELA 0000000000000000 000000000001aa78 00000d38 .rela.debug_procs_info
26 STRT 0000000000000000 000000000001b7b0 00000833 .strtab
27 SYMT 0000000000000000 000000000001bfe8 00000d38 .symtab
28 STRT 0000000000000000 000000000001cd20 000001b6 .shstrtab
29 DLKM 0000000000000000 000000000001ced8 0000001b .shtmod
30 RELA 0000000000000000 000000000001cef4 00000018 .rela.shtmod
31 PBIT 0000000000000000 000000000001cf10 00000018 .IA_64.unwind_hdr
Ian Norton
Advisor

Re: DLKM, Overrun of module DLT or long branch stub table

my compiler flags are:-

cc +DD64 +DSblended -c -Ae +DD64 +O2 +DSitanium2 +kernel +objstatvars +Olit=all +Oshortdata=0 +W863 -DACLS -DAUDIT -DHPONCPLUS -DIDDS -DIPSEC -DIVT_INTERCEPT -DLWSYSCALL -DPGPROF -DSTCP -D_CLEAN_BE -D_HPUX_SOURCE -D_KERNEL -D_LARGEFILE64_SOURCE -D_NO_USER_PROTOS -D_UNSUPPORTED -D__BIGMSGQUEUE_ENABLED -D__ROSE__ -U__hp9000s700 -D_XPG4_EXTENDED -DKERNEL_DEBUGGER -DVARIABLE_UAREA -D_SYSCALL_64 -D__NO_PA_HDRS
Dennis Handly
Acclaimed Contributor

Re: DLKM, Overrun of module DLT or long branch stub table

>I have a 11.31/11.23 kernel module

You can't use the same module for both.
What version of aC++ are you using? And what HP-UX version?

>The object is 120616 bytes

Can you please attach a gzipped copy of your module.
Ian Norton
Advisor

Re: DLKM, Overrun of module DLT or long branch stub table

Hello,

> have a 11.31/11.23 kernel module

Yes, I have two different systems that this builds on and various #ifdefs to address the DDK differences. At the moment I'm only trying to get it to work on 11.23.

> gzip copy,

Sorry; Unfortunately I can't release the object file.

Thank's for your time.

Ian
Dennis Handly
Acclaimed Contributor

Re: DLKM, Overrun of module DLT or long branch stub table

>I can't release the object file.

Then can you use "elfdump -r module" and attach that output.
Ian Norton
Advisor

Re: DLKM, Overrun of module DLT or long branch stub table

Thanks, elfdump -r output attached,

Dennis Handly
Acclaimed Contributor

Re: DLKM, Overrun of module DLT or long branch stub table

What does this show?
elfdump -n .shtmod -s module

Again, what version of aC++ are you using?