mirror of
https://github.com/genodelabs/genode.git
synced 2025-06-18 23:28:29 +00:00
base-linux: add ARM support
This patch introduces a new platform 'linux_arm' for building and running Genode/Linux on an ARM device. Known limitations: - libc 'setjmp()'/'longjmp()' doesn't currently save/restore floating point registers Fixes #746.
This commit is contained in:
committed by
Norman Feske
parent
314d5c0975
commit
4a9b1c6aab
@ -97,8 +97,12 @@ USE_HOST_LD_SCRIPT = yes
|
||||
ifeq (x86_64,$(findstring x86_64,$(SPECS)))
|
||||
CXX_LINK_OPT += -Wl,--dynamic-linker=/lib64/ld-linux-x86-64.so.2
|
||||
else
|
||||
ifeq (arm,$(findstring arm,$(SPECS)))
|
||||
CXX_LINK_OPT += -Wl,--dynamic-linker=/lib/ld-linux.so.3
|
||||
else
|
||||
CXX_LINK_OPT += -Wl,--dynamic-linker=/lib/ld-linux.so.2
|
||||
endif
|
||||
endif
|
||||
|
||||
# because we use the host compiler's libgcc, omit the Genode toolchain's version
|
||||
LD_LIBGCC =
|
||||
|
@ -1,9 +1,9 @@
|
||||
HOST_INC_DIR += $(dir $(call select_from_repositories,src/platform/linux_syscalls.h))
|
||||
HOST_INC_DIR += /usr/include
|
||||
|
||||
# needed for Ubuntu 11.04
|
||||
# needed for Ubuntu >= 11.04
|
||||
HOST_INC_DIR += /usr/include/$(shell gcc -dumpmachine)
|
||||
HOST_INC_DIR += /usr/include/i386-linux-gnu
|
||||
HOST_INC_DIR += /usr/include/x86_64-linux-gnu
|
||||
|
||||
#
|
||||
# Some header files installed on GNU/Linux test for the GNU compiler. For
|
||||
|
8
base-linux/lib/mk/arm/base.mk
Normal file
8
base-linux/lib/mk/arm/base.mk
Normal file
@ -0,0 +1,8 @@
|
||||
include $(REP_DIR)/lib/mk/base.inc
|
||||
|
||||
LIBS += startup cxx
|
||||
|
||||
SRC_CC += thread.cc thread_linux.cc
|
||||
|
||||
vpath thread.cc $(BASE_DIR)/src/base/thread
|
||||
vpath thread_linux.cc $(REP_DIR)/src/base/thread
|
5
base-linux/lib/mk/arm/startup.mk
Normal file
5
base-linux/lib/mk/arm/startup.mk
Normal file
@ -0,0 +1,5 @@
|
||||
LIBS += syscall
|
||||
|
||||
include $(BASE_DIR)/lib/mk/startup.inc
|
||||
|
||||
vpath crt0.s $(REP_DIR)/src/platform/arm
|
5
base-linux/lib/mk/arm/syscall.mk
Normal file
5
base-linux/lib/mk/arm/syscall.mk
Normal file
@ -0,0 +1,5 @@
|
||||
REQUIRES = linux arm
|
||||
SRC_S += lx_clone.S lx_syscall.S
|
||||
|
||||
vpath lx_clone.S $(REP_DIR)/../base-linux/src/platform/arm
|
||||
vpath lx_syscall.S $(REP_DIR)/../base-linux/src/platform/arm
|
Reference in New Issue
Block a user