Is it possible to set CFLAGS to a linux kernel module Makefile?

前端 未结 2 679
执念已碎
执念已碎 2020-12-03 01:41

Eg: a common device module\'s Makefile

obj-m:=jc.o

default:
    $(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(shell pwd) modules
clean:
    $(MAKE) -C         


        
相关标签:
2条回答
  • 2020-12-03 02:01

    -O2 would be an option to make (or $(MAKE), as you're using it) in what you tried. Obviously, the compiler (probably gcc) needs this flag, not make.

    Kbuild understands a make variable named CFLAGS_modulename.o to add specific C flags when compiling this unit. In your case, your module object will be jc.o, so you can specify:

    CFLAGS_jc.o := -O2
    

    and it should work. Add V=1 to your $(MAKE) lines to get a verbose output and you should see -O2 when jc.c is being compiled.

    You can find more about compiling modules in the official documentation.

    0 讨论(0)
  • 2020-12-03 02:01

    You can also use

    ccflags-y := -O2
    

    This will be applied to all of the source files compiled for your module with the Makefile. This is indirectly documented in the link provided by eepp in Section 4.2

    0 讨论(0)
提交回复
热议问题