mirror of
https://github.com/genodelabs/genode.git
synced 2025-06-24 01:28:48 +00:00
core: unify handling of boot modules
Instead of solving the problem to deliver ROM modules to core while booting differently for the several kernels (multi-boot, elfweaver, core re-linking), this commit unifies the approaches. It always builds core as a library, and after all binaries are built from a run-script, the run-tool will link an ELF image out of the core-library and all boot modules. Thereby, core can access its ROM modules directly. This approach now works for all kernels except Linux. With this solution, there is no [build_dir]/bin/core binary available anymore. For debugging purposes you will find a core binary without boot modules, but with debug symbols under [run_dir].core. Fix #2095
This commit is contained in:
committed by
Christian Helmuth
parent
340a18007c
commit
7e1692d997
70
repos/base-pistachio/lib/mk/core.inc
Normal file
70
repos/base-pistachio/lib/mk/core.inc
Normal file
@ -0,0 +1,70 @@
|
||||
REQUIRES = pistachio
|
||||
LIBS = base-common
|
||||
|
||||
GEN_CORE_DIR = $(BASE_DIR)/src/core
|
||||
|
||||
SRC_CC = stack_area.cc \
|
||||
core_log.cc \
|
||||
core_rpc_cap_alloc.cc \
|
||||
core_region_map.cc \
|
||||
cpu_session_component.cc \
|
||||
cpu_session_platform.cc \
|
||||
cpu_thread_component.cc \
|
||||
capability_space.cc \
|
||||
dataspace_component.cc \
|
||||
default_log.cc \
|
||||
dump_alloc.cc \
|
||||
io_mem_session_component.cc \
|
||||
io_mem_session_support.cc \
|
||||
irq_session_component.cc \
|
||||
kip.cc \
|
||||
main.cc \
|
||||
pd_session_component.cc \
|
||||
rpc_cap_factory_l4.cc \
|
||||
pd_assign_pci.cc \
|
||||
pd_upgrade_ram_quota.cc \
|
||||
pager.cc \
|
||||
pager_ep.cc \
|
||||
pager_object.cc \
|
||||
platform.cc \
|
||||
platform_pd.cc \
|
||||
platform_services.cc \
|
||||
platform_thread.cc \
|
||||
ram_session_component.cc \
|
||||
ram_session_support.cc \
|
||||
region_map_component.cc \
|
||||
region_map_support.cc \
|
||||
rom_session_component.cc \
|
||||
signal_source_component.cc \
|
||||
thread_start.cc \
|
||||
trace_session_component.cc
|
||||
|
||||
INC_DIR += $(REP_DIR)/src/core/include $(GEN_CORE_DIR)/include \
|
||||
$(REP_DIR)/src/include $(BASE_DIR)/src/include
|
||||
|
||||
include $(GEN_CORE_DIR)/version.inc
|
||||
|
||||
vpath main.cc $(GEN_CORE_DIR)
|
||||
vpath ram_session_component.cc $(GEN_CORE_DIR)
|
||||
vpath rom_session_component.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_session_component.cc $(GEN_CORE_DIR)
|
||||
vpath pd_assign_pci.cc $(GEN_CORE_DIR)
|
||||
vpath pd_upgrade_ram_quota.cc $(GEN_CORE_DIR)
|
||||
vpath region_map_component.cc $(GEN_CORE_DIR)
|
||||
vpath rpc_cap_factory_l4.cc $(GEN_CORE_DIR)
|
||||
vpath capability_space.cc $(GEN_CORE_DIR)
|
||||
vpath io_mem_session_component.cc $(GEN_CORE_DIR)
|
||||
vpath io_mem_session_support.cc $(GEN_CORE_DIR)
|
||||
vpath signal_source_component.cc $(GEN_CORE_DIR)
|
||||
vpath trace_session_component.cc $(GEN_CORE_DIR)
|
||||
vpath dataspace_component.cc $(GEN_CORE_DIR)
|
||||
vpath dump_alloc.cc $(GEN_CORE_DIR)
|
||||
vpath default_log.cc $(GEN_CORE_DIR)
|
||||
vpath core_rpc_cap_alloc.cc $(GEN_CORE_DIR)
|
||||
vpath core_region_map.cc $(GEN_CORE_DIR)
|
||||
vpath stack_area.cc $(GEN_CORE_DIR)
|
||||
vpath pager_ep.cc $(GEN_CORE_DIR)
|
||||
vpath %.cc $(REP_DIR)/src/core
|
11
repos/base-pistachio/lib/mk/spec/x86/core.mk
Normal file
11
repos/base-pistachio/lib/mk/spec/x86/core.mk
Normal file
@ -0,0 +1,11 @@
|
||||
include $(REP_DIR)/lib/mk/core.inc
|
||||
|
||||
REQUIRES += x86
|
||||
SRC_CC += io_port_session_component.cc \
|
||||
io_port_session_support.cc \
|
||||
platform_x86.cc
|
||||
|
||||
vpath io_port_session_component.cc $(GEN_CORE_DIR)/spec/x86
|
||||
vpath io_port_session_support.cc $(GEN_CORE_DIR)/spec/x86
|
||||
vpath platform_services.cc $(GEN_CORE_DIR)/spec/x86
|
||||
vpath platform_x86.cc $(REP_DIR)/src/core/spec/x86
|
Reference in New Issue
Block a user