Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 6 Sep 2018 18:57:49 +0700
From:      Eugene Grosbein <eugen@grosbein.net>
To:        freeuser <freebsduser@gmx.com>, freebsd-hackers@freebsd.org
Subject:   Re: kernel module linking (general, ipfw table, netgraph)
Message-ID:  <5B91163D.9030905@grosbein.net>
In-Reply-To: <ec108831-151a-1f4b-c5ae-4b6bc31383e3@gmx.com>
References:  <ec108831-151a-1f4b-c5ae-4b6bc31383e3@gmx.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 06.09.2018 19:02, freeuser wrote:
> Hello,
> 
> I'm working on a netgraph kernel module that modifies ipfw table contents.
> But i can not load the module, because
>    kldload: an error occurred while loading the module. Please check 
> dmesg(8)
>    for more details.
> 
> dmesg informs:
> ..
> link_elf_obj: symbol add_table_entry undefined
> linker_load_file: Unsupported file type
> 
> add_table_entry is a function that modifies ipfw table, the thing is that i
> have included the relevant header files, but i don't understand how 
> should i
> deal with linking. I assumed that this function will be available for 
> module
> since "sysctl -b kern.function_list | tr '\0' '\n' | grep add_table" shows
> it.
> 
> I am building my module using /usr/src/sys/modules/netgraph/sample and
> /usr/src/sys/netgraph/ng_sample.* as templates. On the other hand, 
> ng_socket
> uses kern_kldload, "sysctl -b kern.function_list | tr '\0' '\n' | grep 
> kern_kldload"
> shows it and it works without any problems.
> 
> Why is that? What have i not noticed that must be done?

Perhaps, this is KBI mismatch due to VIMAGE kernel option
that changes symbols like add_table_entry to V_add_table_entry
and your kernel module should be built WITH_VIMAGE defined too
to be loadable to such a kernel.






Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5B91163D.9030905>