diff --git a/BUILD.gn b/BUILD.gn index 110c1ac1b1245bccf1d58172c9a9370d0426a1eb..bdf7c61e8661c2fb85e75f81a0d959e8d104a933 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -145,19 +145,6 @@ config("arch_config") { } } -config("as_objs_libc_flags") { - defines = [ "__ASSEMBLY__" ] - - # linux style macros - if (defined(LOSCFG_ARCH_ARM_V7A) || defined(LOSCFG_ARCH_ARM_V7R) || - defined(LOSCFG_ARCH_ARM_V7M)) { - defines += [ "__LINUX_ARM_ARCH__=7" ] - } else if (defined(LOSCFG_ARCH_ARM_V8A) || defined(LOSCFG_ARCH_ARM_V8R) || - defined(LOSCFG_ARCH_ARM_V8M)) { - defines += [ "__LINUX_ARM_ARCH__=8" ] - } -} - config("stdinc_config") { std_include = exec_script("//build/lite/run_shell_cmd.py", [ "$cc -print-file-name=include" ], "trim string") cflags = [ diff --git a/Kconfig b/Kconfig index 4296a0bb714b390836e9af93a37fa20535fd7ca0..0e985d87f105fa25d3f10193e47f24f4fa58b3f5 100644 --- a/Kconfig +++ b/Kconfig @@ -334,7 +334,7 @@ source "bsd/dev/usb/Kconfig" source "../../drivers/adapter/khdf/liteos/Kconfig" # Device driver Kconfig import -osource "$(DEVICE_PATH)/drivers/Kconfig" +source "$(DEVICE_PATH)/drivers/Kconfig" source "drivers/char/mem/Kconfig" source "drivers/char/quickstart/Kconfig" diff --git a/arch/arm/arm.mk b/arch/arm/arm.mk index 9ca7cfeac5517d2ea2fd07f30fafbd2355dc0c7a..4ea755ede46955c968437a2915481341adcffce1 100644 --- a/arch/arm/arm.mk +++ b/arch/arm/arm.mk @@ -83,13 +83,3 @@ else ifeq ($(LOSCFG_ARCH_FPU_VFP_D16), y) else ifeq ($(LOSCFG_ARCH_FPU_VFP_D32), y) LITEOS_CMACRO += -DLOSCFG_ARCH_FPU_VFP_D32 endif - -# linux style macros -LINUX_ARCH_$(LOSCFG_ARCH_ARM_V7A) = -D__LINUX_ARM_ARCH__=7 -LINUX_ARCH_$(LOSCFG_ARCH_ARM_V7R) = -D__LINUX_ARM_ARCH__=7 -LINUX_ARCH_$(LOSCFG_ARCH_ARM_V7M) = -D__LINUX_ARM_ARCH__=7 -LINUX_ARCH_$(LOSCFG_ARCH_ARM_V8A) = -D__LINUX_ARM_ARCH__=8 -LINUX_ARCH_$(LOSCFG_ARCH_ARM_V8R) = -D__LINUX_ARM_ARCH__=8 -LINUX_ARCH_$(LOSCFG_ARCH_ARM_V8M) = -D__LINUX_ARM_ARCH__=8 - -AS_OBJS_LIBC_FLAGS += $(LINUX_ARCH_y) diff --git a/arch/arm/arm/BUILD.gn b/arch/arm/arm/BUILD.gn index 86153251300f5b98387fec0a27d60fd4cb3f82c4..737f53a2f073eafcb37c9afdb4dcf2357c0130e5 100644 --- a/arch/arm/arm/BUILD.gn +++ b/arch/arm/arm/BUILD.gn @@ -65,7 +65,7 @@ kernel_module(module_name) { include_dirs = [ "src/include" ] if (defined(LOSCFG_GDB)) { - configs += [ "$LITEOSTOPDIR:as_objs_libc_flags" ] + configs += [ ":as_objs_libc_flags" ] } public_configs = [ ":public" ] @@ -77,3 +77,14 @@ config("public") { "src/include", ] } + +config("as_objs_libc_flags") { + defines = [ "__ASSEMBLY__" ] + + # linux style macros + if (defined(LOSCFG_ARCH_ARM_V7A) || defined(LOSCFG_ARCH_ARM_V7R) || defined(LOSCFG_ARCH_ARM_V7M)) { + defines += [ "__LINUX_ARM_ARCH__=7" ] + } else if (defined(LOSCFG_ARCH_ARM_V8A) || defined(LOSCFG_ARCH_ARM_V8R) || defined(LOSCFG_ARCH_ARM_V8M)) { + defines += [ "__LINUX_ARM_ARCH__=8" ] + } +} diff --git a/arch/arm/arm/Makefile b/arch/arm/arm/Makefile index 96da3e74956f7a743c0dc0d3c9d1c22eba16aa0a..83a241a29ee25a36eaf4e32d4d2595a298e64ec3 100644 --- a/arch/arm/arm/Makefile +++ b/arch/arm/arm/Makefile @@ -50,6 +50,16 @@ endif LOCAL_FLAGS := $(LOCAL_INCLUDE) $(LITEOS_GCOV_OPTS) +AS_OBJS_LIBC_FLAGS = -D__ASSEMBLY__ +# linux style macros +LINUX_ARCH_$(LOSCFG_ARCH_ARM_V7A) = -D__LINUX_ARM_ARCH__=7 +LINUX_ARCH_$(LOSCFG_ARCH_ARM_V7R) = -D__LINUX_ARM_ARCH__=7 +LINUX_ARCH_$(LOSCFG_ARCH_ARM_V7M) = -D__LINUX_ARM_ARCH__=7 +LINUX_ARCH_$(LOSCFG_ARCH_ARM_V8A) = -D__LINUX_ARM_ARCH__=8 +LINUX_ARCH_$(LOSCFG_ARCH_ARM_V8R) = -D__LINUX_ARM_ARCH__=8 +LINUX_ARCH_$(LOSCFG_ARCH_ARM_V8M) = -D__LINUX_ARM_ARCH__=8 +AS_OBJS_LIBC_FLAGS += $(LINUX_ARCH_y) + ifeq ($(LOSCFG_GDB), y) LOCAL_FLAGS += $(AS_OBJS_LIBC_FLAGS) endif diff --git a/tools/build/mk/los_config.mk b/tools/build/mk/los_config.mk index 7a79b3782fcfee040c93c671b836aafaf49b52e7..b43a95b9fd234c7a8e2e330616e76814f12abd4d 100644 --- a/tools/build/mk/los_config.mk +++ b/tools/build/mk/los_config.mk @@ -29,20 +29,57 @@ -include $(LITEOS_CONFIG_FILE) -HIDE := @ -OBJ_MKDIR = if [ ! -d $(dir $@) ]; then mkdir -p $(dir $@); fi -RM = -rm -rf -ifeq ($(OS),) -OS := $(shell uname -s) -export OS +ifeq ($(ARCH),) +ARCH = $(error ARCH not set!) endif -ARFLAGS := cr +## variable define ## +HIDE = @ +RM = -rm -rf +ARFLAGS = cr +OS := $(shell uname -s) +OBJ_MKDIR = if [ ! -d $(dir $@) ]; then mkdir -p $(dir $@); fi +OUT = $(or $(OUTDIR),$(LITEOSTOPDIR)/out/$(LOSCFG_PRODUCT_NAME:"%"=%)) +BUILD = $(OUT)/obj +MODULE = $(LITEOSTOPDIR)/tools/build/mk/module.mk +LITEOS_SCRIPTPATH = $(LITEOSTOPDIR)/tools/scripts +LITEOS_PLATFORM = $(LOSCFG_PLATFORM:"%"=%) +LITEOSTHIRDPARTY = $(LITEOSTOPDIR)/../../third_party -## platform relative ## -ifeq ($(ARCH),) -ARCH = $(error ARCH not set!) +## compiler relative ## +get_compiler_path = $(or $(wildcard $(1)),$(dir $(shell which $(CROSS_COMPILE)as))) +ifeq ($(LOSCFG_COMPILER_CLANG_LLVM), y) +CROSS_COMPILE ?= llvm- +LITEOS_COMPILER_PATH ?= $(call get_compiler_path,$(LITEOSTOPDIR)/../../prebuilts/clang/ohos/linux-x86_64/llvm/bin/) +LLVM_TARGET = $(if $(LOSCFG_LLVM_TARGET),-target $(LOSCFG_LLVM_TARGET),) +LLVM_SYSROOT = $(if $(SYSROOT_PATH),--sysroot=$(SYSROOT_PATH),) +CC = $(LITEOS_COMPILER_PATH)clang $(LLVM_TARGET) $(LLVM_SYSROOT) +AS = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)as +AR = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)ar +LD = $(LITEOS_COMPILER_PATH)ld.lld +GPP = $(LITEOS_COMPILER_PATH)clang++ $(LLVM_TARGET) $(LLVM_SYSROOT) +OBJCOPY = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)objcopy -R .bss +OBJDUMP = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)objdump +SIZE = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)size +NM = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)nm +STRIP = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)strip +else ifeq ($(LOSCFG_COMPILER_GCC), y) +CROSS_COMPILE ?= $(LOSCFG_CROSS_COMPILE) +LITEOS_COMPILER_PATH ?= $(call get_compiler_path,$(LITEOSTOPDIR)/../../prebuilts/gcc/linux-x86/arm/arm-linux-ohoseabi-gcc/bin/) +CC = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)gcc +AS = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)as +AR = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)ar +LD = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)ld +GPP = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)g++ +OBJCOPY = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)objcopy +OBJDUMP = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)objdump +SIZE = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)size +NM = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)nm +STRIP = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)strip +else +CC = echo $(info compiler type not set!) endif + ## c as cxx ld options ## LITEOS_ASOPTS := LITEOS_COPTS_BASE := @@ -53,7 +90,7 @@ LITEOS_CXXOPTS_BASE := LITEOS_LD_OPTS := LITEOS_GCOV_OPTS := ## macro define ## -LITEOS_CMACRO := +LITEOS_CMACRO := -D__LITEOS__ LITEOS_CXXMACRO := ## head file path and ld path ## LITEOS_PLATFORM_INCLUDE := @@ -71,46 +108,6 @@ LITEOS_LIBDEP := ## directory ## LIB_SUBDIRS := -## variable define ## -ifeq ($(LITEOSTHIRDPARTY),) -LITEOSTHIRDPARTY := $(LITEOSTOPDIR)/../../third_party -endif -LOSCFG_BOARD_CONFIG_PATH := $(LOSCFG_BOARD_CONFIG_PATH:"%"=%) -ifeq ($(wildcard $(LITEOSTOPDIR)/../../$(LOSCFG_BOARD_CONFIG_PATH) $(LOSCFG_BOARD_CONFIG_PATH)),) -LOSCFG_BOARD_CONFIG_PATH := $(LOSCFG_BOARD_CONFIG_PATH:%/config/board=%/board) -endif -ifeq ($(LOSCFG_COMPILER_GCC), y) -CROSS_COMPILE ?= $(LOSCFG_CROSS_COMPILE) -LITEOS_COMPILER_PATH ?= $(LITEOSTOPDIR)/../../prebuilts/gcc/linux-x86/arm/arm-linux-ohoseabi-gcc/bin/ -else ifeq ($(LOSCFG_COMPILER_CLANG_LLVM), y) -CROSS_COMPILE ?= llvm- -LITEOS_COMPILER_PATH ?= $(LITEOSTOPDIR)/../../prebuilts/clang/ohos/linux-x86_64/llvm/bin/ -ifneq ($(LOSCFG_LLVM_TARGET),) -LLVM_TARGET = -target $(LOSCFG_LLVM_TARGET) -endif -ifneq ($(SYSROOT_PATH),) -LLVM_SYSROOT = --sysroot=$(SYSROOT_PATH) -endif -endif -ifeq ($(wildcard $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)as),) -LITEOS_COMPILER_PATH := $(patsubst %/$(CROSS_COMPILE)as,%/,$(shell which $(CROSS_COMPILE)as)) -endif -LITEOS_PLATFORM := $(LOSCFG_PLATFORM:"%"=%) -ifeq ($(OUTDIR),) -OUT = $(LITEOSTOPDIR)/out/$(LOSCFG_PRODUCT_NAME:"%"=%) -else -OUT = $(OUTDIR) -endif -BUILD = $(OUT)/obj -CXX_PATH = $(LITEOSTOPDIR)/lib/cxxstl -JFFS_PATH = $(LITEOSTOPDIR)/fs/jffs2 -LITEOS_SCRIPTPATH ?= $(LITEOSTOPDIR)/tools/scripts - -### include variable -MODULE = $(LITEOSTOPDIR)/tools/build/mk/module.mk -LITEOS_CMACRO += -D__LITEOS__ -DSECUREC_IN_KERNEL=0 -AS_OBJS_LIBC_FLAGS = -D__ASSEMBLY__ - ####################################### CPU Option Begin ######################################### include $(LITEOSTOPDIR)/arch/cpu.mk ####################################### CPU Option End ######################################### @@ -197,6 +194,7 @@ ifeq ($(LOSCFG_LIB_LIBC), y) LITEOS_BASELIB += -lsec LITEOS_LIBC_INCLUDE += \ -I $(LITEOSTHIRDPARTY)/bounds_checking_function/include + LITEOS_CMACRO += -DSECUREC_IN_KERNEL=0 endif LITEOS_BASELIB += -lscrew @@ -228,7 +226,6 @@ ifeq ($(LOSCFG_COMPAT_BSD), y) LITEOS_BASELIB += -lbsd LIB_SUBDIRS += bsd LITEOS_BSD_INCLUDE += -I $(LITEOSTOPDIR)/bsd - LITEOS_CMACRO += -DLOSCFG_COMPAT_LINUXKPI LITEOS_BASELIB += -llinuxkpi LIB_SUBDIRS += bsd/compat/linuxkpi LITEOS_LINUX_INCLUDE += -I $(LITEOSTOPDIR)/bsd/compat/linuxkpi/include \ @@ -383,9 +380,6 @@ ifeq ($(LOSCFG_DRIVERS_USB), y) LITEOS_BASELIB += -lusb_base LIB_SUBDIRS += $(LITEOSTOPDIR)/bsd/dev/usb LITEOS_USB_INCLUDE += -I $(LITEOSTOPDIR)/bsd/dev/usb -ifeq ($(LOSCFG_USB_DEBUG), y) - LITEOS_CMACRO += -DLOSCFG_USB_DEBUG -endif endif ifeq ($(LOSCFG_DRIVERS_VIDEO), y) @@ -402,7 +396,6 @@ ifeq ($(LOSCFG_BASE_CORE_HILOG), y) LIB_SUBDIRS += $(LITEOSTOPDIR)/../../base/hiviewdfx/hilog_lite/frameworks/featured LITEOS_HILOG_INCLUDE += -I $(LITEOSTOPDIR)/../../base/hiviewdfx/hilog_lite/interfaces/native/kits LITEOS_HILOG_INCLUDE += -I $(LITEOSTOPDIR)/../../base/hiviewdfx/hilog_lite/interfaces/native/kits/hilog - LITEOS_CMACRO += -DLOSCFG_BASE_CORE_HILOG endif ifeq ($(LOSCFG_BLACKBOX), y) LITEOS_BASELIB += -lblackbox @@ -500,30 +493,6 @@ endif ############################# Security Option End ############################## -ifeq ($(LOSCFG_COMPILER_CLANG_LLVM), y) -CC = $(LITEOS_COMPILER_PATH)clang $(LLVM_TARGET) $(LLVM_SYSROOT) -AS = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)as -AR = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)ar -LD = $(LITEOS_COMPILER_PATH)ld.lld -GPP = $(LITEOS_COMPILER_PATH)clang++ $(LLVM_TARGET) $(LLVM_SYSROOT) -OBJCOPY = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)objcopy -R .bss -OBJDUMP = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)objdump -SIZE = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)size -NM = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)nm -STRIP = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)strip -else -CC = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)gcc -AS = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)as -AR = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)ar -LD = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)ld -GPP = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)g++ -OBJCOPY = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)objcopy -OBJDUMP = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)objdump -SIZE = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)size -NM = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)nm -STRIP = $(LITEOS_COMPILER_PATH)$(CROSS_COMPILE)strip -endif - LITEOS_EXTKERNEL_INCLUDE := $(LITEOS_CPPSUPPORT_INCLUDE) $(LITEOS_DYNLOAD_INCLUDE) \ $(LITEOS_TICKLESS_INCLUDE) $(LITEOS_HOOK_INCLUDE)\ $(LITEOS_VDSO_INCLUDE) $(LITEOS_LITEIPC_INCLUDE) \