Welcome to the Linux Foundation Forum!

Kernel compile with static library .a problem



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/Makefile.build:298: 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.


Upcoming Training