kernel 增加自定義巨集編譯開關
在MAKEFILE適當位置增加如下定義:
LINUXINCLUDE := \
-I$(srctree)/arch/$(hdr-arch)/include \
-Iarch/$(hdr-arch)/include/generated \
$(if $(KBUILD_SRC), -I$(srctree)/include) \
-Iinclude \
$(USERINCLUDE)
KBUILD_CPPFLAGS := -D__KERNEL__
KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
-fno-strict-aliasing -fno-common \
-Werror-implicit-function-declaration \
-Wno-format-security \
-fno-delete-null-pointer-checks \
-Werror=format -Werror=int-to-pointer-cast -Werror=pointer-to-int-cast
KBUILD_AFLAGS_KERNEL :=
KBUILD_CFLAGS_KERNEL :=
KBUILD_AFLAGS := -D__ASSEMBLY__
KBUILD_AFLAGS_MODULE := -DMODULE
KBUILD_CFLAGS_MODULE := -DMODULE
KBUILD_LDFLAGS_MODULE := -T $(srctree)/scripts/module-common.lds
###########333
#zheng add macro define
include $(srctree)/vendor_define_gen.mk
KBUILD_CFLAGS += $(KERNEL_CDEFS)
KBUILD_CPPFLAGS += $(KERNEL_CDEFS)
$(error ++++++kingberry custom defines: $(KERNEL_CDEFS))
#kingberry.end
# Read KERNELRELEASE from include/config/kernel.release (if it exists)
KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null)
KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)
export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION
export ARCH SRCARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC
export CPP AR NM STRIP OBJCOPY OBJDUMP
export MAKE AWK GENKSYMS INSTALLKERNEL PERL UTS_MACHINE
export HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS
vendor_define_gen.mk這個檔案定義如下:
MY_PROJECT := $(subst full_,,$(TARGET_PRODUCT))
include $(srctree)/../device/eastaeon/$(MY_PROJECT)/vendor/vendor_config.mk
-include $(srctree)/../device/eastaeon/$(MY_PROJECT)/vendor/vendor_config_$(XXXXXXXX_VENDOR).mk
include $(srctree)/../device/eastaeon/$(MY_PROJECT)/ProjectConfig.mk
include $(srctree)/../build/core/my_add_mtk_macro_def.mk
KERNEL_CDEFS=$(call mtk.custom.generate-macros)
#$(info *******************test zheng ************************** )
#$(error $(KERNEL_CDEFS) )
/////////////////////////////////////////////
lk中增加巨集定義:
# When the host arch is ARM, ensure stack protection code is not emitted since
# it's not supported by the bootloader's libc
ifneq ($(shell uname -m | grep "arm.*"),)
CFLAGS += -fno-stack-protector
endif
CPPFLAGS := -fno-exceptions -fno-rtti -fno-threadsafe-statics
#CPPFLAGS += -Weffc++
ASMFLAGS := -DASSEMBLY
LDFLAGS :=
CFLAGS += -ffunction-sections -fdata-sections
LDFLAGS += -gc-sections
#xxxxxx.zheng add for COMDEF
include make/vendor_define_gen.mk
#kingberry.end
# top level rule
all:: $(OUTBIN) $(OUTELF).lst $(OUTELF).debug.lst $(OUTELF).sym $(OUTELF).size APPSBOOTHEADER
# the following three object lists are identical except for the ordering
# which is bootobjs, kobjs, objs
BOOTOBJS :=
OBJS :=
# a linker script needs to be declared in one of the project/target/platform files
LINKER_SCRIPT :=
# anything you add here will be deleted in make clean
GENERATED := $(CONFIGHEADER)
對應make下檔案:
MY_PROJECT := $(subst full_,,$(TARGET_PRODUCT))
include $(srctree)/../device/eastaeon/$(MY_PROJECT)/vendor/vendor_config.mk
-include $(srctree)/../device/eastaeon/$(MY_PROJECT)/vendor/vendor_config_$(XXXXXX_VENDOR).mk
include $(srctree)/../device/eastaeon/$(MY_PROJECT)/ProjectConfig.mk
include $(srctree)/../build/core/my_add_mtk_macro_def.mk
MTK_CDEFS += $(call mtk.custom.generate-macros)
#$(error ******************* XXXXX.zheng ************************** )
#$(error $(MTK_CDEFS) )
CPPFLAGS +=
CFLAGS += $(MTK_CDEFS)
ASMFLAGS += $(MTK_CDEFS)
相關文章
- gcc編譯階段列印巨集定義的內容GC編譯
- laravel admin 列展開 自定義行操作 增加編輯修改按鈕Laravel
- ubuntu編譯安裝kernel教程。Ubuntu編譯
- Superset SSO改造和自定義巨集命令
- 編譯linux kernel預裝工具list編譯Linux
- uniapp增加自定義埋點功能APP
- Request 增加自定義欄位的方式
- 如何編寫一個前端框架之六-自定義元素(譯)前端框架
- TDengine 3.0 中如何編譯、建立和使用自定義函式編譯函式
- 使用 ccache 增加 Xcode 編譯速度XCode編譯
- Ascend C 自定義運算元 Kernel Launch呼叫入門
- C語言-->(十四)結構體、巨集、編譯C語言結構體編譯
- macOS自定義定時開關機教程Mac
- 《物料清單彙總查詢》二開增加自定義欄位
- tableau自定義地理編碼
- PostgreSQL編寫自定義extensionSQL
- C語言學習第18篇---巨集定義與使用 / 條件編譯使用分析C語言編譯
- [譯] Ruby 2.6 Kernel 的system 方法增加是否丟擲異常引數。
- 關於自定義 Alert
- 巨集定義
- [譯] 從 0 建立自定義元素
- Qt自定義開關按鈕控制元件QT控制元件
- [譯] 寫給 React 開發者的自定義元素指南React
- Excel 開始支援使用 JavaScript 編寫自定義函式ExcelJavaScript函式
- django admin中增加自定義超連結欄位Django
- Vue——關於自定義元件Vue元件
- C#自定義控制元件—轉換開關C#控制元件
- 分散式監控系統之Zabbix巨集、模板和自定義item分散式
- iOS-日常開發常用巨集定義iOS
- [譯] Part 31: Golang 中的自定義ErrorGolangError
- 【譯】CSS 自定義屬性的策略指南CSS
- Clang 之旅--[翻譯]新增自定義的 attribute
- 張高興的 Raspberry Pi AI 開發指南:(三)將自定義模型編譯為 Hailo NPU 的 .hef 模型AI模型編譯
- 在專案中自定義路徑放入element-ui並修改編譯原始碼UI編譯原始碼
- vscode 自定義c++標頭檔案,編譯過程中遇到的問題VSCodeC++編譯
- CentOS7 編譯安裝最新的Linux Kernel 6.0 rc3CentOS編譯Linux
- 基於jupyter lab搭建網頁程式設計環境並新增自定義python kernel和matlab kernel以及plotly的使用網頁程式設計PythonMatlab
- [譯] 使用自定義檔案模板加快你的應用開發速度
- 開源編譯工具和編譯軟體編譯