dde_rump: backport aarch64 (Fix #3565)
This commit is contained in:
parent
f85ec313de
commit
8f71c90ca8
|
@ -16,6 +16,12 @@ ifeq ($(filter-out $(SPECS),x86_64),)
|
||||||
INC_DIR += $(RUMP_PORT_DIR)/src/sys/arch/amd64/include
|
INC_DIR += $(RUMP_PORT_DIR)/src/sys/arch/amd64/include
|
||||||
endif
|
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) \
|
INC_DIR += $(LIBGCC_INC_DIR) \
|
||||||
$(RUMP_PORT_DIR)/src/sys \
|
$(RUMP_PORT_DIR)/src/sys \
|
||||||
$(RUMP_PORT_DIR)/src/sys/rump/include \
|
$(RUMP_PORT_DIR)/src/sys/rump/include \
|
||||||
|
|
|
@ -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 =
|
|
@ -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 =
|
|
@ -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__
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
b81e1b234bf98a6b0a35dec429e8a826b735bc08
|
9afe5679a00a8df0f3c5a9a5838956dc993f1b0a
|
||||||
|
|
|
@ -1,8 +1,17 @@
|
||||||
LICENSE := BSD
|
LICENSE := BSD
|
||||||
VERSION := git
|
VERSION := git
|
||||||
DOWNLOADS := rump.git
|
DOWNLOADS := rump.git aarch64.svn libc.svn
|
||||||
|
|
||||||
URL(rump) := https://github.com/ssumpf/rump.git
|
URL(rump) := https://github.com/ssumpf/rump.git
|
||||||
DIR(rump) := src/lib/dde_rump
|
DIR(rump) := src/lib/dde_rump
|
||||||
REV(rump) := 206ffa06cedd0779af0043997fd182b00ff4688c
|
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
|
||||||
|
|
|
@ -6,7 +6,7 @@ LIB_MK := $(addprefix lib/mk/, \
|
||||||
rump_prefix.inc \
|
rump_prefix.inc \
|
||||||
rump_tools.mk \
|
rump_tools.mk \
|
||||||
vfs_rump.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.mk \
|
||||||
lib/mk/spec/$(SPEC)/rump_include.mk)
|
lib/mk/spec/$(SPEC)/rump_include.mk)
|
||||||
|
|
||||||
|
@ -18,7 +18,9 @@ MIRROR_FROM_REP_DIR := $(LIB_MK) \
|
||||||
include/rump include/rump_fs \
|
include/rump include/rump_fs \
|
||||||
include/util
|
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)
|
content: $(MIRROR_FROM_REP_DIR) $(MIRROR_FROM_PORT_DIR)
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
int _splraise(int);
|
||||||
|
int _spllower(int);
|
Loading…
Reference in New Issue