Re: Can't build loadable module for 2.6.kernel

From: Sam Ravnborg
Date: Mon Dec 12 2005 - 15:49:52 EST


On Mon, Dec 12, 2005 at 11:52:24AM -0800, Carlos Munoz wrote:
> Hi all,
>
> I hope this is the right forum for this question.
Yes.

> The makefile has the following rule to build apicnt.o:
> apicnt.o: apicnt.o.shipped
> cp apicnt.o.shipped apicnt.o

This is wrong. kbuild has knowledge how to copy a file named:
apicnt.o_shippd to apicnt.o
So you renamed the supplied .o fiel to apicnt.o_shipped and delte your
own rule.


> #
> # Makefile for the phone_mrvl driver loadable module
> #
> TARGET = phone_mrvl.o
>
> obj-$(CONFIG_PHONE_MARVELL) = phone_mrvl.o
>
> ifeq ($(CONFIG_PHONE_LEGERITY),y)
> phone_mrvl-objs = mrvphone.o slic.o legerity.o vp_hal.o sys_service.o apicnt.o apiinit.o apiquery.o vp_api.o vp_api_common.o mvutils.o
> endif
Please do:
phone_mrvl-$(CONFIG_PHONE_LEGERITY) := mrvphone.o slic.o legerity.o
phone_mrvl-$(CONFIG_PHONE_LEGERITY) += vp_hal.o sys_service.o apicnt.o
phone_mrvl-$(CONFIG_PHONE_LEGERITY) += apiinit.o apiquery.o vp_api.o
phone_mrvl-$(CONFIG_PHONE_LEGERITY) += vp_api_common.o mvutils.o

>
> ifeq ($(CONFIG_PHONE_PROSLIC),y)
> phone_mrvl-objs = mrvphone.o proslic.o
> endif
phone_mrvl-$(CONFIG_PHONE_PROSLIC) += mrvphone.o proslic.o

>
> CFLAGS += -D__linux__
> EXTRA_CFLAGS += -Idrivers/telephony/mrvphone
> EXTRA_CFLAGS += -DNDEBUG -Dlinux -D__linux__ -Dunix -DEMBED -DLINUX -DHOST_LE
>
> ifeq ($(CONFIG_PHONE_LEGERITY),y)
> EXTRA_CFLAGS += -D__LEGERITY__
> endif
> ifeq ($(CONFIG_PHONE_PROSLIC),y)
> EXTRA_CFLAGS += -D__PROSLIC__
> endif
Here you could do:
extra-cflags-$(CONFIG_PHONE_LEGERITY) += -D__LEGERITY__
extra-cflags-$(CONFIG_PHONE_PROSLIC) += -D__PROSLIC__
EXTRA_CFLAGS += $(extra-cflags-y)

Please delete the rest - it is not needed.
> all: $(TARGET)
>
> $(TARGET): $(OBJS)
> $(LD) -r $(OBJS) -o $(TARGET)
>
> clean:
> -rm -f $(TARGET) *.elf *.gdb *.o
>
> apicnt.o: apicnt.o.shipped
> cp apicnt.o.shipped apicnt.o

When you build your module use:
make -C $PATH_TO_COMPILED_KERNEL M=`pwd`

See also Documentation/kbuild/modules.txt for further reference.

Sam
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/