Reputation: 3733
I am compiling the Android 2.6.35 kernel found on OMAPZoom.org and I am stuck with what I think is a silly Makefile problem.
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage
yields the following error (plus more that are related):
drivers/built-in.o: In function `dsscomp_createcomp':
drivers/video/omap2/dsscomp/device.c:175: undefined reference to `tiler_set_buf_state'
drivers/video/omap2/dsscomp/device.c has the following #include directive:
#include <mach/tiler.h>
which I believe references the following file containing the prototype:
arch/arm/mach-omap2/include/mach/tiler.h
In turn, tiler_set_buf_state is defined in:
drivers/media/video/tiler/tiler.c
The function is being used correctly, the header is included. This leads me to think the definition is not being compiled. This project is using a rather large recursive Makefile setup.
I'm not really sure what more I can put in here that will be helpful, but if there is something that would be useful ask me. I was hoping that someone could give me a push in the right direction.
Upvotes: 1
Views: 2263
Reputation: 3733
Well this is embarrassing:
There are two (relevant) branches in that repository:
p-android-omap-2.6.35
p-android-omap3-2.6.35
The first one does not work with OMAP3, or at least with the Zoom3 (board config of android_zoom3_defoncifg).
To build the kernel for the Zoom3, you must use the second (p-android-omap3-2.6.35) branch or you will get tons of build errors. Wasted most of a day re-writing "broken" code from the first branch thinking it was incorrect since I'm using an older board. Did a checkout on the correct branch and it built without any errors.
Sorry. Hopefully this will be helpful for someone else!
Upvotes: 0
Reputation: 628
What does drivers/media/video/tiler/Kconfig say? Are you sure that all of CFLAGS are set correctly? I've built an android for the omap4 platform and had to pass in this variable in my makefile : "TARGET_BOARD_PLATFORM=omap4". I haven't exactly traced where that goes.( My system too has a complicated Makefile). But you should probably make sure that ARCH_OMAP4 is set correctly somewhere in your makefile.
On my system Kconfig has:
config TILER_OMAP
tristate "OMAP TILER support"
default y
depends on ARCH_OMAP4
help
TILER driver for OMAP based boards.
config DUCATI_BUFFER_PROTECTION
tristate "OMAP DUCATI input buffer protection"
default y
depends on TILER_OMAP
help
Reserve 8MB memory for input buffer protection
Upvotes: 1