mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-18 21:27:56 +00:00
Disambiguate kernel-specific file names
This patch removes possible ambiguities with respect to the naming of kernel-dependent binaries and libraries. It also removes the use of kernel-specific global side effects from the build system. The reach of kernel-specific peculiarities has thereby become limited to the actual users of the respective 'syscall-<kernel>' libraries. Kernel-specific build artifacts are no longer generated at magic places within the build directory (like okl4's includes, or the L4 build directories of L4/Fiasco and Fiasco.OC, or the build directories of various kernels). Instead, such artifacts have been largely moved to the libcache. E.g., the former '<build-dir>/l4/' build directory for the L4 build system resides at '<build-dir>/var/libcache/syscall-foc/build/'. This way, the location is unique to the kernel. Note that various tools are still generated somewhat arbitrarily under '<build-dir>/tool/' as there is no proper formalism for building host tools yet. As the result of this work, it has become possible to use a joint Genode build directory that is usable with all kernels of a given hardware platform. E.g., on x86_32, one can now seamlessly switch between linux, nova, sel4, okl4, fiasco, foc, and pistachio without rebuilding any components except for core, the kernel, the dynamic linker, and the timer driver. At the current stage, such a build directory must still be created manually. A change of the 'create_builddir' tool will follow to make this feature easily available. This patch also simplifies various 'run/boot_dir' plugins by removing the option for an externally hosted kernel. This option remained unused for many years now. Issue #2190
This commit is contained in:
parent
3865ee7ccc
commit
c450ddcb3d
@ -59,12 +59,12 @@ with 'fiasco_x86' as argument:
|
||||
|
||||
From within the new <build-dir>, the kernel can be compiled via
|
||||
|
||||
! make kernel
|
||||
! make kernel/fiasco
|
||||
|
||||
When using Genode's run mechanism, there is no need to explicitly
|
||||
build the kernel. The run environment (see 'base-fiasco/run/env')
|
||||
takes care of it. So you can simple execute run scripts from within
|
||||
the build directory, for example:
|
||||
When using Genode's run mechanism, there is no need to explicitly build the
|
||||
kernel. The run environment (see 'tool/run/boot_dir/fiasco') takes care of it.
|
||||
So you can simple execute run scripts from within the build directory, for
|
||||
example:
|
||||
|
||||
! make run/demo
|
||||
|
||||
@ -115,22 +115,5 @@ interest for using Genode:
|
||||
is used to create a single binary image containing all boot-time
|
||||
OS components.
|
||||
|
||||
To build all components under '3rd/fiasco' after extracting the
|
||||
archive, issue the following commands:
|
||||
|
||||
! mkdir <build-dir>
|
||||
! make -C 3rd/fiasco BUILD_DIR=<build-dir>/3rd build
|
||||
|
||||
The specified '<build-dir>' must be the absolute path to the
|
||||
directory, which will contain the build directories for the third party
|
||||
software and the Genode build directory. After the build, your compound
|
||||
build directory contains the following subdirectories:
|
||||
|
||||
:'fiasco_x86':
|
||||
|
||||
All generated files and the final binary of Fiasco reside here.
|
||||
|
||||
:'l4env':
|
||||
|
||||
L4 environment binaries and header files.
|
||||
|
||||
Those components are implicitly built by the Genode build system when
|
||||
issuing 'make kernel/fiasco'.
|
||||
|
@ -1,11 +0,0 @@
|
||||
#
|
||||
# Fiasco-specific default configuration options
|
||||
#
|
||||
|
||||
#
|
||||
# Directory, where to search for L4 headers
|
||||
#
|
||||
# When using this file as template for a customized
|
||||
# '<builddir>/etc/fiasco.conf'.
|
||||
#
|
||||
#L4_DIR = $(HOME)/src/l4build.x86
|
@ -1,15 +1 @@
|
||||
#
|
||||
# Description of build platform
|
||||
#
|
||||
|
||||
#
|
||||
# To build the Fiasco-specific Genode binaries,
|
||||
# use one of the the following config options.
|
||||
#
|
||||
SPECS = genode fiasco_x86
|
||||
|
||||
#
|
||||
# To build for the ARM integrator platform,
|
||||
# use the following SPECS value.
|
||||
#
|
||||
#SPECS = genode platform_integrator fiasco_arm
|
||||
SPECS += genode fiasco x86_32 vesa pci ps2 framebuffer
|
||||
|
6
repos/base-fiasco/lib/import/import-syscall-fiasco.mk
Normal file
6
repos/base-fiasco/lib/import/import-syscall-fiasco.mk
Normal file
@ -0,0 +1,6 @@
|
||||
L4_SRC_DIR := $(call select_from_ports,fiasco)/src/kernel/fiasco/fiasco/snapshot
|
||||
|
||||
INC_DIR += $(LIB_CACHE_DIR)/syscall-fiasco/include/x86/l4v2 \
|
||||
$(LIB_CACHE_DIR)/syscall-fiasco/include/x86 \
|
||||
$(LIB_CACHE_DIR)/syscall-fiasco/include \
|
||||
$(LIB_CACHE_DIR)/syscall-fiasco/include/l4v2
|
@ -6,7 +6,7 @@
|
||||
|
||||
include $(BASE_DIR)/lib/mk/base-common.inc
|
||||
|
||||
LIBS += startup
|
||||
LIBS += startup-fiasco syscall-fiasco
|
||||
|
||||
SRC_CC += capability.cc capability_raw.cc
|
||||
SRC_CC += signal_submit.cc
|
||||
|
@ -1,5 +1,7 @@
|
||||
include $(BASE_DIR)/lib/mk/base.inc
|
||||
|
||||
LIBS += syscall-fiasco
|
||||
|
||||
SRC_CC += thread_start.cc
|
||||
SRC_CC += cache.cc
|
||||
SRC_CC += capability_space.cc
|
||||
|
@ -42,7 +42,7 @@ INC_DIR += $(REP_DIR)/src/core/include \
|
||||
$(REP_DIR)/src/include \
|
||||
$(BASE_DIR)/src/include
|
||||
|
||||
LIBS += base-fiasco-common
|
||||
LIBS += base-fiasco-common syscall-fiasco
|
||||
|
||||
include $(GEN_CORE_DIR)/version.inc
|
||||
|
53
repos/base-fiasco/lib/mk/kernel-fiasco.inc
Normal file
53
repos/base-fiasco/lib/mk/kernel-fiasco.inc
Normal file
@ -0,0 +1,53 @@
|
||||
L4_SRC_DIR = $(call select_from_ports,fiasco)/src/kernel/fiasco/fiasco/snapshot
|
||||
|
||||
FIASCO_BUILD_DIR = $(shell pwd)/build
|
||||
FIASCO = $(FIASCO_BUILD_DIR)/fiasco
|
||||
FIASCO_SRC = $(L4_SRC_DIR)/kernel/fiasco
|
||||
|
||||
KERNEL_BUILD_OUTPUT_FILTER = 2>&1 | sed "s/^/ [fiasco] /"
|
||||
|
||||
$(FIASCO_BUILD_DIR):
|
||||
$(VERBOSE_MK) MAKEFLAGS= $(MAKE) SYSTEM_TARGET="$(CROSS_DEV_PREFIX)" \
|
||||
$(VERBOSE_DIR) -C $(FIASCO_SRC) BUILDDIR=$@ \
|
||||
$(KERNEL_BUILD_OUTPUT_FILTER)
|
||||
$(VERBOSE)cp $(KERNEL_CONFIG) $@/globalconfig.out
|
||||
$(VERBOSE_MK) MAKEFLAGS= $(MAKE) SYSTEM_TARGET="$(CROSS_DEV_PREFIX)" \
|
||||
$(VERBOSE_DIR) -C $@ oldconfig \
|
||||
$(KERNEL_BUILD_OUTPUT_FILTER)
|
||||
$(VERBOSE)cp $(KERNEL_CONFIG) $@/globalconfig.out
|
||||
|
||||
$(FIASCO): $(FIASCO_BUILD_DIR)
|
||||
$(VERBOSE_MK) MAKEFLAGS= $(MAKE) SYSTEM_TARGET="$(CROSS_DEV_PREFIX)" \
|
||||
$(VERBOSE_DIR) -C $(FIASCO_BUILD_DIR) \
|
||||
$(KERNEL_BUILD_OUTPUT_FILTER)
|
||||
|
||||
#
|
||||
# Sigma0 and bootstrap are provided as L4 packages
|
||||
#
|
||||
# We build them within the L4 build directory created by the 'syscall-fiasco'
|
||||
# library.
|
||||
#
|
||||
|
||||
LIBS += syscall-fiasco
|
||||
|
||||
PKGS = l4sys/lib \
|
||||
uclibc/lib/uclibc \
|
||||
uclibc/lib/include \
|
||||
crtx \
|
||||
l4util/lib \
|
||||
cxx \
|
||||
sigma0/server \
|
||||
bootstrap
|
||||
|
||||
L4_BUILD_DIR := $(LIB_CACHE_DIR)/syscall-fiasco
|
||||
|
||||
include $(REP_DIR)/lib/mk/l4_pkg.inc
|
||||
|
||||
#
|
||||
# Execute the rules in this file only at the second build stage when we know
|
||||
# about the complete build settings, e.g., 'CROSS_DEV_PREFIX'.
|
||||
#
|
||||
ifeq ($(called_from_lib_mk),yes)
|
||||
all: $(FIASCO)
|
||||
endif
|
||||
|
@ -8,8 +8,6 @@
|
||||
# the target
|
||||
#
|
||||
|
||||
LIBS += platform
|
||||
|
||||
ifeq ($(filter-out $(SPECS),x86_32),)
|
||||
L4_BUILD_ARCH := x86
|
||||
endif
|
||||
@ -19,19 +17,29 @@ ifeq ($(filter-out $(SPECS),arm),)
|
||||
endif
|
||||
|
||||
ifeq ($(L4_BUILD_ARCH),)
|
||||
all: l4_build_arch_undefined
|
||||
$(VERBOSE)$(ECHO) "Error: L4_BUILD_ARCH undefined, architecture not supported"
|
||||
$(VERBOSE)false
|
||||
$(error L4_BUILD_ARCH undefined, architecture not supported)
|
||||
endif
|
||||
|
||||
L4_PKG_DIR = $(L4_SRC_DIR)/l4/pkg
|
||||
PKG_TAGS = $(addsuffix .tag,$(PKGS))
|
||||
ifndef L4_BUILD_DIR
|
||||
$(error L4_BUILD_DIR undefined)
|
||||
endif
|
||||
|
||||
L4_PKG_DIR = $(L4_SRC_DIR)/l4/pkg
|
||||
PKG_TAGS = $(addsuffix .tag,$(PKGS))
|
||||
|
||||
BUILD_OUTPUT_FILTER = 2>&1 | sed "s~^~ [$*] ~"
|
||||
|
||||
ifeq ($(VERBOSE),)
|
||||
L4_VERBOSE = V=1
|
||||
endif
|
||||
|
||||
$(TARGET): $(PKG_TAGS)
|
||||
#
|
||||
# Execute the rules in this file only at the second build stage when we know
|
||||
# about the complete build settings, e.g., 'CROSS_DEV_PREFIX'.
|
||||
#
|
||||
ifeq ($(called_from_lib_mk),yes)
|
||||
all: $(PKG_TAGS)
|
||||
endif
|
||||
|
||||
#
|
||||
# We preserve the order of processing 'l4/pkg/' directories because of
|
||||
@ -52,17 +60,7 @@ $(TARGET): $(PKG_TAGS)
|
||||
-C $(L4_PKG_DIR)/$* \
|
||||
CC="$(CROSS_DEV_PREFIX)gcc" \
|
||||
CXX="$(CROSS_DEV_PREFIX)g++" \
|
||||
LD="$(CROSS_DEV_PREFIX)ld"
|
||||
LD="$(CROSS_DEV_PREFIX)ld" \
|
||||
$(BUILD_OUTPUT_FILTER)
|
||||
$(VERBOSE)mkdir -p $(dir $@) && touch $@
|
||||
|
||||
clean cleanall: clean_tags
|
||||
|
||||
# if (pseudo) target is named after a directory, remove the whole subtree
|
||||
clean_prg_objects: clean_dir_named_as_target
|
||||
|
||||
clean_dir_named_as_target:
|
||||
$(VERBOSE)(test -d $(TARGET) && rm -rf $(TARGET)) || true
|
||||
|
||||
clean_tags:
|
||||
$(VERBOSE)rm -f $(PKG_TAGS)
|
||||
|
@ -1,19 +0,0 @@
|
||||
#
|
||||
# Build L4env base libraries, needed by sigma0 and bootstrap
|
||||
|
||||
|
||||
# ignore stage one, visit the L4 build system at second build stage
|
||||
ifeq ($(called_from_lib_mk),yes)
|
||||
|
||||
# packages in 'l4/pkg/'
|
||||
PKGS = l4sys/lib \
|
||||
uclibc/lib/uclibc \
|
||||
uclibc/lib/include \
|
||||
crtx \
|
||||
l4util/lib \
|
||||
cxx
|
||||
|
||||
include $(REP_DIR)/mk/l4_pkg.mk
|
||||
all: $(PKG_TAGS)
|
||||
|
||||
endif
|
@ -1,56 +0,0 @@
|
||||
#
|
||||
# Create prerequisites for building Genode for Fiasco
|
||||
#
|
||||
# Prior building Genode programs for Fiasco, the kernel bindings must be
|
||||
# generated. This is done by building a minimalistic subset of the original
|
||||
# userland that comes with Fiasco.
|
||||
#
|
||||
|
||||
#
|
||||
# Execute the rules in this file only at the second build stage when we know
|
||||
# about the complete build settings, e.g., the 'CROSS_DEV_PREFIX'.
|
||||
#
|
||||
ifeq ($(called_from_lib_mk),yes)
|
||||
|
||||
#
|
||||
# Sanity checks
|
||||
#
|
||||
ifeq ($(L4_BUILD_DIR),$(BUILD_BASE_DIR)/l4)
|
||||
all: $(L4_SRC_DIR)
|
||||
|
||||
$(L4_SRC_DIR):
|
||||
$(VERBOSE)$(ECHO) "--> Please, execute './tool/ports/prepare_port fiasco' in $(GENODE_DIR)"
|
||||
$(VERBOSE)$(ECHO) "--> before compiling Genode apps for Fiasco."
|
||||
$(VERBOSE)exit 1
|
||||
endif
|
||||
|
||||
#
|
||||
# Create L4 build directory
|
||||
#
|
||||
$(BUILD_BASE_DIR)/l4/.Makeconf.bid.old:
|
||||
$(VERBOSE)mkdir -p $(dir $@)
|
||||
$(VERBOSE)cp $(L4_CONFIG) $(@:.old=)
|
||||
$(VERBOSE_MK) MAKEFLAGS= make $(VERBOSE_DIR) -C $(L4_SRC_DIR)/l4 \
|
||||
O=$(BUILD_BASE_DIR)/l4 SYSTEM_TARGET="$(CROSS_DEV_PREFIX)" oldconfig
|
||||
|
||||
$(BUILD_BASE_DIR)/l4/pkg/uclibc/lib/uclibc:
|
||||
$(VERBOSE)mkdir -p $(BUILD_BASE_DIR)/l4/pkg/uclibc/lib/uclibc
|
||||
$(VERBOSE)tar cf - --exclude .svn -C $(L4_SRC_DIR)/../uclibc ARCH-all ARCH-x86 \
|
||||
| tar xf - -C $(BUILD_BASE_DIR)/l4/pkg/uclibc/lib/uclibc
|
||||
|
||||
PKGS = input/include \
|
||||
drivers/uart/include \
|
||||
l4sys/include \
|
||||
l4util/include \
|
||||
libc_support/include \
|
||||
libsigma0/include
|
||||
|
||||
include $(REP_DIR)/mk/l4_pkg.mk
|
||||
|
||||
all: $(PKG_TAGS)
|
||||
|
||||
$(PKG_TAGS): $(BUILD_BASE_DIR)/l4/.Makeconf.bid.old
|
||||
$(PKG_TAGS): $(BUILD_BASE_DIR)/l4/pkg/uclibc/lib/uclibc
|
||||
|
||||
endif
|
||||
|
@ -1,4 +1,4 @@
|
||||
include $(REP_DIR)/lib/mk/core.inc
|
||||
include $(REP_DIR)/lib/mk/core-fiasco.inc
|
||||
|
||||
LIBS += base-fiasco-common
|
||||
SRC_CC += platform_x86.cc
|
3
repos/base-fiasco/lib/mk/spec/x86_32/kernel-fiasco.mk
Normal file
3
repos/base-fiasco/lib/mk/spec/x86_32/kernel-fiasco.mk
Normal file
@ -0,0 +1,3 @@
|
||||
KERNEL_CONFIG = $(REP_DIR)/config/kernel-config.x86
|
||||
|
||||
include $(REP_DIR)/lib/mk/kernel-fiasco.inc
|
3
repos/base-fiasco/lib/mk/spec/x86_32/startup-fiasco.mk
Normal file
3
repos/base-fiasco/lib/mk/spec/x86_32/startup-fiasco.mk
Normal file
@ -0,0 +1,3 @@
|
||||
include $(BASE_DIR)/lib/mk/spec/x86_32/startup.inc
|
||||
|
||||
LIBS += syscall-fiasco
|
@ -3,4 +3,4 @@
|
||||
#
|
||||
L4_CONFIG = $(REP_DIR)/config/l4env-config.x86
|
||||
|
||||
include $(REP_DIR)/lib/mk/platform.inc
|
||||
include $(REP_DIR)/lib/mk/syscall-fiasco.inc
|
38
repos/base-fiasco/lib/mk/syscall-fiasco.inc
Normal file
38
repos/base-fiasco/lib/mk/syscall-fiasco.inc
Normal file
@ -0,0 +1,38 @@
|
||||
#
|
||||
# Create prerequisites for building Genode for Fiasco
|
||||
#
|
||||
# Prior building Genode programs for Fiasco, the kernel bindings must be
|
||||
# generated. This is done by building a minimalistic subset of the original
|
||||
# userland that comes with Fiasco.
|
||||
#
|
||||
|
||||
L4_SRC_DIR = $(call select_from_ports,fiasco)/src/kernel/fiasco/fiasco/snapshot
|
||||
L4_BUILD_DIR := $(shell pwd)
|
||||
|
||||
#
|
||||
# Create L4 build directory
|
||||
#
|
||||
.Makeconf.bid.old:
|
||||
$(VERBOSE)mkdir -p $(dir $@)
|
||||
$(VERBOSE)cp $(L4_CONFIG) $(@:.old=)
|
||||
$(VERBOSE_MK) MAKEFLAGS= make $(VERBOSE_DIR) -C $(L4_SRC_DIR)/l4 \
|
||||
O=$(L4_BUILD_DIR) SYSTEM_TARGET="$(CROSS_DEV_PREFIX)" oldconfig \
|
||||
2>&1 | sed "s/^/ [l4build] /"
|
||||
$(VERBOSE)touch $@
|
||||
|
||||
pkg/uclibc/lib/uclibc:
|
||||
$(VERBOSE)mkdir -p pkg/uclibc/lib/uclibc
|
||||
$(VERBOSE)tar cf - --exclude .svn -C $(L4_SRC_DIR)/../uclibc ARCH-all ARCH-x86 \
|
||||
| tar xf - -C pkg/uclibc/lib/uclibc
|
||||
|
||||
PKGS = input/include \
|
||||
drivers/uart/include \
|
||||
l4sys/include \
|
||||
l4util/include \
|
||||
libc_support/include \
|
||||
libsigma0/include
|
||||
|
||||
include $(REP_DIR)/lib/mk/l4_pkg.inc
|
||||
|
||||
$(PKG_TAGS): .Makeconf.bid.old
|
||||
$(PKG_TAGS): pkg/uclibc/lib/uclibc
|
@ -1,25 +0,0 @@
|
||||
#
|
||||
# Specifics for the l4v2 kernel API
|
||||
#
|
||||
|
||||
#
|
||||
# Read default and builddir-specific config files
|
||||
#
|
||||
# In these config files, we find the definition of L4_DIR
|
||||
#
|
||||
-include $(call select_from_repositories,etc/fiasco.conf)
|
||||
-include $(BUILD_BASE_DIR)/etc/fiasco.conf
|
||||
|
||||
L4_BUILD_DIR := $(BUILD_BASE_DIR)/l4
|
||||
L4_SRC_DIR := $(call select_from_ports,fiasco)/src/kernel/fiasco/fiasco/snapshot
|
||||
|
||||
#
|
||||
# L4/sys headers
|
||||
#
|
||||
L4_INC_DIR += $(L4_BUILD_DIR)/include \
|
||||
$(L4_BUILD_DIR)/include/l4v2
|
||||
|
||||
clean_contrib:
|
||||
$(VERBOSE)rm -rf $(BUILD_BASE_DIR)/l4
|
||||
|
||||
cleanall: clean_contrib
|
@ -1,20 +0,0 @@
|
||||
#
|
||||
# Specifics for Fiasco L4v2 on x86
|
||||
#
|
||||
|
||||
SPECS += x86_32 fiasco
|
||||
SPECS += pci ps2 vesa framebuffer
|
||||
|
||||
#
|
||||
# x86-specific L4v2/sys headers
|
||||
#
|
||||
L4_INC_DIR += $(L4_BUILD_DIR)/include/x86/l4v2 \
|
||||
$(L4_BUILD_DIR)/include/x86
|
||||
|
||||
#
|
||||
# Also include less-specific configuration last
|
||||
#
|
||||
include $(call select_from_repositories,mk/spec/x86_32.mk)
|
||||
include $(call select_from_repositories,mk/spec/fiasco.mk)
|
||||
|
||||
INC_DIR += $(L4_INC_DIR)
|
@ -1,5 +0,0 @@
|
||||
TARGET = bootstrap
|
||||
PKGS = bootstrap
|
||||
LIBS = l4v2_support
|
||||
|
||||
include $(REP_DIR)/mk/l4_pkg.mk
|
3
repos/base-fiasco/src/core/fiasco/target.mk
Normal file
3
repos/base-fiasco/src/core/fiasco/target.mk
Normal file
@ -0,0 +1,3 @@
|
||||
LIBS = core-fiasco
|
||||
|
||||
include $(BASE_DIR)/src/core/target.inc
|
18
repos/base-fiasco/src/kernel/fiasco/target.mk
Normal file
18
repos/base-fiasco/src/kernel/fiasco/target.mk
Normal file
@ -0,0 +1,18 @@
|
||||
TARGET = kernel-fiasco
|
||||
LIBS = kernel-fiasco
|
||||
|
||||
$(TARGET): sigma0 bootstrap kernel
|
||||
|
||||
L4_BUILD_DIR = $(LIB_CACHE_DIR)/syscall-fiasco
|
||||
|
||||
kernel:
|
||||
$(VERBOSE)ln -sf $(LIB_CACHE_DIR)/kernel-fiasco/build/fiasco $@
|
||||
|
||||
sigma0:
|
||||
$(VERBOSE)ln -sf $(L4_BUILD_DIR)/bin/x86_586/l4v2/sigma0
|
||||
|
||||
bootstrap:
|
||||
$(VERBOSE)ln -sf $(L4_BUILD_DIR)/bin/x86_586/bootstrap
|
||||
|
||||
clean cleanall:
|
||||
$(VERBOSE)rm -f kernel sigma0 bootstrap
|
@ -1,4 +0,0 @@
|
||||
REQUIRES = x86 32bit
|
||||
KERNEL_CONFIG = $(REP_DIR)/config/kernel-config.x86
|
||||
|
||||
-include $(PRG_DIR)/../../target.inc
|
@ -1,22 +0,0 @@
|
||||
TARGET = fiasco
|
||||
REQUIRES += fiasco
|
||||
FIASCO_BUILD_DIR = $(BUILD_BASE_DIR)/kernel/$(TARGET)
|
||||
FIASCO = $(FIASCO_BUILD_DIR)/fiasco
|
||||
FIASCO_SRC = $(L4_SRC_DIR)/kernel/fiasco
|
||||
|
||||
$(TARGET): $(FIASCO)
|
||||
|
||||
$(FIASCO_BUILD_DIR):
|
||||
$(VERBOSE_MK) MAKEFLAGS= $(MAKE) SYSTEM_TARGET="$(CROSS_DEV_PREFIX)" \
|
||||
$(VERBOSE_DIR) -C $(FIASCO_SRC) BUILDDIR=$@
|
||||
$(VERBOSE)cp $(KERNEL_CONFIG) $@/globalconfig.out
|
||||
$(VERBOSE_MK) MAKEFLAGS= $(MAKE) SYSTEM_TARGET="$(CROSS_DEV_PREFIX)" \
|
||||
$(VERBOSE_DIR) -C $@ oldconfig
|
||||
|
||||
$(FIASCO): $(FIASCO_BUILD_DIR)
|
||||
$(VERBOSE_MK) MAKEFLAGS= $(MAKE) SYSTEM_TARGET="$(CROSS_DEV_PREFIX)" \
|
||||
$(VERBOSE_DIR) -C $(FIASCO_BUILD_DIR)
|
||||
$(VERBOSE)ln -sf $@ $(BUILD_BASE_DIR)/bin/$(TARGET)
|
||||
|
||||
clean cleanall:
|
||||
$(VERBOSE)rm -rf $(FIASCO_BUILD_DIR)
|
@ -1,5 +0,0 @@
|
||||
TARGET = sigma0
|
||||
PKGS = sigma0/server
|
||||
LIBS = l4v2_support
|
||||
|
||||
include $(REP_DIR)/mk/l4_pkg.mk
|
@ -111,26 +111,6 @@ to download the Genode project webpage via the 'wget' tool within the L4Linux
|
||||
environment. If all wents fine the run-script completes successfully.
|
||||
|
||||
|
||||
Integration of Fiasco.OC with Genode
|
||||
####################################
|
||||
|
||||
If you don't want the Genode build system to build the Fiasco.OC kernel for
|
||||
you, but you want to provide your own version, you have to state in the
|
||||
'etc/foc.conf' file within your build directory, where to find it:
|
||||
|
||||
! L4_BUILD_DIR = <l4re-build-dir>
|
||||
! KERNEL = <fiasco.oc-kernel-binary>
|
||||
|
||||
The first variable states where to find the kernel bindings (the L4RE build
|
||||
directory), the second one states where your kernel binary can be found.
|
||||
After adding these variable to the file, you have to do a full cleanup
|
||||
in your build directory to ensure, that the right bindings are used:
|
||||
|
||||
! make cleanall
|
||||
|
||||
From now on, run-scripts will use your provided kernel.
|
||||
|
||||
|
||||
Further Information
|
||||
###################
|
||||
|
||||
|
@ -1,20 +0,0 @@
|
||||
#
|
||||
# Fiasco.OC-specific default configuration options
|
||||
#
|
||||
|
||||
#
|
||||
# Directory, where to search for L4 headers
|
||||
#
|
||||
# When using this file as template for a customized
|
||||
# '<builddir>/etc/kernel.conf'.
|
||||
#
|
||||
#L4_BUILD_DIR = $(HOME)/src/l4build.x86
|
||||
|
||||
#
|
||||
# Path to the Fiasco.OC kernel
|
||||
#
|
||||
# When using this file as template for a customized
|
||||
# '<builddir>/etc/kernel.conf'.
|
||||
#
|
||||
#KERNEL = $(HOME)/src/fiasco-build.x86/fiasco
|
||||
|
@ -1,8 +1 @@
|
||||
#
|
||||
# Description of build platform
|
||||
#
|
||||
|
||||
#
|
||||
# By default, build Fiasco.OC binaries for ia32.
|
||||
#
|
||||
SPECS ?= genode foc_x86_32
|
||||
SPECS += genode foc
|
||||
|
23
repos/base-foc/lib/import/import-syscall-foc.mk
Normal file
23
repos/base-foc/lib/import/import-syscall-foc.mk
Normal file
@ -0,0 +1,23 @@
|
||||
L4_INCLUDE_DIR := $(LIB_CACHE_DIR)/syscall-foc/include
|
||||
|
||||
ifeq ($(filter-out $(SPECS),x86_32),)
|
||||
INC_DIR += $(L4_INCLUDE_DIR)/x86/l4f $(L4_INCLUDE_DIR)/x86
|
||||
endif # 32bit
|
||||
|
||||
ifeq ($(filter-out $(SPECS),x86_64),)
|
||||
INC_DIR += $(L4_INCLUDE_DIR)/amd64/l4f $(L4_INCLUDE_DIR)/amd64
|
||||
endif # 64bit
|
||||
|
||||
ifeq ($(filter-out $(SPECS),arm),)
|
||||
INC_DIR += $(L4_INCLUDE_DIR)/arm/l4f $(L4_INCLUDE_DIR)/arm
|
||||
CC_OPT += -DARCH_arm
|
||||
endif # ARM
|
||||
|
||||
INC_DIR += $(L4_INCLUDE_DIR)/l4f $(L4_INCLUDE_DIR)
|
||||
CC_OPT += -DCONFIG_L4_CALL_SYSCALLS
|
||||
|
||||
#
|
||||
# Use 'regparm=0' call instead of an inline function, when accessing
|
||||
# the utcb. This is needed to stay compatible with L4linux
|
||||
#
|
||||
CC_OPT += -DL4SYS_USE_UTCB_WRAP=1
|
@ -6,7 +6,7 @@
|
||||
|
||||
include $(BASE_DIR)/lib/mk/base-common.inc
|
||||
|
||||
LIBS += syscall startup
|
||||
LIBS += syscall-foc startup-foc
|
||||
|
||||
SRC_CC += spin_lock.cc cap_map.cc
|
||||
SRC_CC += signal_submit.cc
|
||||
|
@ -1,5 +1,6 @@
|
||||
include $(BASE_DIR)/lib/mk/base.inc
|
||||
|
||||
LIBS += base-foc-common
|
||||
LIBS += base-foc-common syscall-foc
|
||||
|
||||
SRC_CC += cap_map_remove.cc cap_alloc.cc
|
||||
SRC_CC += thread_start.cc
|
||||
|
@ -1,8 +1,6 @@
|
||||
REQUIRES += foc
|
||||
|
||||
GEN_CORE_DIR = $(BASE_DIR)/src/core
|
||||
|
||||
LIBS += base-foc-common
|
||||
LIBS += base-foc-common syscall-foc
|
||||
|
||||
SRC_CC += stack_area.cc \
|
||||
core_log.cc \
|
47
repos/base-foc/lib/mk/kernel-foc.inc
Normal file
47
repos/base-foc/lib/mk/kernel-foc.inc
Normal file
@ -0,0 +1,47 @@
|
||||
FOC_BUILD_DIR = $(shell pwd)/build
|
||||
FOC = $(FOC_BUILD_DIR)/foc
|
||||
FOC_SRC := $(call select_from_ports,foc)/src/kernel/foc/kernel/fiasco
|
||||
|
||||
KERNEL_BUILD_OUTPUT_FILTER = 2>&1 | sed "s/^/ [fiasco.oc] /"
|
||||
|
||||
$(FOC_BUILD_DIR):
|
||||
$(VERBOSE_MK) $(MAKE) SYSTEM_TARGET="$(CROSS_DEV_PREFIX)" \
|
||||
$(VERBOSE_DIR) -C $(FOC_SRC) BUILDDIR=$@ \
|
||||
$(KERNEL_BUILD_OUTPUT_FILTER)
|
||||
$(VERBOSE)cp $(KERNEL_CONFIG) $@/globalconfig.out
|
||||
|
||||
$(FOC): $(FOC_BUILD_DIR)
|
||||
$(VERBOSE_MK) $(MAKE) SYSTEM_TARGET="$(CROSS_DEV_PREFIX)" \
|
||||
CC="$(CC)" CXX="$(CXX)" \
|
||||
$(VERBOSE_DIR) -C $(FOC_BUILD_DIR) \
|
||||
$(KERNEL_BUILD_OUTPUT_FILTER)
|
||||
$(VERBOSE)touch $@
|
||||
|
||||
#
|
||||
# Sigma0 and bootstrap are provided as L4 packages
|
||||
#
|
||||
# We build them within the L4 build directory created by the 'syscall-fiasco'
|
||||
# library.
|
||||
#
|
||||
|
||||
LIBS += syscall-foc
|
||||
|
||||
PKGS := uclibc-headers \
|
||||
uclibc-minimal \
|
||||
l4util \
|
||||
cxx \
|
||||
sigma0 \
|
||||
drivers-frst/include drivers-frst/of drivers-frst/uart \
|
||||
bootstrap
|
||||
|
||||
L4_BUILD_DIR := $(LIB_CACHE_DIR)/syscall-foc/build
|
||||
|
||||
include $(REP_DIR)/lib/mk/l4_pkg.inc
|
||||
|
||||
#
|
||||
# Execute the rules in this file only at the second build stage when we know
|
||||
# about the complete build settings, e.g., 'CROSS_DEV_PREFIX'.
|
||||
#
|
||||
ifeq ($(called_from_lib_mk),yes)
|
||||
all: $(FOC)
|
||||
endif
|
@ -8,8 +8,6 @@
|
||||
# the target
|
||||
#
|
||||
|
||||
LIBS += platform
|
||||
|
||||
ifeq ($(filter-out $(SPECS),x86_32),)
|
||||
L4_BUILD_ARCH := x86_586
|
||||
endif
|
||||
@ -27,17 +25,22 @@ ifeq ($(filter-out $(SPECS),arm_v6),)
|
||||
endif
|
||||
|
||||
ifeq ($(L4_BUILD_ARCH),)
|
||||
all: l4_build_arch_undefined
|
||||
$(VERBOSE)$(ECHO) "Error: L4_BUILD_ARCH undefined, architecture not supported"
|
||||
$(VERBOSE)false
|
||||
$(error L4_BUILD_ARCH undefined, architecture not supported)
|
||||
endif
|
||||
|
||||
L4_BUILD_DIR = $(BUILD_BASE_DIR)/l4
|
||||
L4_BUILD_OPT = SYSTEM_TARGET=$(CROSS_DEV_PREFIX)
|
||||
L4_PKG_DIR := $(call select_from_ports,foc)/src/kernel/foc/l4/pkg
|
||||
PKG_TAGS = $(addsuffix .tag,$(PKGS))
|
||||
|
||||
$(TARGET): $(PKG_TAGS)
|
||||
BUILD_OUTPUT_FILTER = 2>&1 | sed "s~^~ [$*] ~"
|
||||
|
||||
#
|
||||
# Execute the rules in this file only at the second build stage when we know
|
||||
# about the complete build settings, e.g., 'CROSS_DEV_PREFIX'.
|
||||
#
|
||||
ifeq ($(called_from_lib_mk),yes)
|
||||
all: $(PKG_TAGS)
|
||||
endif
|
||||
|
||||
#
|
||||
# We preserve the order of processing 'l4/pkg/' directories because of
|
||||
@ -47,17 +50,7 @@ $(TARGET): $(PKG_TAGS)
|
||||
.NOTPARALLEL: $(PKG_TAGS)
|
||||
|
||||
%.tag:
|
||||
$(VERBOSE_MK) $(MAKE) $(VERBOSE_DIR) O=$(L4_BUILD_DIR) -C $(L4_PKG_DIR)/$* "$(L4_BUILD_OPT)"
|
||||
$(VERBOSE_MK) $(MAKE) $(VERBOSE_DIR) O=$(L4_BUILD_DIR) -C $(L4_PKG_DIR)/$* \
|
||||
"$(L4_BUILD_OPT)" $(BUILD_OUTPUT_FILTER)
|
||||
$(VERBOSE)mkdir -p $(dir $@) && touch $@
|
||||
|
||||
clean cleanall: clean_tags
|
||||
|
||||
# if (pseudo) target is named after a directory, remove the whole subtree
|
||||
clean_prg_objects: clean_dir_named_as_target
|
||||
|
||||
clean_dir_named_as_target:
|
||||
$(VERBOSE)(test -d $(TARGET) && rm -rf $(TARGET)) || true
|
||||
|
||||
clean_tags:
|
||||
$(VERBOSE)rm -f $(PKG_TAGS)
|
||||
|
@ -1,14 +0,0 @@
|
||||
#
|
||||
# Build L4re base libraries, needed by sigma0 and bootstrap
|
||||
|
||||
|
||||
# ignore stage one, visit the L4 build system at second build stage
|
||||
ifeq ($(called_from_lib_mk),yes)
|
||||
|
||||
# packages in 'l4/pkg/'
|
||||
PKGS = uclibc-headers uclibc-minimal l4util cxx
|
||||
|
||||
include $(REP_DIR)/mk/l4_pkg.mk
|
||||
all: $(PKG_TAGS)
|
||||
|
||||
endif
|
@ -1,59 +0,0 @@
|
||||
#
|
||||
# Create prerequisites for building Genode for Fiasco.OC
|
||||
#
|
||||
# Prior building Genode programs for Fiasco.OC, the kernel bindings must be
|
||||
# generated. This is done by building a minimalistic subset of the original
|
||||
# userland (L4re) that comes with Fiasco.OC.
|
||||
#
|
||||
|
||||
#
|
||||
# We do this also in the first build stage to ensure that the kernel
|
||||
# port, if missing, is added to the missing-ports list of this stage.
|
||||
#
|
||||
FOC_CONTRIB_DIR := $(call select_from_ports,foc)/src/kernel/foc
|
||||
|
||||
#
|
||||
# Execute the rules in this file only at the second build stage when we know
|
||||
# about the complete build settings, e.g., the 'CROSS_DEV_PREFIX'.
|
||||
#
|
||||
ifeq ($(called_from_lib_mk),yes)
|
||||
|
||||
#
|
||||
# Create mirror for architecture-specific L4sys header files
|
||||
#
|
||||
L4_INC_TARGETS += l4/sys \
|
||||
l4f/l4/sys \
|
||||
l4/sigma0 \
|
||||
l4/vcpu
|
||||
|
||||
all: $(addprefix $(BUILD_BASE_DIR)/include/,$(L4_INC_TARGETS))
|
||||
|
||||
$(BUILD_BASE_DIR)/include/%:
|
||||
$(VERBOSE)mkdir -p $(dir $@)
|
||||
$(VERBOSE)ln -sf $(L4_BUILD_DIR)/include/$* $@
|
||||
|
||||
#
|
||||
# Create L4 build directory
|
||||
#
|
||||
# Resetting the 'MAKEFLAGS' is important because otherwise, the L4
|
||||
# build system will stuble over predefined variables, i.e., 'LIB'
|
||||
#
|
||||
$(BUILD_BASE_DIR)/l4/.kconfig:
|
||||
$(VERBOSE_MK) MAKEFLAGS= $(MAKE) $(VERBOSE_DIR) -C $(FOC_CONTRIB_DIR)/l4 B=$(dir $@) \
|
||||
DROPSCONF_DEFCONFIG="$(L4_CONFIG)" \
|
||||
VERBOSE="$(VERBOSE)" SYSTEM_TARGET="$(CROSS_DEV_PREFIX)"
|
||||
|
||||
PKGS = ldscripts \
|
||||
libgcc-pure \
|
||||
l4sys \
|
||||
libgcc \
|
||||
libsigma0 \
|
||||
libvcpu/include
|
||||
|
||||
include $(REP_DIR)/mk/l4_pkg.mk
|
||||
all: $(PKG_TAGS)
|
||||
|
||||
$(PKG_TAGS): $(BUILD_BASE_DIR)/l4/.kconfig
|
||||
|
||||
endif
|
||||
|
@ -5,6 +5,6 @@ SRC_CC += spec/arm/platform_arm.cc \
|
||||
# override default stack-area location
|
||||
INC_DIR += $(REP_DIR)/src/include/spec/arm
|
||||
|
||||
include $(REP_DIR)/lib/mk/core.inc
|
||||
include $(REP_DIR)/lib/mk/core-foc.inc
|
||||
|
||||
vpath platform_services.cc $(GEN_CORE_DIR)
|
@ -1,8 +0,0 @@
|
||||
#
|
||||
# Create mirror for architecture-specific L4sys header files
|
||||
#
|
||||
L4_INC_TARGETS = arm/l4/sys \
|
||||
arm/l4f/l4/sys \
|
||||
arm/l4/vcpu
|
||||
|
||||
include $(REP_DIR)/lib/mk/platform.inc
|
3
repos/base-foc/lib/mk/spec/arm/startup-foc.mk
Normal file
3
repos/base-foc/lib/mk/spec/arm/startup-foc.mk
Normal file
@ -0,0 +1,3 @@
|
||||
LIBS += syscall-foc
|
||||
|
||||
include $(BASE_DIR)/lib/mk/spec/arm/startup.inc
|
18
repos/base-foc/lib/mk/spec/arm/syscall-foc.inc
Normal file
18
repos/base-foc/lib/mk/spec/arm/syscall-foc.inc
Normal file
@ -0,0 +1,18 @@
|
||||
L4_INC_TARGETS = arm/l4/sys \
|
||||
arm/l4f/l4/sys \
|
||||
arm/l4/vcpu
|
||||
|
||||
CC_OPT += -Iinclude/arm
|
||||
|
||||
include $(REP_DIR)/lib/mk/syscall-foc.inc
|
||||
|
||||
SRC_C += utcb.c
|
||||
SRC_S += atomic_ops_s.S
|
||||
|
||||
utcb.c:
|
||||
$(VERBOSE)ln -sf $(L4_BUILD_DIR)/source/pkg/l4sys/lib/src/utcb.c
|
||||
|
||||
atomic_ops_s.S:
|
||||
$(VERBOSE)ln -sf $(L4_BUILD_DIR)/source/pkg/l4sys/lib/src/ARCH-arm/atomic_ops_s.S
|
||||
|
||||
utcb.c atomic_ops_s.S: $(PKG_TAGS)
|
@ -1,5 +0,0 @@
|
||||
SRC_C += utcb.c
|
||||
SRC_S += atomic_ops_s.S
|
||||
|
||||
vpath atomic_ops_s.S $(L4_BUILD_DIR)/source/pkg/l4sys/lib/src/ARCH-arm
|
||||
vpath utcb.c $(L4_BUILD_DIR)/source/pkg/l4sys/lib/src
|
3
repos/base-foc/lib/mk/spec/arndale/kernel-foc.mk
Normal file
3
repos/base-foc/lib/mk/spec/arndale/kernel-foc.mk
Normal file
@ -0,0 +1,3 @@
|
||||
KERNEL_CONFIG := $(REP_DIR)/config/arndale.kernel
|
||||
|
||||
include $(REP_DIR)/lib/mk/kernel-foc.inc
|
@ -1,6 +0,0 @@
|
||||
#
|
||||
# Configuration for L4 build system (for kernel-bindings, sigma0, bootstrap).
|
||||
#
|
||||
L4_CONFIG = $(call select_from_repositories,config/arndale.user)
|
||||
|
||||
include $(REP_DIR)/lib/mk/spec/arm/platform.inc
|
3
repos/base-foc/lib/mk/spec/arndale/syscall-foc.mk
Normal file
3
repos/base-foc/lib/mk/spec/arndale/syscall-foc.mk
Normal file
@ -0,0 +1,3 @@
|
||||
L4_CONFIG := $(call select_from_repositories,config/arndale.user)
|
||||
|
||||
include $(REP_DIR)/lib/mk/spec/arm/syscall-foc.inc
|
3
repos/base-foc/lib/mk/spec/imx53/kernel-foc.mk
Normal file
3
repos/base-foc/lib/mk/spec/imx53/kernel-foc.mk
Normal file
@ -0,0 +1,3 @@
|
||||
KERNEL_CONFIG := $(REP_DIR)/config/imx53.kernel
|
||||
|
||||
include $(REP_DIR)/lib/mk/kernel-foc.inc
|
@ -1,6 +0,0 @@
|
||||
#
|
||||
# Configuration for L4 build system (for kernel-bindings, sigma0, bootstrap).
|
||||
#
|
||||
L4_CONFIG = $(call select_from_repositories,config/imx53.user)
|
||||
|
||||
include $(REP_DIR)/lib/mk/spec/arm/platform.inc
|
3
repos/base-foc/lib/mk/spec/imx53/syscall-foc.mk
Normal file
3
repos/base-foc/lib/mk/spec/imx53/syscall-foc.mk
Normal file
@ -0,0 +1,3 @@
|
||||
L4_CONFIG := $(call select_from_repositories,config/imx53.user)
|
||||
|
||||
include $(REP_DIR)/lib/mk/spec/arm/syscall-foc.inc
|
3
repos/base-foc/lib/mk/spec/odroid_x2/kernel-foc.mk
Normal file
3
repos/base-foc/lib/mk/spec/odroid_x2/kernel-foc.mk
Normal file
@ -0,0 +1,3 @@
|
||||
KERNEL_CONFIG := $(REP_DIR)/config/odroid_x2.kernel
|
||||
|
||||
include $(REP_DIR)/lib/mk/kernel-foc.inc
|
@ -1,6 +0,0 @@
|
||||
#
|
||||
# Configuration for L4 build system (for kernel-bindings, sigma0, bootstrap).
|
||||
#
|
||||
L4_CONFIG = $(call select_from_repositories,config/odroid_x2.user)
|
||||
|
||||
include $(REP_DIR)/lib/mk/spec/arm/platform.inc
|
3
repos/base-foc/lib/mk/spec/odroid_x2/syscall-foc.mk
Normal file
3
repos/base-foc/lib/mk/spec/odroid_x2/syscall-foc.mk
Normal file
@ -0,0 +1,3 @@
|
||||
L4_CONFIG := $(call select_from_repositories,config/odroid_x2.user)
|
||||
|
||||
include $(REP_DIR)/lib/mk/spec/arm/syscall-foc.inc
|
3
repos/base-foc/lib/mk/spec/panda/kernel-foc.mk
Normal file
3
repos/base-foc/lib/mk/spec/panda/kernel-foc.mk
Normal file
@ -0,0 +1,3 @@
|
||||
KERNEL_CONFIG := $(REP_DIR)/config/panda.kernel
|
||||
|
||||
include $(REP_DIR)/lib/mk/kernel-foc.inc
|
@ -1,6 +0,0 @@
|
||||
#
|
||||
# Configuration for L4 build system (for kernel-bindings, sigma0, bootstrap).
|
||||
#
|
||||
L4_CONFIG = $(call select_from_repositories,config/panda.user)
|
||||
|
||||
include $(REP_DIR)/lib/mk/spec/arm/platform.inc
|
3
repos/base-foc/lib/mk/spec/panda/syscall-foc.mk
Normal file
3
repos/base-foc/lib/mk/spec/panda/syscall-foc.mk
Normal file
@ -0,0 +1,3 @@
|
||||
L4_CONFIG := $(call select_from_repositories,config/panda.user)
|
||||
|
||||
include $(REP_DIR)/lib/mk/spec/arm/syscall-foc.inc
|
3
repos/base-foc/lib/mk/spec/pbxa9/kernel-foc.mk
Normal file
3
repos/base-foc/lib/mk/spec/pbxa9/kernel-foc.mk
Normal file
@ -0,0 +1,3 @@
|
||||
KERNEL_CONFIG := $(REP_DIR)/config/pbxa9.kernel
|
||||
|
||||
include $(REP_DIR)/lib/mk/kernel-foc.inc
|
@ -1,6 +0,0 @@
|
||||
#
|
||||
# Configuration for L4 build system (for kernel-bindings, sigma0, bootstrap).
|
||||
#
|
||||
L4_CONFIG = $(call select_from_repositories,config/pbxa9.user)
|
||||
|
||||
include $(REP_DIR)/lib/mk/spec/arm/platform.inc
|
3
repos/base-foc/lib/mk/spec/pbxa9/syscall-foc.mk
Normal file
3
repos/base-foc/lib/mk/spec/pbxa9/syscall-foc.mk
Normal file
@ -0,0 +1,3 @@
|
||||
L4_CONFIG := $(call select_from_repositories,config/pbxa9.user)
|
||||
|
||||
include $(REP_DIR)/lib/mk/spec/arm/syscall-foc.inc
|
3
repos/base-foc/lib/mk/spec/rpi/kernel-foc.mk
Normal file
3
repos/base-foc/lib/mk/spec/rpi/kernel-foc.mk
Normal file
@ -0,0 +1,3 @@
|
||||
KERNEL_CONFIG := $(REP_DIR)/config/rpi.kernel
|
||||
|
||||
include $(REP_DIR)/lib/mk/kernel-foc.inc
|
@ -1,6 +0,0 @@
|
||||
#
|
||||
# Configuration for L4 build system (for kernel-bindings, sigma0, bootstrap).
|
||||
#
|
||||
L4_CONFIG = $(call select_from_repositories,config/rpi.user)
|
||||
|
||||
include $(REP_DIR)/lib/mk/spec/arm/platform.inc
|
3
repos/base-foc/lib/mk/spec/rpi/syscall-foc.mk
Normal file
3
repos/base-foc/lib/mk/spec/rpi/syscall-foc.mk
Normal file
@ -0,0 +1,3 @@
|
||||
L4_CONFIG := $(call select_from_repositories,config/rpi.user)
|
||||
|
||||
include $(REP_DIR)/lib/mk/spec/arm/syscall-foc.inc
|
10
repos/base-foc/lib/mk/spec/x86/core-foc.inc
Normal file
10
repos/base-foc/lib/mk/spec/x86/core-foc.inc
Normal file
@ -0,0 +1,10 @@
|
||||
SRC_CC += io_port_session_component.cc \
|
||||
io_port_session_support.cc \
|
||||
spec/x86/ipc_pager.cc \
|
||||
spec/x86/platform.cc
|
||||
|
||||
vpath io_port_session_component.cc $(BASE_DIR)/src/core/spec/x86
|
||||
vpath io_port_session_support.cc $(BASE_DIR)/src/core/spec/x86
|
||||
vpath platform_services.cc $(BASE_DIR)/src/core/spec/x86
|
||||
|
||||
include $(REP_DIR)/lib/mk/core-foc.inc
|
@ -1,11 +0,0 @@
|
||||
REQUIRES += x86
|
||||
SRC_CC += io_port_session_component.cc \
|
||||
io_port_session_support.cc \
|
||||
spec/x86/ipc_pager.cc \
|
||||
spec/x86/platform.cc
|
||||
|
||||
vpath io_port_session_component.cc $(BASE_DIR)/src/core/spec/x86
|
||||
vpath io_port_session_support.cc $(BASE_DIR)/src/core/spec/x86
|
||||
vpath platform_services.cc $(BASE_DIR)/src/core/spec/x86
|
||||
|
||||
include $(REP_DIR)/lib/mk/core.inc
|
12
repos/base-foc/lib/mk/spec/x86/syscall-foc.inc
Normal file
12
repos/base-foc/lib/mk/spec/x86/syscall-foc.inc
Normal file
@ -0,0 +1,12 @@
|
||||
SRC_C += utcb.c
|
||||
SRC_S += syscalls_direct.S
|
||||
|
||||
include $(REP_DIR)/lib/mk/syscall-foc.inc
|
||||
|
||||
utcb.c:
|
||||
$(VERBOSE)ln -sf $(L4_BUILD_DIR)/source/pkg/l4sys/lib/src/utcb.c
|
||||
|
||||
syscalls_direct.S:
|
||||
$(VERBOSE)ln -sf $(L4_BUILD_DIR)/source/pkg/l4sys/lib/src/ARCH-x86/syscalls_direct.S
|
||||
|
||||
utcb.c syscalls_direct.S: $(PKG_TAGS)
|
@ -1,5 +0,0 @@
|
||||
SRC_C += utcb.c
|
||||
SRC_S += syscalls_direct.S
|
||||
|
||||
vpath syscalls_direct.S $(L4_BUILD_DIR)/source/pkg/l4sys/lib/src/ARCH-x86
|
||||
vpath utcb.c $(L4_BUILD_DIR)/source/pkg/l4sys/lib/src
|
3
repos/base-foc/lib/mk/spec/x86_32/core-foc.mk
Normal file
3
repos/base-foc/lib/mk/spec/x86_32/core-foc.mk
Normal file
@ -0,0 +1,3 @@
|
||||
SRC_CC += spec/x86_32/ipc_pager.cc
|
||||
|
||||
include $(REP_DIR)/lib/mk/spec/x86/core-foc.inc
|
@ -1,4 +0,0 @@
|
||||
REQUIRES += foc_x86_32
|
||||
SRC_CC += spec/x86_32/ipc_pager.cc
|
||||
|
||||
include $(REP_DIR)/lib/mk/spec/x86/core.inc
|
3
repos/base-foc/lib/mk/spec/x86_32/kernel-foc.mk
Normal file
3
repos/base-foc/lib/mk/spec/x86_32/kernel-foc.mk
Normal file
@ -0,0 +1,3 @@
|
||||
KERNEL_CONFIG := $(REP_DIR)/config/x86_32.kernel
|
||||
|
||||
include $(REP_DIR)/lib/mk/kernel-foc.inc
|
@ -1,13 +0,0 @@
|
||||
#
|
||||
# Configuration for L4 build system (for kernel-bindings, sigma0, bootstrap).
|
||||
#
|
||||
L4_CONFIG = $(call select_from_repositories,config/x86_32.user)
|
||||
|
||||
#
|
||||
# Create mirror for architecture-specific L4sys header files
|
||||
#
|
||||
L4_INC_TARGETS = x86/l4/sys \
|
||||
x86/l4f/l4/sys \
|
||||
x86/l4/vcpu
|
||||
|
||||
include $(REP_DIR)/lib/mk/platform.inc
|
3
repos/base-foc/lib/mk/spec/x86_32/startup-foc.mk
Normal file
3
repos/base-foc/lib/mk/spec/x86_32/startup-foc.mk
Normal file
@ -0,0 +1,3 @@
|
||||
LIBS += syscall-foc
|
||||
|
||||
include $(BASE_DIR)/lib/mk/spec/x86_32/startup.inc
|
9
repos/base-foc/lib/mk/spec/x86_32/syscall-foc.mk
Normal file
9
repos/base-foc/lib/mk/spec/x86_32/syscall-foc.mk
Normal file
@ -0,0 +1,9 @@
|
||||
L4_CONFIG := $(call select_from_repositories,config/x86_32.user)
|
||||
|
||||
L4_INC_TARGETS := x86/l4/sys x86/l4f/l4/sys x86/l4/vcpu
|
||||
|
||||
CC_OPT += -Iinclude/x86
|
||||
|
||||
include $(REP_DIR)/lib/mk/spec/x86/syscall-foc.inc
|
||||
|
||||
vpath syscalls_direct.S $(L4_PKG_DIR)/l4sys/lib/src/ARCH-x86
|
3
repos/base-foc/lib/mk/spec/x86_64/core-foc.mk
Normal file
3
repos/base-foc/lib/mk/spec/x86_64/core-foc.mk
Normal file
@ -0,0 +1,3 @@
|
||||
SRC_CC += spec/x86_64/ipc_pager.cc
|
||||
|
||||
include $(REP_DIR)/lib/mk/spec/x86/core-foc.inc
|
@ -1,4 +0,0 @@
|
||||
REQUIRES += foc_x86_64
|
||||
SRC_CC += spec/x86_64/ipc_pager.cc
|
||||
|
||||
include $(REP_DIR)/lib/mk/spec/x86/core.inc
|
3
repos/base-foc/lib/mk/spec/x86_64/kernel-foc.mk
Normal file
3
repos/base-foc/lib/mk/spec/x86_64/kernel-foc.mk
Normal file
@ -0,0 +1,3 @@
|
||||
KERNEL_CONFIG := $(REP_DIR)/config/x86_64.kernel
|
||||
|
||||
include $(REP_DIR)/lib/mk/kernel-foc.inc
|
@ -1,13 +0,0 @@
|
||||
#
|
||||
# Configuration for L4 build system (for kernel-bindings, sigma0, bootstrap).
|
||||
#
|
||||
L4_CONFIG = $(call select_from_repositories,config/x86_64.user)
|
||||
|
||||
#
|
||||
# Create mirror for architecture-specific L4sys header files
|
||||
#
|
||||
L4_INC_TARGETS = amd64/l4/sys \
|
||||
amd64/l4f/l4/sys \
|
||||
amd64/l4/vcpu
|
||||
|
||||
include $(REP_DIR)/lib/mk/platform.inc
|
3
repos/base-foc/lib/mk/spec/x86_64/startup-foc.mk
Normal file
3
repos/base-foc/lib/mk/spec/x86_64/startup-foc.mk
Normal file
@ -0,0 +1,3 @@
|
||||
LIBS += syscall-foc
|
||||
|
||||
include $(BASE_DIR)/lib/mk/spec/x86_64/startup.inc
|
7
repos/base-foc/lib/mk/spec/x86_64/syscall-foc.mk
Normal file
7
repos/base-foc/lib/mk/spec/x86_64/syscall-foc.mk
Normal file
@ -0,0 +1,7 @@
|
||||
L4_CONFIG := $(call select_from_repositories,config/x86_64.user)
|
||||
|
||||
L4_INC_TARGETS := amd64/l4/sys amd64/l4f/l4/sys amd64/l4/vcpu
|
||||
|
||||
CC_OPT += -Iinclude/amd64
|
||||
|
||||
include $(REP_DIR)/lib/mk/spec/x86/syscall-foc.inc
|
59
repos/base-foc/lib/mk/syscall-foc.inc
Normal file
59
repos/base-foc/lib/mk/syscall-foc.inc
Normal file
@ -0,0 +1,59 @@
|
||||
#
|
||||
# Create prerequisites for building Genode for Fiasco.OC
|
||||
#
|
||||
# Prior building Genode programs for Fiasco.OC, the kernel bindings must be
|
||||
# generated. This is done by building a minimalistic subset of the original
|
||||
# userland (L4re) that comes with Fiasco.OC.
|
||||
#
|
||||
|
||||
L4_SRC_DIR := $(call select_from_ports,foc)/src/kernel/foc
|
||||
L4_BUILD_DIR := $(shell pwd)/build
|
||||
|
||||
#
|
||||
# Create mirror for architecture-specific L4sys header files
|
||||
#
|
||||
L4_INC_TARGETS += l4/sys \
|
||||
l4f/l4/sys \
|
||||
l4/sigma0 \
|
||||
l4/vcpu
|
||||
|
||||
CC_OPT += -Iinclude
|
||||
|
||||
include/%:
|
||||
$(VERBOSE)mkdir -p $(dir $@)
|
||||
$(VERBOSE)ln -sf $(L4_BUILD_DIR)/include/$* $@
|
||||
|
||||
#
|
||||
# Use 'regparm=0' call instead of an inline function, when accessing
|
||||
# the utcb. This is needed to stay compatible with L4linux
|
||||
#
|
||||
CC_OPT += -DL4SYS_USE_UTCB_WRAP=1
|
||||
|
||||
#
|
||||
# Create L4 build directory
|
||||
#
|
||||
# Resetting the 'MAKEFLAGS' is important because otherwise, the L4
|
||||
# build system will stuble over predefined variables, i.e., 'LIB'
|
||||
#
|
||||
$(L4_BUILD_DIR)/.kconfig:
|
||||
$(VERBOSE_MK) MAKEFLAGS= $(MAKE) $(VERBOSE_DIR) -C $(L4_SRC_DIR)/l4 \
|
||||
B=$(L4_BUILD_DIR) DROPSCONF_DEFCONFIG="$(L4_CONFIG)" \
|
||||
VERBOSE="$(VERBOSE)" SYSTEM_TARGET="$(CROSS_DEV_PREFIX)" \
|
||||
2>&1 | sed "s/^/ [l4build] /"
|
||||
|
||||
PKGS := ldscripts \
|
||||
libgcc-pure \
|
||||
l4sys \
|
||||
libgcc \
|
||||
libsigma0 \
|
||||
libvcpu/include
|
||||
|
||||
include $(REP_DIR)/lib/mk/l4_pkg.inc
|
||||
|
||||
$(PKG_TAGS): $(L4_BUILD_DIR)/.kconfig
|
||||
$(PKG_TAGS): $(addprefix include/,$(L4_INC_TARGETS))
|
||||
|
||||
#
|
||||
# Compile 'syscall-foc.lib.a' not before the 'PKGS' are completely built
|
||||
#
|
||||
$(SRC_S) $(SRC_C) : $(PKG_TAGS)
|
@ -1,46 +0,0 @@
|
||||
#
|
||||
# Specifics for the Fiasco.OC kernel API
|
||||
#
|
||||
|
||||
-include $(call select_from_repositories,etc/foc.conf)
|
||||
-include $(BUILD_BASE_DIR)/etc/foc.conf
|
||||
|
||||
#
|
||||
# L4/sys headers
|
||||
#
|
||||
L4_INC_DIR += $(BUILD_BASE_DIR)/include/
|
||||
L4F_INC_DIR += $(BUILD_BASE_DIR)/include/l4f
|
||||
|
||||
#
|
||||
# L4 build directory, if not defined by 'foc.conf', use directory local
|
||||
# to the Genode build directory.
|
||||
#
|
||||
L4_BUILD_DIR ?= $(BUILD_BASE_DIR)/l4
|
||||
|
||||
#
|
||||
# Build everything with -fPIC because the Fiasco.OC syscall bindings
|
||||
# rely on 'ebx' (on x86) being handled with care. Without -fPIC enabled,
|
||||
# the syscall bindings break.
|
||||
#
|
||||
CC_OPT += -fPIC
|
||||
|
||||
#
|
||||
# Use 'regparm=0' call instead of an inline function, when accessing
|
||||
# the utcb. This is needed to stay compatible with L4linux
|
||||
#
|
||||
CC_OPT += -DL4SYS_USE_UTCB_WRAP=1
|
||||
|
||||
all:
|
||||
|
||||
#
|
||||
# Clean rules for removing the side effects of building the platform
|
||||
# library
|
||||
#
|
||||
clean_includes:
|
||||
$(VERBOSE)rm -rf $(BUILD_BASE_DIR)/include
|
||||
|
||||
clean_contrib:
|
||||
$(VERBOSE)rm -rf $(BUILD_BASE_DIR)/l4
|
||||
|
||||
cleanall: clean_contrib clean_includes
|
||||
|
@ -1,27 +1 @@
|
||||
#
|
||||
# Specifics for Fiasco.OC on ARM
|
||||
#
|
||||
|
||||
SPECS += foc
|
||||
|
||||
#
|
||||
# ARM-specific L4/sys headers
|
||||
#
|
||||
L4_INC_DIR = $(BUILD_BASE_DIR)/include/arm
|
||||
L4F_INC_DIR = $(BUILD_BASE_DIR)/include/arm/l4f
|
||||
|
||||
#
|
||||
# Defines for L4/sys headers
|
||||
#
|
||||
CC_OPT += -DCONFIG_L4_CALL_SYSCALLS -DARCH_arm
|
||||
|
||||
#
|
||||
# Architecture-specific L4sys header files
|
||||
#
|
||||
L4_INC_TARGETS = arm/l4/sys \
|
||||
arm/l4f/l4/sys \
|
||||
arm/l4/vcpu
|
||||
|
||||
include $(call select_from_repositories,mk/spec/foc.mk)
|
||||
|
||||
INC_DIR += $(L4F_INC_DIR) $(L4_INC_DIR)
|
||||
|
@ -1,6 +1,6 @@
|
||||
SPECS += foc_arm imx53 imx53_qsb
|
||||
|
||||
# add repository relative include paths
|
||||
# add repository-relative include paths
|
||||
REP_INC_DIR += include/spec/imx53_qsb
|
||||
|
||||
include $(call select_from_repositories,mk/spec/imx53.mk)
|
||||
|
@ -1,20 +1,3 @@
|
||||
#
|
||||
# Specifics for Fiasco.OC on x86
|
||||
#
|
||||
SPECS += x86_32 foc pci ps2 vesa framebuffer
|
||||
|
||||
SPECS += x86_32 foc
|
||||
SPECS += pci ps2 vesa framebuffer
|
||||
|
||||
#
|
||||
# L4/sys headers
|
||||
#
|
||||
L4_INC_DIR = $(BUILD_BASE_DIR)/include/x86
|
||||
L4F_INC_DIR = $(BUILD_BASE_DIR)/include/x86/l4f
|
||||
|
||||
#
|
||||
# Also include less-specific configuration last
|
||||
#
|
||||
include $(call select_from_repositories,mk/spec/x86_32.mk)
|
||||
include $(call select_from_repositories,mk/spec/foc.mk)
|
||||
|
||||
INC_DIR += $(L4F_INC_DIR) $(L4_INC_DIR)
|
||||
|
@ -1,25 +1,3 @@
|
||||
#
|
||||
# Specifics for Fiasco.OC on x86 64-bit
|
||||
#
|
||||
SPECS += x86_64 foc pci ps2 vesa framebuffer
|
||||
|
||||
SPECS += x86_64 foc
|
||||
SPECS += pci ps2 vesa framebuffer
|
||||
|
||||
#
|
||||
# L4/sys headers
|
||||
#
|
||||
L4_INC_DIR = $(BUILD_BASE_DIR)/include/amd64
|
||||
L4F_INC_DIR = $(BUILD_BASE_DIR)/include/amd64/l4f
|
||||
|
||||
#
|
||||
# Compile for 64-bit
|
||||
#
|
||||
CC_OPT += -m64
|
||||
|
||||
#
|
||||
# Also include less-specific configuration last
|
||||
#
|
||||
include $(call select_from_repositories,mk/spec/x86_64.mk)
|
||||
include $(call select_from_repositories,mk/spec/foc.mk)
|
||||
|
||||
INC_DIR += $(L4F_INC_DIR) $(L4_INC_DIR)
|
||||
|
@ -1,5 +0,0 @@
|
||||
TARGET = bootstrap
|
||||
PKGS = drivers-frst/include drivers-frst/of drivers-frst/uart bootstrap
|
||||
LIBS = l4re_support
|
||||
|
||||
include $(REP_DIR)/mk/l4_pkg.mk
|
3
repos/base-foc/src/core/foc/target.mk
Normal file
3
repos/base-foc/src/core/foc/target.mk
Normal file
@ -0,0 +1,3 @@
|
||||
LIBS = core-foc
|
||||
|
||||
include $(BASE_DIR)/src/core/target.inc
|
2
repos/base-foc/src/kernel/foc/target.mk
Normal file
2
repos/base-foc/src/kernel/foc/target.mk
Normal file
@ -0,0 +1,2 @@
|
||||
TARGET = kernel-foc
|
||||
LIBS = kernel-foc
|
@ -1,5 +0,0 @@
|
||||
REQUIRES = arndale
|
||||
FIASCO_DIR := $(call select_from_ports,foc)/src/kernel/foc/kernel/fiasco
|
||||
KERNEL_CONFIG = $(REP_DIR)/config/arndale.kernel
|
||||
|
||||
-include $(PRG_DIR)/../../target.inc
|
@ -1,4 +0,0 @@
|
||||
REQUIRES = imx53
|
||||
KERNEL_CONFIG = $(REP_DIR)/config/imx53.kernel
|
||||
|
||||
-include $(PRG_DIR)/../../target.inc
|
@ -1,5 +0,0 @@
|
||||
REQUIRES = odroid_x2
|
||||
FIASCO_DIR := $(call select_from_ports,foc)/src/kernel/foc/kernel/fiasco
|
||||
KERNEL_CONFIG = $(REP_DIR)/config/odroid_x2.kernel
|
||||
|
||||
-include $(PRG_DIR)/../../target.inc
|
@ -1,5 +0,0 @@
|
||||
REQUIRES = panda
|
||||
FIASCO_DIR := $(call select_from_ports,foc)/src/kernel/foc/kernel/fiasco
|
||||
KERNEL_CONFIG = $(REP_DIR)/config/panda.kernel
|
||||
|
||||
-include $(PRG_DIR)/../../target.inc
|
@ -1,4 +0,0 @@
|
||||
REQUIRES = pbxa9
|
||||
KERNEL_CONFIG = $(REP_DIR)/config/pbxa9.kernel
|
||||
|
||||
-include $(PRG_DIR)/../../target.inc
|
@ -1,5 +0,0 @@
|
||||
REQUIRES = rpi
|
||||
FIASCO_DIR := $(call select_from_ports,foc)/src/kernel/foc/kernel/fiasco
|
||||
KERNEL_CONFIG = $(REP_DIR)/config/rpi.kernel
|
||||
|
||||
-include $(PRG_DIR)/../../target.inc
|
@ -1,4 +0,0 @@
|
||||
REQUIRES = x86 32bit
|
||||
KERNEL_CONFIG = $(REP_DIR)/config/x86_32.kernel
|
||||
|
||||
-include $(PRG_DIR)/../../target.inc
|
@ -1,4 +0,0 @@
|
||||
REQUIRES = x86 64bit
|
||||
KERNEL_CONFIG = $(REP_DIR)/config/x86_64.kernel
|
||||
|
||||
-include $(PRG_DIR)/../../target.inc
|
@ -1,21 +0,0 @@
|
||||
TARGET = fiasco.oc
|
||||
REQUIRES += foc
|
||||
FOC_BUILD_DIR = $(BUILD_BASE_DIR)/kernel/$(TARGET)
|
||||
FIASCO = $(FOC_BUILD_DIR)/fiasco
|
||||
FIASCO_SRC := $(call select_from_ports,foc)/src/kernel/foc/kernel/fiasco
|
||||
|
||||
$(TARGET): $(FIASCO)
|
||||
|
||||
$(FOC_BUILD_DIR):
|
||||
$(VERBOSE_MK) $(MAKE) SYSTEM_TARGET="$(CROSS_DEV_PREFIX)" \
|
||||
$(VERBOSE_DIR) -C $(FIASCO_SRC) BUILDDIR=$@
|
||||
$(VERBOSE)cp $(KERNEL_CONFIG) $@/globalconfig.out
|
||||
|
||||
$(FIASCO): $(FOC_BUILD_DIR)
|
||||
$(VERBOSE_MK) $(MAKE) SYSTEM_TARGET="$(CROSS_DEV_PREFIX)" \
|
||||
CC="$(CC)" CXX="$(CXX)" \
|
||||
$(VERBOSE_DIR) -C $(FOC_BUILD_DIR)
|
||||
$(VERBOSE)ln -sf $@ $(BUILD_BASE_DIR)/bin/$(TARGET)
|
||||
|
||||
clean cleanall:
|
||||
$(VERBOSE)rm -rf $(FOC_BUILD_DIR)
|
@ -1,5 +0,0 @@
|
||||
TARGET = l4f/sigma0
|
||||
PKGS = sigma0
|
||||
LIBS = l4re_support
|
||||
|
||||
include $(REP_DIR)/mk/l4_pkg.mk
|
@ -2,4 +2,4 @@ REQUIRES = foc
|
||||
TARGET = test-cap_integrity
|
||||
SRC_CC = main.cc
|
||||
INC_DIR += $(REP_DIR)/src/include
|
||||
LIBS = base
|
||||
LIBS = base-foc syscall-foc
|
||||
|
@ -1,8 +0,0 @@
|
||||
#
|
||||
# \brief Automatically included by targets that depend on the core lib
|
||||
# \author Martin Stein
|
||||
# \date 2011-12-16
|
||||
#
|
||||
|
||||
# add include paths
|
||||
INC_DIR += $(REP_DIR)/src/core/include
|
@ -5,4 +5,4 @@ SRC_CC += env.cc
|
||||
SRC_CC += capability.cc
|
||||
SRC_CC += cache.cc
|
||||
|
||||
LIBS += startup base-hw-common
|
||||
LIBS += startup-hw base-hw-common
|
||||
|
@ -7,4 +7,4 @@
|
||||
REQUIRES = x86_64
|
||||
|
||||
# add library dependencies
|
||||
LIBS += core-muen_off
|
||||
LIBS += core-hw-muen_off
|
@ -6,4 +6,4 @@
|
||||
#
|
||||
|
||||
# add library dependencies
|
||||
LIBS += core-trustzone_on
|
||||
LIBS += core-hw-trustzone_off
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user