diff --git a/arch/x86/kernel/Makefile.arch b/arch/x86/kernel/Makefile.arch index 254fb1ea..993bdd29 100644 --- a/arch/x86/kernel/Makefile.arch +++ b/arch/x86/kernel/Makefile.arch @@ -2,4 +2,6 @@ IHK_OBJS += cpu.o interrupt.o memory.o trampoline.o local.o context.o IHK_OBJS += perfctr.o syscall.o vsyscall.o # POSTK_DEBUG_ARCH_DEP_18 coredump arch separation. # IHK_OBJS added coredump.o +ifeq ($(ARCH), arm64) IHK_OBJS += coredump.o +endif diff --git a/executer/kernel/mcctrl/Makefile.in b/executer/kernel/mcctrl/Makefile.in index f8727a14..291b84cc 100644 --- a/executer/kernel/mcctrl/Makefile.in +++ b/executer/kernel/mcctrl/Makefile.in @@ -10,16 +10,21 @@ obj-m += mcctrl.o # POSTK_DEBUG_ARCH_DEP_1, arch depend "-mcmodel" # POSTK_DEBUG_ARCH_DEP_83, arch depend translate_rva_to_rpa() move -#ccflags-y := -I$(IHK_BASE)/linux/include -I$(IHK_BASE)/linux/include/ihk/arch/$(ARCH) -I$(IHK_BASE)/ikc/include -I$(IHK_BASE)/ikc/include/ikc/arch/$(ARCH) -I$(IHK_BASE)/include -I$(IHK_BASE)/include/arch/$(ARCH) -I$(src)/../../include -mcmodel=kernel -mno-red-zone -DMCEXEC_PATH=\"$(BINDIR)/mcexec\" -I@abs_builddir@ +ifeq ($(ARCH), arm64) ccflags-y := -I$(IHK_BASE)/linux/include -I$(IHK_BASE)/linux/include/ihk/arch/$(ARCH) -I$(IHK_BASE)/ikc/include -I$(IHK_BASE)/ikc/include/ikc/arch/$(ARCH) -I$(IHK_BASE)/include -I$(IHK_BASE)/include/arch/$(ARCH) -I$(src)/../../include -I$(src)/arch/$(ARCH)/include -DMCEXEC_PATH=\"$(BINDIR)/mcexec\" -I@abs_builddir@ - +else +ccflags-y := -I$(IHK_BASE)/linux/include -I$(IHK_BASE)/linux/include/ihk/arch/$(ARCH) -I$(IHK_BASE)/ikc/include -I$(IHK_BASE)/ikc/include/ikc/arch/$(ARCH) -I$(IHK_BASE)/include -I$(IHK_BASE)/include/arch/$(ARCH) -I$(src)/../../include -mcmodel=kernel -mno-red-zone -DMCEXEC_PATH=\"$(BINDIR)/mcexec\" -I@abs_builddir@ +endif mcctrl-y := driver.o control.o ikc.o syscall.o procfs.o binfmt_mcexec.o mcctrl-y += sysfs.o sysfs_files.o arch/$(ARCH)/archdeps.o KBUILD_EXTRA_SYMBOLS = @abs_builddir@/../../../../ihk/linux/core/Module.symvers + +ifeq ($(ARCH), arm64) EXTRA_CFLAGS += $(foreach i, $(shell seq 1 100), $(addprefix -DPOSTK_DEBUG_ARCH_DEP_, $(i))) EXTRA_CFLAGS += $(foreach i, $(shell seq 1 100), $(addprefix -DPOSTK_DEBUG_TEMP_FIX_, $(i))) +endif .PHONY: clean install modules diff --git a/executer/user/Makefile.in b/executer/user/Makefile.in index e35ca76b..3281bbbd 100644 --- a/executer/user/Makefile.in +++ b/executer/user/Makefile.in @@ -26,8 +26,10 @@ ifeq ($(ENABLE_QLMPI),yes) TARGET+= libqlmpi.so ql_server ql_mpiexec_start ql_mpiexec_finalize ql_talker libqlfort.so endif +ifeq ($(ARCH), arm64) CFLAGS += $(foreach i, $(shell seq 1 100), $(addprefix -DPOSTK_DEBUG_ARCH_DEP_, $(i))) CFLAGS += $(foreach i, $(shell seq 1 100), $(addprefix -DPOSTK_DEBUG_TEMP_FIX_, $(i))) +endif all: $(TARGET) @@ -35,10 +37,13 @@ mcexec: mcexec.c libmcexec.a $(CC) -I${KDIR} $(CFLAGS) $(EXTRA_CFLAGS) $(LDFLAGS) -DLIBDIR=\"$(LIBDIR)\" -fPIE -pie -L. $(MCEXEC_LIBS) -o $@ $^ $(EXTRA_OBJS) $(RPATH) # POSTK_DEBUG_ARCH_DEP_34, eclair arch depend separate. -#eclair: eclair.c -# $(CC) $(CFLAGS) -I${IHKDIR} -o $@ $^ $(LIBS) +ifeq ($(ARCH), arm64) eclair: eclair.c arch/$(ARCH)/arch-eclair.c $(CC) -I.. -I. -I./arch/$(ARCH)/include -I$(VPATH)/.. -I$(VPATH) -I$(VPATH)/arch/$(ARCH)/include -I${IHKDIR} $(CFLAGS) -o $@ $^ $(LIBS) +else +eclair: eclair.c + $(CC) $(CFLAGS) -I${IHKDIR} -o $@ $^ $(LIBS) +endif libsched_yield: libsched_yield.c $(CC) -shared -fPIC -Wl,-soname,sched_yield.so.1 -o libsched_yield.so.1.0.0 $^ -lc -ldl diff --git a/kernel/Makefile.build.in b/kernel/Makefile.build.in index 2a319005..598a6ad0 100644 --- a/kernel/Makefile.build.in +++ b/kernel/Makefile.build.in @@ -9,7 +9,9 @@ OBJS += rbtree.o OBJS += pager.o # POSTK_DEBUG_ARCH_DEP_18 coredump arch separation. # OBJS added gencore.o +ifeq ($(ARCH), arm64) OBJS += gencore.o +endif DEPSRCS=$(wildcard $(SRC)/*.c) CFLAGS += -I$(SRC)/include -I@abs_builddir@/../ -I@abs_builddir@/include -D__KERNEL__ -g -fno-omit-frame-pointer -fno-inline -fno-inline-small-functions @@ -17,7 +19,9 @@ LDFLAGS += -e arch_start IHKOBJ = ihk/ihk.o # POSTK_DEBUG_ARCH_DEP_24 +ifeq ($(ARCH), arm64) default: all +endif include $(SRC)/config/config.$(TARGET) include @abs_builddir@/../../ihk/cokernel/Makefile.common @@ -28,8 +32,11 @@ OBJDUMP ?= objdump OBJCOPY ?= objcopy # POSTK_DEBUG_ARCH_DEP_26 -#SUBCMD_OPTS = TARGET=$(TARGET) O=$(CURDIR)/ihk CC=$(CC) LD=$(LD) SRC=$(SRC) +ifeq ($(ARCH), arm64) SUBCMD_OPTS = TARGET=$(TARGET) O=$(CURDIR)/ihk CC=$(CC) LD=$(LD) OBJCOPY=$(OBJCOPY) SRC=$(SRC) +else +SUBCMD_OPTS = TARGET=$(TARGET) O=$(CURDIR)/ihk CC=$(CC) LD=$(LD) SRC=$(SRC) +endif ld_kern_cmd_base = $(LD) $(LDFLAGS) -o $@.elf $^ mkimage_cmd_base = [ -f $(SRC)/script/mkimage.$(TARGET) ] && CC=$(CC) LD=$(LD) LDFLAGS="$(LDFLAGS_MKIMAGE)" OBJDUMP=$(OBJDUMP) OBJCOPY=$(OBJCOPY) sh $(SRC)/script/mkimage.$(TARGET) '$@.elf' '$@' '$(SRC)' || cp $@.elf $@ diff --git a/kernel/include/elfcore.h b/kernel/include/elfcore.h index e8de229f..9d7a1395 100644 --- a/kernel/include/elfcore.h +++ b/kernel/include/elfcore.h @@ -116,4 +116,10 @@ struct thread; extern void arch_fill_prstatus(struct elf_prstatus64 *prstatus, struct thread *thread, void *regs0); #endif /* __HEADER_ELFCORE_H */ +#else /* POSTK_DEBUG_ARCH_DEP_18 */ +#ifdef __x86_64 +#include "../../arch/x86/kernel/include/elfcore.h" +#elif __aarch64__ +#include "../../arch/arm64/kernel/include/elfcore.h" +#endif #endif /* POSTK_DEBUG_ARCH_DEP_18 */ diff --git a/kernel/include/elfcoregpl.h b/kernel/include/elfcoregpl.h index 2e59fb9e..4568f6f7 100644 --- a/kernel/include/elfcoregpl.h +++ b/kernel/include/elfcoregpl.h @@ -64,4 +64,10 @@ struct elf_prpsinfo64 }; #endif /* __HEADER_ELFCOREGPL_H */ +#else /* POSTK_DEBUG_ARCH_DEP_18 */ +#ifdef __x86_64 +#include "../../arch/x86/kernel/include/elfcoregpl.h" +#elif __aarch64__ +#include "../../arch/arm64/kernel/include/elfcoregpl.h" +#endif #endif /* POSTK_DEBUG_ARCH_DEP_18 */