[yocto] Out-of-Tree Modules and __stack_chk_fail()

Ronald Oakes ronaldo at brc2.com
Tue Sep 13 11:55:10 PDT 2016


Furthering my investagation into why my vendor supplied kernel modules
were failing to load due to the error "Unknown symbol __stack_chk_fail
(err 0)," I conducted the following experiment:

1: I took the sample code from
poky/meta-skeleton/recipes-kernel/helo-mod and moved it into a new
layer as meta-ron/recipes-kernel/ron-mod, renaminging and modifying
the files from hello to ron as needed.

2: I added a new, otherwise dead, function to the (now named) ron.c
function that made a call to __stack_check_fail, which I declared as
"extern."

3: Included it into a new image the same way I've been pulling my
vendor kernel modules in.

When I did this, and ran the resulting image in qemu, I confirmed that
when I attempt to insmod the installed ron.ko, I get the same "Unknown
symbol __stack_chk_fail (err 0)" error.  This was built with the
unmodified Makefile (other than changing the target name) supplied in
the skeleton example, so it should have been pulling in all of the
libraries etc.

So, it appears that even following this procedure the functions from
panic.c aren't getting included in the built module.  And, while I can
continue to work around this with an empty stub version of
__stack_chk_fail(), this leaves me with a module that responds to
stack issues by ignoring them and continuing rather than causing a
kernel panic, which I suspect would be a much more useful behavior in
the long term.

Any ideas how to proceed?

Ron Oakes



More information about the yocto mailing list