unified: Build kernel objects as a static library
Building kernel objects as a static library allows not to include the initialization function for an object type if this type is not used by the application. It reduces memory footprint Change-Id: I2b3c79cb2591fdd1ce15d27684c4a874e759c559 Signed-off-by: Dmitriy Korovkin <dmitriy.korovkin@windriver.com>
This commit is contained in:
parent
284042d746
commit
9558d47fd3
2 changed files with 27 additions and 14 deletions
11
Makefile
11
Makefile
|
@ -561,6 +561,11 @@ else
|
|||
include/config/auto.conf: ;
|
||||
endif # $(dot-config)
|
||||
|
||||
# Unified kernel objects are built as a static library
|
||||
ifeq ($(CONFIG_KERNEL_V2),y)
|
||||
libs-y := kernel/unified/
|
||||
endif
|
||||
|
||||
ARCH = $(subst $(DQUOTE),,$(CONFIG_ARCH))
|
||||
export ARCH
|
||||
|
||||
|
@ -775,7 +780,10 @@ OUTPUT_FORMAT ?= elf32-i386
|
|||
OUTPUT_ARCH ?= i386
|
||||
|
||||
quiet_cmd_ar_target = AR $@
|
||||
cmd_ar_target = rm -f $@; $(AR) rcT$(KBUILD_ARFLAGS) $@ $(KBUILD_ZEPHYR_MAIN)
|
||||
# Assume that if the directory listed in libs-y contains built-in.o,
|
||||
# it has been linked into the upper level built-in.o
|
||||
cmd_ar_target = rm -f $@; $(AR) rcT$(KBUILD_ARFLAGS) $@ \
|
||||
$(filter-out $(libs-y), $(KBUILD_ZEPHYR_MAIN))
|
||||
libzephyr.a: $(zephyr-deps)
|
||||
$(call cmd,ar_target)
|
||||
|
||||
|
@ -793,6 +801,7 @@ quiet_cmd_create-lnk = LINK $@
|
|||
echo "$(app-y)"; \
|
||||
echo "libzephyr.a"; \
|
||||
echo "$(LINKFLAGPREFIX)--no-whole-archive"; \
|
||||
echo "$(filter %/lib.a, $(libs-y))"; \
|
||||
echo "$(objtree)/arch/$(ARCH)/core/offsets/offsets.o"; \
|
||||
echo "$(LINKFLAGPREFIX)--end-group"; \
|
||||
echo "$(LIB_INCLUDE_DIR) $(LINK_LIBS)"; \
|
||||
|
|
|
@ -4,20 +4,24 @@ asflags-y := ${ccflags-y}
|
|||
|
||||
obj-y =
|
||||
obj-y += $(strip \
|
||||
version.o \
|
||||
)
|
||||
|
||||
lib-y =
|
||||
lib-y += $(strip \
|
||||
sys_clock.o \
|
||||
thread.o \
|
||||
init.o \
|
||||
sem.o \
|
||||
version.o \
|
||||
device.o \
|
||||
thread_abort.o \
|
||||
)
|
||||
|
||||
obj-y += $(strip \
|
||||
lib-y += $(strip \
|
||||
sched.o \
|
||||
mutex.o \
|
||||
)
|
||||
obj-y += $(strip \
|
||||
lib-y += $(strip \
|
||||
lifo.o \
|
||||
fifo.o \
|
||||
stack.o \
|
||||
|
@ -31,15 +35,15 @@ obj-y += $(strip \
|
|||
offload.o \
|
||||
)
|
||||
|
||||
obj-$(CONFIG_INT_LATENCY_BENCHMARK) += int_latency_bench.o
|
||||
obj-$(CONFIG_STACK_CANARIES) += compiler_stack_protect.o
|
||||
obj-$(CONFIG_SYS_POWER_MANAGEMENT) += idle.o
|
||||
obj-$(CONFIG_NANO_TIMERS) += timer.o
|
||||
obj-$(CONFIG_KERNEL_EVENT_LOGGER) += event_logger.o
|
||||
obj-$(CONFIG_KERNEL_EVENT_LOGGER) += kernel_event_logger.o
|
||||
obj-$(CONFIG_RING_BUFFER) += ring_buffer.o
|
||||
obj-$(CONFIG_ATOMIC_OPERATIONS_C) += atomic_c.o
|
||||
obj-$(CONFIG_ERRNO) += errno.o
|
||||
obj-$(CONFIG_NANO_WORKQUEUE) += work_q.o
|
||||
lib-$(CONFIG_INT_LATENCY_BENCHMARK) += int_latency_bench.o
|
||||
lib-$(CONFIG_STACK_CANARIES) += compiler_stack_protect.o
|
||||
lib-$(CONFIG_SYS_POWER_MANAGEMENT) += idle.o
|
||||
lib-$(CONFIG_NANO_TIMERS) += timer.o
|
||||
lib-$(CONFIG_KERNEL_EVENT_LOGGER) += event_logger.o
|
||||
lib-$(CONFIG_KERNEL_EVENT_LOGGER) += kernel_event_logger.o
|
||||
lib-$(CONFIG_RING_BUFFER) += ring_buffer.o
|
||||
lib-$(CONFIG_ATOMIC_OPERATIONS_C) += atomic_c.o
|
||||
lib-$(CONFIG_ERRNO) += errno.o
|
||||
lib-$(CONFIG_NANO_WORKQUEUE) += work_q.o
|
||||
|
||||
obj-y += legacy/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue