dde_rump: backport aarch64 (Fix #3565)

This commit is contained in:
Stefan Kalkowski 2019-11-28 16:02:52 +01:00 committed by Christian Helmuth
parent f85ec313de
commit 8f71c90ca8
8 changed files with 90 additions and 5 deletions

View File

@ -16,6 +16,12 @@ ifeq ($(filter-out $(SPECS),x86_64),)
INC_DIR += $(RUMP_PORT_DIR)/src/sys/arch/amd64/include
endif
ifeq ($(filter-out $(SPECS),arm_64),)
INC_DIR := $(RUMP_PORT_DIR)/src/sys/rump/include $(INC_DIR)
INC_DIR += $(REP_DIR)/src/lib/rump/spec/arm_64
INC_DIR += $(RUMP_PORT_DIR)/../dde_rump_aarch64_backport/aarch64/include
endif
INC_DIR += $(LIBGCC_INC_DIR) \
$(RUMP_PORT_DIR)/src/sys \
$(RUMP_PORT_DIR)/src/sys/rump/include \

View File

@ -0,0 +1,23 @@
SRC_NOLINK += atomic_add_16.S atomic_add_8.S atomic_and_64.S atomic_cas_32.S atomic_dec_32.S \
atomic_inc_64.S atomic_nand_64.S atomic_or_32.S atomic_sub_16.S atomic_sub_8.S \
atomic_swap_64.S atomic_xor_32.S membar_ops.S atomic_add_32.S atomic_and_16.S \
atomic_and_8.S atomic_cas_64.S atomic_dec_64.S atomic_nand_16.S atomic_nand_8.S \
atomic_or_64.S atomic_sub_32.S atomic_swap_16.S atomic_swap_8.S atomic_xor_64.S \
atomic_add_64.S atomic_and_32.S atomic_cas_16.S atomic_cas_8.S atomic_inc_32.S \
atomic_nand_32.S atomic_or_16.S atomic_or_8.S atomic_sub_64.S atomic_swap_32.S \
atomic_xor_16.S atomic_xor_8.S bswap64.c
SRC_NOLINK += rump_generic_cpu.c rump_generic_pmap.c
INC_DIR += $(RUMP_PORT_DIR)/src/sys/rump/include
INC_DIR += $(REP_DIR)/src/lib/rump/spec/arm_64
include $(REP_DIR)/lib/mk/rump.inc
vpath %.S $(RUMP_PORT_DIR)/../libc
vpath %.c $(RUMP_PORT_DIR)/src/common/lib/libc/gen
vpath %.c $(RUMP_PORT_DIR)/../dde_rump_aarch64_backport/aarch64/aarch64
vpath %.c $(RUMP_PORT_DIR)/../dde_rump_aarch64_backport/arm/arm32
vpath %.c $(RUMP_PORT_DIR)/src/sys/rump/librump/rumpkern/arch/generic
CC_CXX_WARN_STRICT =

View File

@ -0,0 +1,23 @@
ifeq ($(called_from_lib_mk),yes)
include $(REP_DIR)/lib/mk/rump_common.inc
BACKPORT := $(call select_from_ports,dde_rump)/src/lib/dde_rump_aarch64_backport
$(RUMP_BASE):
mkdir -p $@
$(RUMP_BASE)/include/machine: $(RUMP_BASE)
$(VERBOSE_MK)mkdir -p $(RUMP_BASE)/include
$(VERBOSE_MK)ln -sf $(BACKPORT)/arm/include $(RUMP_BASE)/include/arm
$(VERBOSE_MK)ln -sf $(BACKPORT)/aarch64/include $(RUMP_BASE)/include/aarch64
$(VERBOSE_MK)ln -sf $(BACKPORT)/evbarm64/include $(RUMP_BASE)/include/machine
$(VERBOSE_MK)touch -a $(RUMP_BASE)/include/pthread_types.h
all: $(RUMP_BASE)/include/machine
endif
# vi:set ft=make :
CC_CXX_WARN_STRICT =

View File

@ -0,0 +1,20 @@
diff --git a/arm/arm32/kobj_machdep.c b/arm/arm32/kobj_machdep.c
index 6fc772f..146f580 100644
--- src/lib/dde_rump_aarch64_backport/arm/arm32/kobj_machdep.c
+++ src/lib/dde_rump_aarch64_backport/arm/arm32/kobj_machdep.c
@@ -66,6 +66,7 @@ __KERNEL_RCSID(0, "$NetBSD: kobj_machdep.c,v 1.10 2014/11/07 21:28:32 martin Exp
#include <sys/kobj_impl.h>
#include <arm/cpufunc.h>
+#ifndef _RUMPKERNEL
#include <arm/locore.h>
int
@@ -206,6 +207,7 @@ kobj_reloc(kobj_t ko, uintptr_t relocbase, const void *data,
rtype, where, symidx);
return -1;
}
+#endif
#if __ARMEB__

View File

@ -1 +1 @@
b81e1b234bf98a6b0a35dec429e8a826b735bc08
9afe5679a00a8df0f3c5a9a5838956dc993f1b0a

View File

@ -1,8 +1,17 @@
LICENSE := BSD
VERSION := git
DOWNLOADS := rump.git
DOWNLOADS := rump.git aarch64.svn libc.svn
URL(rump) := https://github.com/ssumpf/rump.git
DIR(rump) := src/lib/dde_rump
REV(rump) := 206ffa06cedd0779af0043997fd182b00ff4688c
PATCHES := patches/rump.patch
URL(aarch64) := https://github.com/justincormack/netbsd-src/trunk/src/sys/arch
REV(aarch64) := HEAD
DIR(aarch64) := src/lib/dde_rump_aarch64_backport
URL(libc) := https://github.com/justincormack/netbsd-src/trunk/src/common/lib/libc/arch/aarch64/atomic
REV(libc) := HEAD
DIR(libc) := src/lib/libc
PATCHES := patches/rump.patch patches/aarch64.patch

View File

@ -6,7 +6,7 @@ LIB_MK := $(addprefix lib/mk/, \
rump_prefix.inc \
rump_tools.mk \
vfs_rump.mk) \
$(foreach SPEC,x86_32 x86_64 arm, \
$(foreach SPEC,x86_32 x86_64 arm arm_64, \
lib/mk/spec/$(SPEC)/rump.mk \
lib/mk/spec/$(SPEC)/rump_include.mk)
@ -18,7 +18,9 @@ MIRROR_FROM_REP_DIR := $(LIB_MK) \
include/rump include/rump_fs \
include/util
MIRROR_FROM_PORT_DIR := src/lib/dde_rump/src
MIRROR_FROM_PORT_DIR := src/lib/dde_rump/src \
src/lib/libc \
src/lib/dde_rump_aarch64_backport
content: $(MIRROR_FROM_REP_DIR) $(MIRROR_FROM_PORT_DIR)

View File

@ -0,0 +1,2 @@
int _splraise(int);
int _spllower(int);