mirror of
https://github.com/genodelabs/genode.git
synced 2025-02-21 18:06:50 +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:
|
content:
|
||||||
for spec in x86_32 x86_64 arm; do \
|
for spec in x86_32 x86_64 arm; do \
|
||||||
mv lib/mk/spec/$$spec/ld-linux.mk lib/mk/spec/$$spec/ld.mk; done;
|
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 "/TARGET/s/core-linux/core/" src/core/linux/target.mk
|
||||||
sed -i "s/BOARD.*unknown/BOARD := linux/" 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/ld-linux/ld/" src/lib/ld/linux/target.mk
|
||||||
sed -i "s/linux_timer_drv/timer/" src/timer/linux/target.mk
|
sed -i "s/linux_timer_drv/timer/" src/timer/linux/target.mk
|
||||||
rm -rf src/lib/initramfs
|
rm -rf src/lib/initramfs
|
||||||
|
@ -1,83 +1,10 @@
|
|||||||
TARGET = core-linux
|
TARGET := core-linux
|
||||||
REQUIRES = linux
|
REQUIRES := linux
|
||||||
LIBS = cxx base-linux-common syscall-linux startup-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
|
LD_TEXT_ADDR ?= 0x01000000
|
||||||
|
LD_SCRIPT_STATIC = $(BASE_DIR)/src/ld/genode.ld \
|
||||||
SRC_CC = main.cc \
|
$(call select_from_repositories,src/ld/stack_area.ld)
|
||||||
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
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user