mirror of
https://github.com/genodelabs/genode.git
synced 2025-02-20 17:52:52 +00:00
base-linux: separate x86-specific code
By moving core's build-description to a library - a pattern already employed for the other base platforms - we become able to cleanly split x86-specific code (I/O-port access) from generic code. This is a prerequisite for enabling non-x86 architectures such as AARCH64. Issue #4136
This commit is contained in:
parent
a4727c90a8
commit
0b36d81c0c
69
repos/base-linux/lib/mk/core-linux.inc
Normal file
69
repos/base-linux/lib/mk/core-linux.inc
Normal file
@ -0,0 +1,69 @@
|
||||
GEN_CORE_DIR := $(BASE_DIR)/src/core
|
||||
LIBS := syscall-linux
|
||||
BOARD ?= unknown
|
||||
|
||||
SRC_CC := main.cc \
|
||||
platform.cc \
|
||||
platform_thread.cc \
|
||||
platform_services.cc \
|
||||
pd_session_component.cc \
|
||||
ram_dataspace_support.cc \
|
||||
rom_session_component.cc \
|
||||
cpu_session_component.cc \
|
||||
cpu_session_support.cc \
|
||||
cpu_thread_component.cc \
|
||||
pd_session_support.cc \
|
||||
dataspace_component.cc \
|
||||
native_pd_component.cc \
|
||||
native_cpu_component.cc \
|
||||
capability_space.cc \
|
||||
rpc_cap_factory_linux.cc \
|
||||
ram_dataspace_factory.cc \
|
||||
core_rpc_cap_alloc.cc \
|
||||
io_mem_session_component.cc \
|
||||
irq_session_component.cc \
|
||||
signal_source_component.cc \
|
||||
signal_transmitter_proxy.cc \
|
||||
signal_receiver.cc \
|
||||
trace_session_component.cc \
|
||||
thread_linux.cc \
|
||||
stack_area.cc \
|
||||
core_log.cc \
|
||||
core_log_out.cc \
|
||||
default_log.cc \
|
||||
env_reinit.cc \
|
||||
heartbeat.cc \
|
||||
thread.cc \
|
||||
thread_myself.cc
|
||||
|
||||
INC_DIR += $(REP_DIR)/src/core/include \
|
||||
$(GEN_CORE_DIR)/include \
|
||||
$(REP_DIR)/src/platform \
|
||||
$(REP_DIR)/src/include \
|
||||
$(BASE_DIR)/src/include
|
||||
|
||||
vpath main.cc $(GEN_CORE_DIR)
|
||||
vpath pd_session_component.cc $(GEN_CORE_DIR)
|
||||
vpath core_log.cc $(GEN_CORE_DIR)
|
||||
vpath cpu_session_component.cc $(GEN_CORE_DIR)
|
||||
vpath cpu_session_support.cc $(GEN_CORE_DIR)
|
||||
vpath cpu_thread_component.cc $(GEN_CORE_DIR)
|
||||
vpath pd_upgrade_ram_quota.cc $(GEN_CORE_DIR)
|
||||
vpath pd_session_support.cc $(GEN_CORE_DIR)
|
||||
vpath capability_space.cc $(GEN_CORE_DIR)
|
||||
vpath ram_dataspace_factory.cc $(GEN_CORE_DIR)
|
||||
vpath signal_source_component.cc $(GEN_CORE_DIR)
|
||||
vpath signal_transmitter_proxy.cc $(GEN_CORE_DIR)
|
||||
vpath signal_receiver.cc $(GEN_CORE_DIR)
|
||||
vpath trace_session_component.cc $(GEN_CORE_DIR)
|
||||
vpath default_log.cc $(GEN_CORE_DIR)
|
||||
vpath heartbeat.cc $(GEN_CORE_DIR)
|
||||
vpath thread.cc $(BASE_DIR)/src/lib/base
|
||||
vpath thread_myself.cc $(BASE_DIR)/src/lib/base
|
||||
vpath trace.cc $(BASE_DIR)/src/lib/base
|
||||
vpath env_reinit.cc $(REP_DIR)/src/lib/base
|
||||
vpath dataspace_component.cc $(REP_DIR)/src/core/spec/$(BOARD)
|
||||
vpath io_mem_session_component.cc $(REP_DIR)/src/core/spec/$(BOARD)
|
||||
vpath irq_session_component.cc $(REP_DIR)/src/core/spec/$(BOARD)
|
||||
vpath platform_services.cc $(REP_DIR)/src/core/spec/$(BOARD)
|
||||
vpath %.cc $(REP_DIR)/src/core
|
1
repos/base-linux/lib/mk/core-linux.mk
Normal file
1
repos/base-linux/lib/mk/core-linux.mk
Normal file
@ -0,0 +1 @@
|
||||
include $(REP_DIR)/lib/mk/core-linux.inc
|
7
repos/base-linux/lib/mk/spec/x86/core-linux.mk
Normal file
7
repos/base-linux/lib/mk/spec/x86/core-linux.mk
Normal file
@ -0,0 +1,7 @@
|
||||
include $(REP_DIR)/lib/mk/core-linux.inc
|
||||
|
||||
SRC_CC += io_port_session_support.cc \
|
||||
io_port_session_component.cc
|
||||
|
||||
vpath io_port_session_support.cc $(GEN_CORE_DIR)/spec/x86
|
||||
vpath io_port_session_component.cc $(REP_DIR)/src/core/spec/$(BOARD)
|
@ -8,8 +8,8 @@ lib/import src/ld:
|
||||
content:
|
||||
for spec in x86_32 x86_64 arm; do \
|
||||
mv lib/mk/spec/$$spec/ld-linux.mk lib/mk/spec/$$spec/ld.mk; done;
|
||||
sed -i "s/core-linux/core/" src/core/linux/target.mk
|
||||
sed -i "s/BOARD.*unknown/BOARD := linux/" src/core/linux/target.mk
|
||||
sed -i "/TARGET/s/core-linux/core/" src/core/linux/target.mk
|
||||
sed -i "s/BOARD.*unknown/BOARD := linux/" lib/mk/core-linux.inc
|
||||
sed -i "s/ld-linux/ld/" src/lib/ld/linux/target.mk
|
||||
sed -i "s/linux_timer_drv/timer/" src/timer/linux/target.mk
|
||||
rm -rf src/lib/initramfs
|
||||
|
@ -1,83 +1,10 @@
|
||||
TARGET = core-linux
|
||||
REQUIRES = linux
|
||||
LIBS = cxx base-linux-common syscall-linux startup-linux
|
||||
TARGET := core-linux
|
||||
REQUIRES := linux
|
||||
LIBS := cxx base-linux-common startup-linux core-linux
|
||||
BOARD ?= unknown
|
||||
|
||||
BOARD ?= unknown
|
||||
include $(BASE_DIR)/src/core/version.inc
|
||||
|
||||
GEN_CORE_DIR = $(BASE_DIR)/src/core
|
||||
|
||||
SRC_CC = main.cc \
|
||||
platform.cc \
|
||||
platform_thread.cc \
|
||||
platform_services.cc \
|
||||
pd_session_component.cc \
|
||||
ram_dataspace_support.cc \
|
||||
rom_session_component.cc \
|
||||
cpu_session_component.cc \
|
||||
cpu_session_support.cc \
|
||||
cpu_thread_component.cc \
|
||||
pd_session_support.cc \
|
||||
dataspace_component.cc \
|
||||
native_pd_component.cc \
|
||||
native_cpu_component.cc \
|
||||
capability_space.cc \
|
||||
rpc_cap_factory_linux.cc \
|
||||
ram_dataspace_factory.cc \
|
||||
core_rpc_cap_alloc.cc \
|
||||
io_mem_session_component.cc \
|
||||
io_port_session_component.cc \
|
||||
io_port_session_support.cc \
|
||||
irq_session_component.cc \
|
||||
signal_source_component.cc \
|
||||
signal_transmitter_proxy.cc \
|
||||
signal_receiver.cc \
|
||||
trace_session_component.cc \
|
||||
thread_linux.cc \
|
||||
stack_area.cc \
|
||||
core_log.cc \
|
||||
core_log_out.cc \
|
||||
default_log.cc \
|
||||
env_reinit.cc \
|
||||
heartbeat.cc \
|
||||
thread.cc \
|
||||
thread_myself.cc
|
||||
|
||||
INC_DIR += $(REP_DIR)/src/core/include \
|
||||
$(GEN_CORE_DIR)/include \
|
||||
$(REP_DIR)/src/platform \
|
||||
$(REP_DIR)/src/include \
|
||||
$(BASE_DIR)/src/include
|
||||
|
||||
LD_TEXT_ADDR ?= 0x01000000
|
||||
LD_SCRIPT_STATIC = $(BASE_DIR)/src/ld/genode.ld \
|
||||
$(call select_from_repositories,src/ld/stack_area.ld)
|
||||
|
||||
include $(GEN_CORE_DIR)/version.inc
|
||||
|
||||
vpath main.cc $(GEN_CORE_DIR)
|
||||
vpath pd_session_component.cc $(GEN_CORE_DIR)
|
||||
vpath core_log.cc $(GEN_CORE_DIR)
|
||||
vpath cpu_session_component.cc $(GEN_CORE_DIR)
|
||||
vpath cpu_session_support.cc $(GEN_CORE_DIR)
|
||||
vpath cpu_thread_component.cc $(GEN_CORE_DIR)
|
||||
vpath pd_upgrade_ram_quota.cc $(GEN_CORE_DIR)
|
||||
vpath pd_session_support.cc $(GEN_CORE_DIR)
|
||||
vpath capability_space.cc $(GEN_CORE_DIR)
|
||||
vpath ram_dataspace_factory.cc $(GEN_CORE_DIR)
|
||||
vpath signal_source_component.cc $(GEN_CORE_DIR)
|
||||
vpath signal_transmitter_proxy.cc $(GEN_CORE_DIR)
|
||||
vpath signal_receiver.cc $(GEN_CORE_DIR)
|
||||
vpath trace_session_component.cc $(GEN_CORE_DIR)
|
||||
vpath default_log.cc $(GEN_CORE_DIR)
|
||||
vpath heartbeat.cc $(GEN_CORE_DIR)
|
||||
vpath io_port_session_support.cc $(GEN_CORE_DIR)/spec/x86
|
||||
vpath thread.cc $(BASE_DIR)/src/lib/base
|
||||
vpath thread_myself.cc $(BASE_DIR)/src/lib/base
|
||||
vpath trace.cc $(BASE_DIR)/src/lib/base
|
||||
vpath env_reinit.cc $(REP_DIR)/src/lib/base
|
||||
vpath dataspace_component.cc $(REP_DIR)/src/core/spec/$(BOARD)
|
||||
vpath io_mem_session_component.cc $(REP_DIR)/src/core/spec/$(BOARD)
|
||||
vpath irq_session_component.cc $(REP_DIR)/src/core/spec/$(BOARD)
|
||||
vpath io_port_session_component.cc $(REP_DIR)/src/core/spec/$(BOARD)
|
||||
vpath platform_services.cc $(REP_DIR)/src/core/spec/$(BOARD)
|
||||
vpath %.cc $(REP_DIR)/src/core
|
||||
LD_TEXT_ADDR ?= 0x01000000
|
||||
LD_SCRIPT_STATIC = $(BASE_DIR)/src/ld/genode.ld \
|
||||
$(call select_from_repositories,src/ld/stack_area.ld)
|
||||
|
Loading…
x
Reference in New Issue
Block a user