build system switch to cmake
Remove old build system at the same time Change-Id: Ifdffe1fcd4cfece05f036d8de6e7cb74aca65f62
This commit is contained in:
83
executer/user/CMakeLists.txt
Normal file
83
executer/user/CMakeLists.txt
Normal file
@@ -0,0 +1,83 @@
|
||||
include_directories(
|
||||
"${CMAKE_CURRENT_BINARY_DIR}"
|
||||
"${PROJECT_BINARY_DIR}"
|
||||
"${IHK_FULL_SOURCE_DIR}/linux/include"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/arch/${ARCH}/include"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/arch/${ARCH}"
|
||||
"${PROJECT_BINARY_DIR}/ihk/linux/include"
|
||||
)
|
||||
|
||||
|
||||
add_library(libmcexec STATIC arch/${ARCH}/archdep.S)
|
||||
SET_TARGET_PROPERTIES(libmcexec PROPERTIES OUTPUT_NAME mcexec)
|
||||
set_property(TARGET libmcexec PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
add_executable(mcexec mcexec.c)
|
||||
target_link_libraries(mcexec
|
||||
libmcexec ihklib ${LIBRT} ${LIBNUMA} $<$<BOOL:ENABLE_QLMPI>:${LIBMPI}> pthread)
|
||||
target_include_directories(mcexec PUBLIC "${KERNEL_DIR}")
|
||||
set_property(TARGET mcexec PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
set_property(TARGET mcexec PROPERTY LINK_FLAGS "-fPIE -pie")
|
||||
|
||||
add_executable(eclair eclair.c arch/${ARCH}/arch-eclair.c)
|
||||
target_link_libraries(eclair ${LIBBFD})
|
||||
|
||||
add_library(sched_yield SHARED libsched_yield.c)
|
||||
target_link_libraries(sched_yield dl)
|
||||
set_property(TARGET sched_yield PROPERTY VERSION 1.0.0)
|
||||
|
||||
if (ENABLE_QLMPI)
|
||||
target_link_libraries(mcexec ${MPI_C_LIBRARIES})
|
||||
target_include_directories(mcexec PRIVATE ${MPI_INCLUDE_PATH})
|
||||
|
||||
add_library(qlmpi qlmpilib.c)
|
||||
target_link_libraries(qlmpi ${MPI_C_LIBRARIES})
|
||||
target_include_directories(qlmpi PRIVATE ${MPI_INCLUDE_PATH})
|
||||
|
||||
add_library(qlfort libqlfort.c)
|
||||
target_link_libraries(qlfort dl ${MPI_C_LIBRARIES})
|
||||
target_include_directories(qlfort PRIVATE ${MPI_INCLUDE_PATH})
|
||||
|
||||
add_executable(ql_server ql_server.c)
|
||||
add_executable(ql_talker ql_talker.c)
|
||||
|
||||
add_executable(ql_mpiexec_start ql_mpiexec_start.c md5.c)
|
||||
target_link_libraries(ql_mpiexec_start pthread)
|
||||
|
||||
add_executable(ql_mpiexec_finalize ql_mpiexec_start.c md5.c)
|
||||
set_target_properties(ql_mpiexec_finalize PROPERTIES COMPILE_DEFINITIONS
|
||||
QL_MPIEXEC_FINALIZE)
|
||||
target_link_libraries(ql_mpiexec_finalize pthread)
|
||||
|
||||
install(TARGETS ql_server ql_talker ql_mpiexec_start ql_mpiexec_finalize
|
||||
DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
install(TARGETS qlmpi qlfort
|
||||
DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
endif()
|
||||
|
||||
if (ENABLE_UTI)
|
||||
add_library(mck_syscall_intercept SHARED arch/${ARCH}/archdep_c.c)
|
||||
target_link_libraries(mck_syscall_intercept ${LIBSYSCALL_INTERCEPT})
|
||||
set_target_properties(mck_syscall_intercept PROPERTIES INSTALL_RPATH_USE_LINK_PATH TRUE)
|
||||
|
||||
install(TARGETS mck_syscall_intercept
|
||||
DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
endif()
|
||||
|
||||
add_library(ldump2mcdump SHARED ldump2mcdump.c)
|
||||
|
||||
configure_file(vmcore2mckdump.in vmcore2mckdump @ONLY)
|
||||
|
||||
configure_file(mcexec.1in mcexec.1 @ONLY)
|
||||
|
||||
install(TARGETS mcexec eclair
|
||||
DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
install(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/vmcore2mckdump"
|
||||
DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
install(TARGETS sched_yield ldump2mcdump
|
||||
DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
install(FILES "../include/ihklib_rusage.h"
|
||||
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/mckernel")
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/mcexec.1"
|
||||
DESTINATION "${CMAKE_INSTALL_MANDIR}/man1")
|
||||
@@ -1,133 +0,0 @@
|
||||
# Makefile.in COPYRIGHT FUJITSU LIMITED 2015-2018
|
||||
CC=@CC@
|
||||
MCC=mpicc
|
||||
BINDIR=@BINDIR@
|
||||
SBINDIR=@SBINDIR@
|
||||
prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
LIBDIR=@libdir@
|
||||
MANDIR=@MANDIR@
|
||||
MCKERNEL_INCDIR=@MCKERNEL_INCDIR@
|
||||
MCKERNEL_LIBDIR=@MCKERNEL_LIBDIR@
|
||||
KDIR ?= @KDIR@
|
||||
ARCH=@ARCH@
|
||||
CFLAGS=-Wall -O -I. -I$(VPATH)/arch/${ARCH} -I${IHKDIR} -I@abs_builddir@/../../../ihk/linux/include -I$(VPATH)/arch/${ARCH}/include
|
||||
LDFLAGS=@LDFLAGS@
|
||||
CPPFLAGS_SYSCALL_INTERCEPT=@CPPFLAGS_SYSCALL_INTERCEPT@
|
||||
LDFLAGS_SYSCALL_INTERCEPT=@LDFLAGS_SYSCALL_INTERCEPT@
|
||||
RPATH=$(shell echo $(LDFLAGS)|awk '{for(i=1;i<=NF;i++){if($$i~/^-L/){w=$$i;sub(/^-L/,"-Wl,-rpath,",w);print w}}}')
|
||||
VPATH=@abs_srcdir@
|
||||
TARGET=mcexec libsched_yield ldump2mcdump.so
|
||||
@uncomment_if_ENABLE_MEMDUMP@TARGET+=eclair
|
||||
LIBS=@LIBS@
|
||||
IHKDIR ?= $(VPATH)/../../../ihk/linux/include/
|
||||
MCEXEC_LIBS=-lmcexec -lrt -lnuma -pthread -L@abs_builddir@/../../../ihk/linux/user -lihk -Wl,-rpath,$(MCKERNEL_LIBDIR)
|
||||
ENABLE_QLMPI=@ENABLE_QLMPI@
|
||||
WITH_SYSCALL_INTERCEPT=@WITH_SYSCALL_INTERCEPT@
|
||||
|
||||
ifeq ($(ENABLE_QLMPI),yes)
|
||||
MCEXEC_LIBS += -lmpi
|
||||
TARGET+= libqlmpi.so ql_server ql_mpiexec_start ql_mpiexec_finalize ql_talker libqlfort.so
|
||||
endif
|
||||
|
||||
ifeq ($(WITH_SYSCALL_INTERCEPT),yes)
|
||||
TARGET += syscall_intercept.so
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH), arm64)
|
||||
CFLAGS += $(foreach i, $(shell seq 6 120), $(addprefix -DPOSTK_DEBUG_ARCH_DEP_, $(i)))
|
||||
CFLAGS += $(foreach i, $(shell seq 6 110), $(addprefix -DPOSTK_DEBUG_TEMP_FIX_, $(i)))
|
||||
|
||||
# get HOST-kernel memory settings
|
||||
HOST_DIR=@KDIR@
|
||||
HOST_CONFIG=$(HOST_DIR)/.config
|
||||
HOST_KERNEL_64K_PAGES=$(shell grep -E "^CONFIG_ARM64_64K_PAGES=y" $(HOST_CONFIG) | sed 's|CONFIG_ARM64_64K_PAGES=||g')
|
||||
HOST_KERNEL_VA_BITS=$(shell grep -E "^CONFIG_ARM64_VA_BITS=" $(HOST_CONFIG) | sed 's|CONFIG_ARM64_VA_BITS=||g')
|
||||
|
||||
ifeq ($(HOST_KERNEL_64K_PAGES), y)
|
||||
CFLAGS += -DCONFIG_ARM64_64K_PAGES
|
||||
endif
|
||||
CFLAGS += -DCONFIG_ARM64_VA_BITS=$(HOST_KERNEL_VA_BITS)
|
||||
|
||||
endif
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
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.
|
||||
ifeq ($(ARCH), arm64)
|
||||
eclair: eclair.c arch/$(ARCH)/arch-eclair.c
|
||||
$(CC) -I.. -I. -I./arch/$(ARCH)/include -I$(VPATH)/.. -I$(VPATH) $(CFLAGS) -o $@ $^ $(LIBS) -ldl -lz
|
||||
else
|
||||
eclair: eclair.c arch/$(ARCH)/arch-eclair.c
|
||||
$(CC) -I.. -I$(VPATH) -I$(VPATH)/arch/$(ARCH)/include $(CFLAGS) -o $@ $^ $(LIBS)
|
||||
endif
|
||||
|
||||
ldump2mcdump.so: ldump2mcdump.c
|
||||
$(CC) $(CFLAGS) $(LDFLAGS) -shared -fPIC -o $@ $<
|
||||
|
||||
libsched_yield: libsched_yield.c
|
||||
$(CC) -shared -fPIC -Wl,-soname,sched_yield.so.1 -o libsched_yield.so.1.0.0 $^ -lc -ldl
|
||||
|
||||
syscall_intercept.so: syscall_intercept.c libsyscall_intercept_arch.a
|
||||
$(CC) $(CPPFLAGS_SYSCALL_INTERCEPT) -g -O2 $(LDFLAGS_SYSCALL_INTERCEPT) -lsyscall_intercept -fpic -shared -L. -lsyscall_intercept_arch $^ -o $@
|
||||
|
||||
libsyscall_intercept_arch.a::
|
||||
+(cd arch/${ARCH}; $(MAKE))
|
||||
|
||||
libmcexec.a::
|
||||
+(cd arch/${ARCH}; $(MAKE))
|
||||
|
||||
libqlmpi.so: qlmpilib.c
|
||||
$(MCC) $(CFLAGS) $(LDFLAGS) -shared -fPIC -o $@ $<
|
||||
|
||||
libqlfort.so: libqlfort.c
|
||||
$(MCC) $(CFLAGS) $(LDFLAGS) -shared -fPIC -o $@ $< -ldl
|
||||
|
||||
ql_server: ql_server.c
|
||||
$(CC) $(CFLAGS) -o $@ $^
|
||||
|
||||
ql_mpiexec_start: ql_mpiexec_start.o md5.o
|
||||
$(CC) $^ $(CFLAGS) -pthread -o $@
|
||||
|
||||
ql_mpiexec_finalize.o: ql_mpiexec_start.c
|
||||
$(CC) $(CFLAGS) -DQL_MPIEXEC_FINALIZE -c -o $@ $<
|
||||
|
||||
ql_mpiexec_finalize: ql_mpiexec_finalize.o md5.o
|
||||
$(CC) $^ $(CFLAGS) -pthread -o $@
|
||||
|
||||
ql_talker: ql_talker.o
|
||||
$(CC) $^ $(CFLAGS) -o $@
|
||||
|
||||
clean::
|
||||
(cd arch/${ARCH}; $(MAKE) clean)
|
||||
$(RM) $(TARGET) *.o
|
||||
|
||||
.PHONY: all clean install
|
||||
|
||||
install::
|
||||
(cd arch/${ARCH}; $(MAKE) install)
|
||||
mkdir -p -m 755 $(BINDIR)
|
||||
install -m 755 mcexec $(BINDIR)
|
||||
mkdir -p -m 755 $(MCKERNEL_LIBDIR)
|
||||
install -m 755 ldump2mcdump.so $(MCKERNEL_LIBDIR)
|
||||
install -m 755 libsched_yield.so.1.0.0 $(MCKERNEL_LIBDIR)
|
||||
mkdir -p -m 755 $(MANDIR)/man1
|
||||
install -m 644 mcexec.1 $(MANDIR)/man1/mcexec.1
|
||||
ifeq ($(ENABLE_QLMPI),yes)
|
||||
install -m 644 ../include/qlmpilib.h $(MCKERNEL_INCDIR)
|
||||
install -m 755 libqlmpi.so $(MCKERNEL_LIBDIR)
|
||||
install -m 755 libqlfort.so $(MCKERNEL_LIBDIR)
|
||||
install -m 755 ql_server $(SBINDIR)
|
||||
install -m 755 ql_mpiexec_start $(BINDIR)
|
||||
install -m 755 ql_mpiexec_finalize $(BINDIR)
|
||||
install -m 755 ql_talker $(SBINDIR)
|
||||
endif
|
||||
ifeq ($(WITH_SYSCALL_INTERCEPT),yes)
|
||||
install -m 755 syscall_intercept.so $(MCKERNEL_LIBDIR)
|
||||
endif
|
||||
@uncomment_if_ENABLE_MEMDUMP@install -m 755 eclair $(BINDIR)
|
||||
@uncomment_if_ENABLE_MEMDUMP@install -m 755 vmcore2mckdump $(BINDIR)
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
# Makefile.in COPYRIGHT FUJITSU LIMITED 2017-2018
|
||||
CC=@CC@
|
||||
AR=ar
|
||||
BINDIR=@BINDIR@
|
||||
KDIR ?= @KDIR@
|
||||
CFLAGS=-Wall -O -I.
|
||||
VPATH=@abs_srcdir@
|
||||
TARGET=../../libmcexec.a
|
||||
LIBS=@LIBS@
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
../../libmcexec.a: archdep.o
|
||||
$(AR) cr ../../libmcexec.a archdep.o
|
||||
|
||||
archdep.o: archdep.c archdep.S
|
||||
$(CC) -c -I${KDIR} $(CFLAGS) $(EXTRA_CFLAGS) -fPIE -pie -pthread $^
|
||||
|
||||
clean:
|
||||
$(RM) $(TARGET) *.o
|
||||
|
||||
.PHONY: all clean install
|
||||
|
||||
install:
|
||||
@@ -1,30 +0,0 @@
|
||||
# Makefile.in COPYRIGHT FUJITSU LIMITED 2017-2018
|
||||
CC=@CC@
|
||||
AR=ar
|
||||
BINDIR=@BINDIR@
|
||||
KDIR ?= @KDIR@
|
||||
CFLAGS=-Wall -O -I.
|
||||
VPATH=@abs_srcdir@
|
||||
TARGET=../../libmcexec.a ../../libsyscall_intercept_arch.a
|
||||
LIBS=@LIBS@
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
../../libmcexec.a: archdep.o
|
||||
$(AR) cr ../../libmcexec.a archdep.o
|
||||
|
||||
archdep.o: archdep.S
|
||||
$(CC) -c -I${KDIR} $(CFLAGS) $(EXTRA_CFLAGS) -fPIE -pie -pthread $<
|
||||
|
||||
../../libsyscall_intercept_arch.a: archdep_c.o
|
||||
$(AR) cr ../../libsyscall_intercept_arch.a archdep_c.o
|
||||
|
||||
archdep_c.o: archdep_c.c
|
||||
$(CC) -c -I${KDIR} $(CFLAGS) $(EXTRA_CFLAGS) -fPIE -pie -pthread $<
|
||||
|
||||
clean:
|
||||
$(RM) $(TARGET) *.o
|
||||
|
||||
.PHONY: all clean install
|
||||
|
||||
install:
|
||||
@@ -8,7 +8,7 @@
|
||||
* Copyright (C) 2015 RIKEN AICS
|
||||
*/
|
||||
|
||||
#include "../config.h"
|
||||
#include "config.h"
|
||||
#include <bfd.h>
|
||||
#include <fcntl.h>
|
||||
#include <inttypes.h>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#ifndef HEADER_USER_COMMON_ECLAIR_H
|
||||
#define HEADER_USER_COMMON_ECLAIR_H
|
||||
|
||||
#include "../config.h"
|
||||
#include "config.h"
|
||||
#include <stdio.h>
|
||||
#include <inttypes.h>
|
||||
#include <arch-eclair.h>
|
||||
|
||||
@@ -2001,7 +2001,7 @@ static void ld_preload_init()
|
||||
memset(envbuf, 0, PATH_MAX);
|
||||
|
||||
if (enable_uti) {
|
||||
LD_PRELOAD_PREPARE("syscall_intercept.so");
|
||||
LD_PRELOAD_PREPARE("libmck_syscall_intercept.so");
|
||||
LD_PRELOAD_APPEND;
|
||||
}
|
||||
|
||||
@@ -2249,7 +2249,7 @@ int main(int argc, char **argv)
|
||||
if (opendev() == -1)
|
||||
exit(EXIT_FAILURE);
|
||||
|
||||
#ifndef WITH_SYSCALL_INTERCEPT
|
||||
#ifndef ENABLE_UTI
|
||||
if (enable_uti) {
|
||||
__eprintf("ERROR: uti is not available when not configured with --with-syscall_intercept=<path>\n");
|
||||
exit(EXIT_FAILURE);
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
#include <pthread.h>
|
||||
#include "../../config.h"
|
||||
#include "config.h"
|
||||
|
||||
#include "../include/qlmpi.h"
|
||||
#include "../include/md5.h"
|
||||
|
||||
Reference in New Issue
Block a user