AnsweredAssumed Answered

Compile kernel module with static library (.a) problem

Question asked by Karol Murawski on Oct 23, 2019
Latest reply on Oct 29, 2019 by Bio_TICFSL



I have such a problem, maybe sheet metal but unfortunately I can't deal with it.

I have probably searched the whole Internet but unfortunately I have not found a solution to my problem.


Well, I'm preparing a kernel for an embedded device. Until now, the kernel compiled without any problem until the patch.


Well, patch updates one of the drivers and adds a static library with the extension .a to Makefile


Unfortunately, I get an error during compilation.


And now with more.

Well, the patch applied to the file "/drivers/video/fbdev/mxc/mxc_hdmi.c" completes the code with references

to two functions called kill_firmiware and get_firmware.


Patch also edits the Makefile file by adding a static library there.

-obj-$(CONFIG_FB_MXC_HDMI) += mxc_hdmi.o

+obj-$(CONFIG_FB_MXC_HDMI) += mxc_hdmi.o libfw.a

(i.e. it adds at the end of line libfw.a)


I see this message during compilation


scripts/ target 'drivers/video/fbdev/mxc/libfw.a' doesn't match the target pattern

  Building modules, stage 2.

  MODPOST 274 modules

ERROR: "kill_firmware" [drivers/video/fbdev/mxc/mxc_hdmi.ko] undefined!

ERROR: "get_firmware" [drivers/video/fbdev/mxc/mxc_hdmi.ko] undefined!

scripts/Makefile.modpost:91: recipe for target '__modpost' failed

make[1]: *** [__modpost] Error 1

Makefile:1205: recipe for target 'modules' failed


I uploaded the file with the library to a common directory in which both modified files are located, i.e. Makefile and driver mxc_hdmi.c.


Unfortunately, I don't know if I have placed the libfw.a file correctly :(. I know that if I delete this file, I get a message that it can't find the library file at all (so it's probably ok here)


Can the libfw.a library not work because it is compiled for another linux version ??

But for the same architecture. Even on the same processor.


Please help. :) Because I got stuck working on this problem and unfortunately

I don't know what to do next.