elf linking problem
Sinha, Prokash
psinha at panasas.com
Fri Jan 16 05:05:30 UTC 2015
Hello,
I'm trying to find out what could be the cause of a kldload problem I'm
facing. Here is the context detail --
1. I'm building two ko module. And it has a dependency order, so when I
load the first module, it loads, and a function symbol ( F ) is defined
into kernel variable space sysctl -b kern.function_list | tr '\0' '\n' |
grep symname.
2. Now trying to load the 2nd module, and link_elf_obj flags error and
symbol undefined when freebsd10.1 is being used.
3. If I probe using the same sysctl as in step 1, I still the symbol is
defined.
/var/log/messages shows -
kernel: link_elf_obj: symbol pan_sys_once undefined
kernel: linker_load_file: Unsupported file type
The same two modules when complied using freebsd7.2, we don't see the
problem.
The question is - Is there changes along the elf formats ( in both case it
64bit), also is there any changes
In the API between those two OS version, that I need to aware of ( and
possible flags I need to set).
Using objdump -t modone.ko
00000000000fb940 g F .text 0000000000000062 pan_sys_once
In modtwo.ko it is undefined
0000000000000000 *UND* 0000000000000000 pan_sys_once
Note the objdump on freebsd 7.2, is identical. So it is defined in the
module1 as F(function), and undefined(UND) in module two.
Any suggestion, please ?
Thanks,
-prokash
More information about the freebsd-toolchain
mailing list