Core-linux Tupfile
This commit is contained in:
parent
03b9cb7530
commit
3e0b1db59e
2
repos/base-linux/Tuprules.tup
Normal file
2
repos/base-linux/Tuprules.tup
Normal file
|
@ -0,0 +1,2 @@
|
|||
include &(BASE_DIR)/Tuprules.tup
|
||||
REP_DIR = $(TUP_CWD)
|
59
repos/base-linux/src/core/Tupfile
Normal file
59
repos/base-linux/src/core/Tupfile
Normal file
|
@ -0,0 +1,59 @@
|
|||
include_rules
|
||||
GEN_CORE_DIR = $(BASE_DIR)/src/core
|
||||
|
||||
DEFINES += -D_GNU_SOURCE
|
||||
|
||||
INCLUDES += \
|
||||
-I$(REP_DIR)/src/core/include \
|
||||
-I$(GEN_CORE_DIR)/include \
|
||||
-I$(REP_DIR)/src/platform \
|
||||
-I$(REP_DIR)/src/include \
|
||||
-I$(BASE_DIR)/src/include \
|
||||
|
||||
include $(REP_DIR)/src/lib/syscall/headers.tup
|
||||
|
||||
SRC_CC += \
|
||||
*.cc \
|
||||
$(REP_DIR)/src/lib/base/env_reinit.cc \
|
||||
$(BASE_DIR)/src/lib/base/thread.cc \
|
||||
$(BASE_DIR)/src/lib/base/thread_myself.cc \
|
||||
$(GEN_CORE_DIR)/capability_space.cc \
|
||||
$(GEN_CORE_DIR)/core_log.cc \
|
||||
$(GEN_CORE_DIR)/core_rpc_cap_alloc.cc \
|
||||
$(GEN_CORE_DIR)/cpu_session_component.cc \
|
||||
$(GEN_CORE_DIR)/cpu_session_support.cc \
|
||||
$(GEN_CORE_DIR)/cpu_thread_component.cc \
|
||||
$(GEN_CORE_DIR)/default_log.cc \
|
||||
$(GEN_CORE_DIR)/heartbeat.cc \
|
||||
$(GEN_CORE_DIR)/main.cc \
|
||||
$(GEN_CORE_DIR)/pd_session_component.cc \
|
||||
$(GEN_CORE_DIR)/pd_session_support.cc \
|
||||
$(GEN_CORE_DIR)/platform_services.cc \
|
||||
$(GEN_CORE_DIR)/ram_dataspace_factory.cc \
|
||||
$(GEN_CORE_DIR)/rpc_cap_factory_l4.cc \
|
||||
$(GEN_CORE_DIR)/signal_receiver.cc \
|
||||
$(GEN_CORE_DIR)/signal_source_component.cc \
|
||||
$(GEN_CORE_DIR)/signal_transmitter_proxy.cc \
|
||||
$(GEN_CORE_DIR)/trace_session_component.cc \
|
||||
$(GEN_CORE_DIR)/version.cc \
|
||||
|
||||
CXXFLAGS_$(GEN_CORE_DIR)/version.cc += -DGENODE_VERSION=\"`git describe`\"
|
||||
|
||||
: foreach $(SRC_CC) |> !cxx |> {obj}
|
||||
|
||||
LDFLAGS += \
|
||||
$(LD_MARCH) \
|
||||
-gc-sections \
|
||||
-z max-page-size=0x1000 \
|
||||
-nostdlib \
|
||||
-Ttext=0x01000000 \
|
||||
-T$(BASE_DIR)/src/ld/genode.ld \
|
||||
-T$(REP_DIR)/src/ld/stack_area.ld \
|
||||
|
||||
CORE_LIBS += \
|
||||
$(BASE_DIR)/src/lib/cxx/cxx.lib.a \
|
||||
$(BASE_DIR)/src/lib/startup/startup.lib.a \
|
||||
$(REP_DIR)/src/lib/base/base-linux-common.lib.a \
|
||||
$(REP_DIR)/src/lib/syscall/syscall-linux.lib.a \
|
||||
|
||||
: {obj} $(CORE_LIBS) |> !ld $(LIBGCC) |> core-linux $(REP_DIR)/<core>
|
74
repos/base-linux/src/lib/base/Tupfile
Normal file
74
repos/base-linux/src/lib/base/Tupfile
Normal file
|
@ -0,0 +1,74 @@
|
|||
# DANGER: any source or header here may be ovelayed by $(BASE_DIR)
|
||||
|
||||
include_rules
|
||||
|
||||
INCLUDES += -I$(REP_DIR)/src/include
|
||||
INCLUDES += -I$(REP_DIR)/src/lib/syscall
|
||||
INCLUDES += -I$(BASE_DIR)/src/include
|
||||
|
||||
export HOST_LIBC
|
||||
# an environmental variable set by nix-shell
|
||||
INCLUDES += -I$HOST_LIBC/include
|
||||
|
||||
BASE_LIB_DIR = $(BASE_DIR)/src/lib/base
|
||||
|
||||
COMMON_SRC_CC += \
|
||||
$(BASE_DIR)/src/lib/base/allocator_avl.cc \
|
||||
$(BASE_DIR)/src/lib/base/avl_tree.cc \
|
||||
$(BASE_DIR)/src/lib/base/child.cc \
|
||||
$(BASE_DIR)/src/lib/base/component.cc \
|
||||
$(BASE_DIR)/src/lib/base/console.cc \
|
||||
$(BASE_DIR)/src/lib/base/elf_binary.cc \
|
||||
$(BASE_DIR)/src/lib/base/entrypoint.cc \
|
||||
$(BASE_DIR)/src/lib/base/env_session_id_space.cc \
|
||||
$(BASE_DIR)/src/lib/base/heap.cc \
|
||||
$(BASE_DIR)/src/lib/base/lock.cc \
|
||||
$(BASE_DIR)/src/lib/base/log.cc \
|
||||
$(BASE_DIR)/src/lib/base/output.cc \
|
||||
$(BASE_DIR)/src/lib/base/raw_output.cc \
|
||||
$(BASE_DIR)/src/lib/base/registry.cc \
|
||||
$(BASE_DIR)/src/lib/base/root_proxy.cc \
|
||||
$(BASE_DIR)/src/lib/base/session_state.cc \
|
||||
$(BASE_DIR)/src/lib/base/signal_common.cc \
|
||||
$(BASE_DIR)/src/lib/base/slab.cc \
|
||||
$(BASE_DIR)/src/lib/base/sliced_heap.cc \
|
||||
$(BASE_DIR)/src/lib/base/stack_allocator.cc \
|
||||
$(BASE_DIR)/src/lib/base/stack_protector.cc \
|
||||
$(BASE_LIB_DIR)/capability.cc \
|
||||
$(BASE_LIB_DIR)/rpc_dispatch_loop.cc \
|
||||
$(BASE_LIB_DIR)/rpc_entrypoint.cc \
|
||||
$(BASE_LIB_DIR)/sleep.cc \
|
||||
$(BASE_LIB_DIR)/trace.cc \
|
||||
$(BASE_LIB_DIR)/vm_session.cc \
|
||||
child_process.cc \
|
||||
debug.cc \
|
||||
ipc.cc \
|
||||
region_map_client.cc \
|
||||
region_map_mmap.cc \
|
||||
rm_session_client.cc \
|
||||
thread_env.cc \
|
||||
|
||||
: foreach $(COMMON_SRC_CC) |> !cxx |> %B.o {base-common-obj}
|
||||
|
||||
: {base-common-obj} |> !ar |> base-linux-common.lib.a
|
||||
|
||||
SRC_CC += \
|
||||
$(BASE_LIB_DIR)/capability_space.cc \
|
||||
$(BASE_LIB_DIR)/default_log.cc \
|
||||
$(BASE_LIB_DIR)/env_deprecated.cc \
|
||||
$(BASE_LIB_DIR)/heartbeat.cc \
|
||||
$(BASE_LIB_DIR)/main_thread_cap.cc \
|
||||
$(BASE_LIB_DIR)/rpc_cap_alloc.cc \
|
||||
$(BASE_LIB_DIR)/signal.cc \
|
||||
$(BASE_LIB_DIR)/signal_transmitter.cc \
|
||||
$(BASE_LIB_DIR)/stack_area.cc \
|
||||
$(BASE_LIB_DIR)/thread.cc \
|
||||
$(BASE_LIB_DIR)/thread_myself.cc \
|
||||
attach_stack_area.cc \
|
||||
capability_raw.cc \
|
||||
env_reinit.cc \
|
||||
platform_env.cc \
|
||||
thread_linux.cc \
|
||||
|
||||
: foreach $(SRC_CC) |> !cxx |> {base-obj}
|
||||
: {base-obj} |> !ar |> base-linux.lib.a
|
62
repos/base-linux/src/lib/ld/Tupfile
Normal file
62
repos/base-linux/src/lib/ld/Tupfile
Normal file
|
@ -0,0 +1,62 @@
|
|||
TARGET_NAME = base-linux
|
||||
include_rules
|
||||
|
||||
ifeq (@(TUP_ARCH),x86_64)
|
||||
INCLUDES += -I$(BASE_DIR)/src/lib/ldso/spec/x86_64
|
||||
endif
|
||||
|
||||
INCLUDES += -I$(BASE_DIR)/src/include
|
||||
|
||||
LDSO_DIR = $(BASE_DIR)/src/lib/ldso
|
||||
|
||||
ifeq (@(TUP_ARCH),x86_64)
|
||||
LDSO_SPEC_DIR = $(LDSO_DIR)/spec/x86_64
|
||||
endif
|
||||
|
||||
INCLUDES += -I$(LDSO_SPEC_DIR)
|
||||
INCLUDES += -I$(LDSO_DIR)/include
|
||||
|
||||
DEFINES += -fPIC
|
||||
|
||||
: foreach $(LDSO_DIR)/*.cc |> !cxx |> {obj}
|
||||
: foreach $(LDSO_SPEC_DIR)/*.s |> !asm |> {obj}
|
||||
|
||||
LDFLAGS += -shared --eh-frame-hdr
|
||||
|
||||
: $(BASE_DIR)/lib/symbols/ld \
|
||||
|> \
|
||||
echo -e '{\n\tglobal:' >> %o; \
|
||||
sed -n "s/^\(\w\+\) .*/\t\t\1;/p" %f >> %o; \
|
||||
echo -e "\tlocal: *;\n};" >> %o; \
|
||||
|> symbol.map
|
||||
|
||||
LDFLAGS += -Bsymbolic-functions --version-script=symbol.map
|
||||
|
||||
LDFLAGS += --entry=_start_initial_stack
|
||||
|
||||
LDFLAGS += -gc-sections -z max-page-size=0x1000
|
||||
LDFLAGS += -T$(BASE_DIR)/src/ld/genode_rel.ld
|
||||
LDFLAGS += -T$(REP_DIR)/src/ld/stack_area.ld
|
||||
|
||||
BASE_LIBS += \
|
||||
$(BASE_DIR)/src/lib/alarm/alarm.lib.a \
|
||||
$(REP_DIR)/src/lib/base/base-linux-common.lib.a \
|
||||
$(REP_DIR)/src/lib/base/base-linux.lib.a \
|
||||
$(BASE_DIR)/src/lib/cxx/cxx.lib.a \
|
||||
$(BASE_DIR)/src/lib/ldso/startup/ldso-startup.lib.a \
|
||||
$(BASE_DIR)/src/lib/startup/startup.lib.a \
|
||||
$(REP_DIR)/src/lib/syscall/syscall-linux.lib.a \
|
||||
$(BASE_DIR)/src/lib/timeout/timeout.lib.a \
|
||||
|
||||
: $(BASE_LIBS) {obj} | symbol.map \
|
||||
|> \
|
||||
$(LD) -o %o \
|
||||
$(LD_MARCH) $(LDFLAGS) \
|
||||
--whole-archive --start-group \
|
||||
%f \
|
||||
--end-group --no-whole-archive \
|
||||
$(LIBGCC) \
|
||||
|> ld-linux.lib.so $(REP_DIR)/<ld> {bin}
|
||||
|
||||
: {bin} |> !collect_bin |>
|
||||
include &(BIN_RULES)
|
13
repos/base-linux/src/lib/lx_hybrid/Tupfile
Normal file
13
repos/base-linux/src/lib/lx_hybrid/Tupfile
Normal file
|
@ -0,0 +1,13 @@
|
|||
include_rules
|
||||
include $(REP_DIR)/src/lib/syscall/headers.tup
|
||||
|
||||
INCLUDES += -I$(REP_DIR)/src/include
|
||||
INCLUDES += -I$(BASE_DIR)/src/include
|
||||
|
||||
STATIC_LIBS = \
|
||||
../base/base-linux-common.lib.a \
|
||||
$(BASE_DIR)/src/lib/timeout/timeout.lib.a \
|
||||
|
||||
: foreach *.cc $(BASE_DIR)/src/lib/cxx/new_delete.cc |> !cxx |> {obj}
|
||||
: foreach *.c |> !cc |> {obj}
|
||||
: {obj} $(STATIC_LIBS) |> !ar |> %d.lib.a
|
22
repos/base-linux/src/lib/syscall/Tupfile
Normal file
22
repos/base-linux/src/lib/syscall/Tupfile
Normal file
|
@ -0,0 +1,22 @@
|
|||
include_rules
|
||||
|
||||
SPEC_DIR=
|
||||
|
||||
ifeq (@(TUP_ARCH),i386)
|
||||
SPEC_DIR = spec/x86_32
|
||||
endif
|
||||
|
||||
ifeq (@(TUP_ARCH),x86_64)
|
||||
SPEC_DIR = spec/x86_64
|
||||
endif
|
||||
|
||||
ifeq (@(TUP_ARCH),arm)
|
||||
SPEC_DIR = spec/arm
|
||||
endif
|
||||
|
||||
ifeq ($(SPEC_DIR),)
|
||||
error syscall library is missing rules for @(TUP_ARCH)
|
||||
endif
|
||||
|
||||
: foreach $(SPEC_DIR)/*.S |> !cc |> {obj}
|
||||
: {obj} |> !ar |> syscall-linux.lib.a
|
5
repos/base-linux/src/lib/syscall/headers.tup
Normal file
5
repos/base-linux/src/lib/syscall/headers.tup
Normal file
|
@ -0,0 +1,5 @@
|
|||
INCLUDES += -I$(REP_DIR)/src/lib/syscall
|
||||
|
||||
export HOST_LIBC
|
||||
# an environmental variable set by nix-shell
|
||||
INCLUDES += -I$HOST_LIBC/include
|
|
@ -47,7 +47,7 @@
|
|||
#include <linux/futex.h>
|
||||
#include <unistd.h>
|
||||
#include <signal.h>
|
||||
#include <sched.h>
|
||||
#include <linux/sched.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <sys/un.h>
|
||||
#include <sys/socket.h>
|
||||
|
|
22
repos/base-linux/src/timer/linux/Tupfile
Normal file
22
repos/base-linux/src/timer/linux/Tupfile
Normal file
|
@ -0,0 +1,22 @@
|
|||
TARGET_NAME = linux_timer_drv
|
||||
LIBS += genode-base
|
||||
include_rules
|
||||
|
||||
BASE_TIMER_DIR = $(BASE_DIR)/src/timer
|
||||
|
||||
PERIODIC_DIR = $(BASE_TIMER_DIR)/periodic
|
||||
|
||||
INCLUDES += -I.
|
||||
INCLUDES += -I$(BASE_TIMER_DIR)/include
|
||||
INCLUDES += -I$(PERIODIC_DIR)
|
||||
|
||||
include $(REP_DIR)/src/lib/syscall/headers.tup
|
||||
|
||||
: foreach $(BASE_TIMER_DIR)/*.cc |> !cxx |> %B.linux.o {obj}
|
||||
: foreach $(PERIODIC_DIR)/*.cc |> !cxx |> %B.linux.o {obj}
|
||||
: foreach *.cc |> !cxx |> %B.o {obj}
|
||||
|
||||
: {obj} $(REP_DIR)/src/lib/syscall/syscall-linux.lib.a |> !prg |> timer {bin}
|
||||
: {bin} |> !collect_bin |>
|
||||
|
||||
include &(BIN_RULES)
|
|
@ -8,8 +8,10 @@ BASE_LIB_DIR = $(BASE_DIR)/src/lib/base
|
|||
include $(BASE_DIR)/src/lib/base/common.tup
|
||||
|
||||
COMMON_SRC_CC += \
|
||||
$(BASE_DIR)/src/lib/base/child_process.cc \
|
||||
$(BASE_DIR)/src/lib/base/thread.cc \
|
||||
$(BASE_DIR)/src/lib/base/thread_myself.cc \
|
||||
$(BASE_DIR)/src/lib/base/trace.cc \
|
||||
capability.cc \
|
||||
cap_map.cc \
|
||||
ipc.cc \
|
||||
|
|
|
@ -4,7 +4,6 @@ COMMON_SRC_CC += \
|
|||
$(BASE_DIR)/src/lib/base/allocator_avl.cc \
|
||||
$(BASE_DIR)/src/lib/base/avl_tree.cc \
|
||||
$(BASE_DIR)/src/lib/base/child.cc \
|
||||
$(BASE_DIR)/src/lib/base/child_process.cc \
|
||||
$(BASE_DIR)/src/lib/base/component.cc \
|
||||
$(BASE_DIR)/src/lib/base/console.cc \
|
||||
$(BASE_DIR)/src/lib/base/elf_binary.cc \
|
||||
|
@ -24,4 +23,3 @@ COMMON_SRC_CC += \
|
|||
$(BASE_DIR)/src/lib/base/sliced_heap.cc \
|
||||
$(BASE_DIR)/src/lib/base/stack_allocator.cc \
|
||||
$(BASE_DIR)/src/lib/base/stack_protector.cc \
|
||||
$(BASE_DIR)/src/lib/base/trace.cc \
|
||||
|
|
Loading…
Reference in New Issue
Block a user