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>