diff --git a/.gitignore b/.gitignore index ab70c188..323d638e 100644 --- a/.gitignore +++ b/.gitignore @@ -9,9 +9,27 @@ Module.symvers *.order .tmp_versions - -elfboot/elfboot -elfboot/elfboot_test -linux/executer/mcexec -linux/mod_test* -linux/target +old_timestamp +CMakeFiles +CMakeCache.txt +Makefile +Kbuild +cmake_install.cmake +config.h +mcstop+release.sh +mcreboot.sh +mcreboot.1 +mcoverlay-destroy.sh +mcoverlay-create.sh +kernel/mckernel.img +kernel/include/swapfmt.h +executer/user/vmcore2mckdump +executer/user/ql_talker +executer/user/mcexec.1 +executer/user/mcexec +executer/user/libsched_yield.so.1.0.0 +executer/user/libsched_yield.so +executer/user/libmcexec.a +executer/user/libldump2mcdump.so +executer/user/eclair +tools/mcstat/mcstat diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 00000000..ac822c1a --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,190 @@ +cmake_minimum_required(VERSION 2.6) + +if (NOT CMAKE_BUILD_TYPE) + set (CMAKE_BUILD_TYPE "Debug" CACHE STRING "Build type: Debug Release..." FORCE) +endif (NOT CMAKE_BUILD_TYPE) + +enable_language(C ASM) + +project(mckernel C ASM) +set(MCKERNEL_VERSION "1.6.0") + +set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules) +# for rpmbuild +if(DEFINED SYSCONF_INSTALL_DIR) + set(CMAKE_INSTALL_SYSCONFDIR "${SYSCONF_INSTALL_DIR}") +endif() +include(GNUInstallDirs) +include(CMakeParseArguments) +include(Kbuild) +include(Ksym) +include(CheckCCompilerFlag) + +set(CFLAGS_WARNINGS "-Wall -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-unused-function") +CHECK_C_COMPILER_FLAG(-Wno-implicit-fallthrough IMPLICIT_FALLTHROUGH) +if(IMPLICIT_FALLTHROUGH) + set(CFLAGS_WARNINGS "${CFLAGS_WARNINGS} -Wno-implicit-fallthrough") +endif(IMPLICIT_FALLTHROUGH) + +# C flags need to be set before enabling language? +set(CMAKE_C_FLAGS_DEBUG "-g ${CFLAGS_WARNINGS}" CACHE STRING "Debug compiler flags") +set(CMAKE_C_FLAGS_RELEASE "${CFLAGS_WARNINGS}" CACHE STRING "Release compiler flags") + +# build options +option(ENABLE_WERROR "Enable -Werror" OFF) +if (ENABLE_WERROR) + add_compile_options("-Werror") +endif(ENABLE_WERROR) + +if (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") + set(BUILD_TARGET "smp-x86" CACHE STRING "Build target: smp-x86 | smp-arm64") +elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") + set(BUILD_TARGET "smp-arm64" CACHE STRING "Build target: smp-x86 | smp-arm64") +endif() +if (BUILD_TARGET STREQUAL "smp-x86") + set(ARCH "x86_64") +elseif (BUILD_TARGET STREQUAL "smp-arm64") + set(ARCH "arm64") + foreach(i RANGE 1 120) + add_definitions(-DPOSTK_DEBUG_ARCH_DEP_${i} -DPOSTK_DEBUG_TEMP_FIX_${i}) + set(KBUILD_C_FLAGS "${KBUILD_C_FLAGS} -DPOSTK_DEBUG_ARCH_DEP_${i} -DPOSTK_DEBUG_TEMP_FIX_${i}") + endforeach() + add_definitions(-DCONFIG_ARM64_64K_PAGES -DCONFIG_ARM64_VA_BITS=48) +endif() +set_property(CACHE BUILD_TARGET PROPERTY STRINGS smp-x86 smp-arm64) + +set(ENABLE_MEMDUMP ON) +option(ENABLE_PERF "Enable perf support" ON) +option(ENABLE_RUSAGE "Enable rusage support" ON) +option(ENABLE_MCOVERLAYFS "Enable overlay filesystem" OFF) +option(ENABLE_QLMPI "Enable qlmpi programs" OFF) +option(ENABLE_UTI "Enable uti support" OFF) + +find_library(LIBRT rt) +find_library(LIBNUMA numa) +find_library(LIBBFD bfd) +find_library(LIBIBERTY iberty) + +if (ENABLE_QLMPI) + find_package(MPI REQUIRED) +endif() + +if (ENABLE_UTI) + find_library(LIBSYSCALL_INTERCEPT syscall_intercept) +endif() + +string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)(-([0-9]+)(.*))?" "\\1;\\2;\\3;\\5;\\6" LINUX_VERSION ${UNAME_R}) +list(GET LINUX_VERSION 0 LINUX_VERSION_MAJOR) +list(GET LINUX_VERSION 1 LINUX_VERSION_MINOR) +list(GET LINUX_VERSION 2 LINUX_VERSION_PATCH) +list(GET LINUX_VERSION 3 LINUX_VERSION_RELEASE) +math(EXPR LINUX_VERSION_CODE "${LINUX_VERSION_MAJOR} * 65536 + ${LINUX_VERSION_MINOR} * 256 + ${LINUX_VERSION_PATCH}") + +ksym(sys_mount PREFIX MCCTRL_) +ksym(sys_umount PREFIX MCCTRL_) +ksym(sys_unshare PREFIX MCCTRL_) +ksym(zap_page_range PREFIX MCCTRL_) +ksym(vdso_image_64 PREFIX MCCTRL_) +ksym(vdso_start PREFIX MCCTRL_) +ksym(vdso_end PREFIX MCCTRL_) +ksym(vdso_pages PREFIX MCCTRL_) +ksym(__vvar_page PREFIX MCCTRL_) +ksym(hpet_address PREFIX MCCTRL_) +# POSTK_DEBUG_ARCH_DEP_50, add:find kernel symbol. +ksym(vdso_spec PREFIX MCCTRL_) +ksym(hv_clock PREFIX MCCTRL_) +ksym(sys_readlink PREFIX MCCTRL_) +ksym(walk_page_range PREFIX MCCTRL_) + + +# compat with various install paths +set(MCKERNEL_LIBDIR ${CMAKE_INSTALL_FULL_LIBDIR}) +set(BINDIR ${CMAKE_INSTALL_FULL_BINDIR}) +set(SBINDIR ${CMAKE_INSTALL_FULL_SBINDIR}) +set(ETCDIR ${CMAKE_INSTALL_FULL_SYSCONFDIR}) +set(ROOTFSDIR "${CMAKE_INSTALL_PREFIX}/rootfs") +if (CMAKE_INSTALL_PREFIX STREQUAL "/usr") + set(KMODDIR "/lib/modules/${UNAME_R}/extra/mckernel") + set(MCKERNELDIR "${CMAKE_INSTALL_FULL_DATADIR}/mckernel/${BUILD_TARGET}") +else() + set(KMODDIR "${CMAKE_INSTALL_PREFIX}/kmod") + set(MCKERNELDIR "${CMAKE_INSTALL_PREFIX}/${BUILD_TARGET}/kernel") +endif() +set(prefix ${CMAKE_INSTALL_PREFIX}) + +# set rpath for everyone +set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR}) + +# ihk: ultimately should support extrnal build, but add as subproject for now +if (EXISTS ${PROJECT_SOURCE_DIR}/ihk/CMakeLists.txt) + set(IHK_SOURCE_DIR "ihk" CACHE STRINGS "path to ihk source directory from mckernel sources") +elseif (EXISTS ${PROJECT_SOURCE_DIR}/../ihk/CMakeLists.txt) + set(IHK_SOURCE_DIR "../ihk" CACHE STRINGS "path to ihk source directory from mckernel sources") +else() + set(IHK_SOURCE_DIR "ihk" CACHE STRINGS "path to ihk source directory from mckernel sources") +endif() +if (EXISTS ${PROJECT_SOURCE_DIR}/${IHK_SOURCE_DIR}/CMakeLists.txt) + set(IHK_FULL_SOURCE_DIR ${PROJECT_SOURCE_DIR}/${IHK_SOURCE_DIR}) +elseif (EXISTS /${IHK_SOURCE_DIR}/CMakeLists.txt) + set(IHK_FULL_SOURCE_DIR /${IHK_SOURCE_DIR}) +else() + message(FATAL_ERROR "Could not find ihk dir, or it does not contain CMakeLists.txt, either clone ihk or run git submodule update --init") +endif() + +add_subdirectory(${IHK_SOURCE_DIR} ihk) + +configure_file(config.h.in config.h) + +# actual build section - just subdirs +add_subdirectory(executer/kernel/mcctrl) +if (ENABLE_MCOVERLAYFS) + add_subdirectory(executer/kernel/mcoverlayfs) +endif() +add_subdirectory(executer/user) +add_subdirectory(kernel) +add_subdirectory(tools/mcstat) + +configure_file(arch/x86_64/tools/mcreboot-smp-x86.sh.in mcreboot.sh @ONLY) +configure_file(arch/x86_64/tools/mcstop+release-smp-x86.sh.in mcstop+release.sh @ONLY) +configure_file(arch/x86_64/tools/mcreboot.1in mcreboot.1 @ONLY) +install(PROGRAMS + "${CMAKE_CURRENT_BINARY_DIR}/mcreboot.sh" + "${CMAKE_CURRENT_BINARY_DIR}/mcstop+release.sh" + DESTINATION "${CMAKE_INSTALL_SBINDIR}") +install(FILES + "arch/x86_64/tools/irqbalance_mck.service" + "arch/x86_64/tools/irqbalance_mck.in" + DESTINATION "${CMAKE_INSTALL_SYSCONFDIR}") +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/mcreboot.1" + DESTINATION "${CMAKE_INSTALL_MANDIR}/man1") + + +configure_file(scripts/mckernel.spec.in scripts/mckernel.spec @ONLY) +set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${MCKERNEL_VERSION}") +set(CPACK_SOURCE_IGNORE_FILES "/.git$") +set(CPACK_SOURCE_INSTALLED_DIRECTORIES "${CMAKE_SOURCE_DIR};/;${IHK_FULL_SOURCE_DIR};/ihk;${CMAKE_BINARY_DIR}/scripts;/scripts") +set(CPACK_SOURCE_GENERATOR "TGZ") +include(CPack) +add_custom_target(dist COMMAND ${CMAKE_MAKE_PROGRAM} package_source) + + +# config report +message("-------------------------------") +message("Option summary") +message("-------------------------------") +message("Build type: ${CMAKE_BUILD_TYPE}") +message("Build target: ${BUILD_TARGET}") +message("IHK_SOURCE_DIR: ${IHK_SOURCE_DIR} (relative to mckernel source tree)") +message("UNAME_R: ${UNAME_R}") +message("KERNEL_DIR: ${KERNEL_DIR}") +message("SYSTEM_MAP: ${SYSTEM_MAP}") +message("VMLINUX: ${VMLINUX}") +message("KBUILD_C_FLAGS: ${KBUILD_C_FLAGS}") +message("ENABLE_MEMDUMP: ${ENABLE_MEMDUMP}") +message("ENABLE_PERF: ${ENABLE_PERF}") +message("ENABLE_RUSAGE: ${ENABLE_RUSAGE}") +message("ENABLE_MCOVERLAYFS: ${ENABLE_MCOVERLAYFS}") +message("ENABLE_QLMPI: ${ENABLE_QLMPI}") +message("ENABLE_UTI: ${ENABLE_UTI}") +message("ENABLE_WERROR: ${ENABLE_WERROR}") +message("-------------------------------") diff --git a/Makefile.in b/Makefile.in deleted file mode 100755 index 938ef775..00000000 --- a/Makefile.in +++ /dev/null @@ -1,82 +0,0 @@ -# Makefile.in COPYRIGHT FUJITSU LIMITED 2013-2018 -TARGET = @TARGET@ -SBINDIR = @SBINDIR@ -INCDIR = @INCDIR@ -ETCDIR = @ETCDIR@ -MANDIR = @MANDIR@ - -all: executer-mcctrl executer-mcoverlayfs executer-user mckernel mck-tools - -executer-mcctrl: - +@(cd executer/kernel/mcctrl; $(MAKE) modules) - -executer-mcoverlayfs: - +@(cd executer/kernel/mcoverlayfs; $(MAKE) modules) - -executer-user: - +@(cd executer/user; $(MAKE)) - -mckernel: - +@case "$(TARGET)" in \ - attached-mic | builtin-x86 | builtin-mic | smp-x86 | smp-arm64) \ - (cd kernel; $(MAKE)) \ - ;; \ - *) \ - echo "unknown target $(TARGET)" >&2 \ - exit 1 \ - ;; \ - esac - -mck-tools: - +@(cd tools/mcstat; $(MAKE)) - -install: - @(cd executer/kernel/mcctrl; $(MAKE) install) - @(cd executer/kernel/mcoverlayfs; $(MAKE) install) - @(cd executer/user; $(MAKE) install) - @case "$(TARGET)" in \ - attached-mic | builtin-x86 | builtin-mic | smp-x86 | smp-arm64) \ - (cd kernel; $(MAKE) install) \ - ;; \ - *) \ - echo "unknown target $(TARGET)" >&2 \ - exit 1 \ - ;; \ - esac - @case "$(TARGET)" in \ - smp-x86 | smp-arm64) \ - mkdir -p -m 755 $(SBINDIR); \ - install -m 755 arch/x86_64/tools/mcreboot-smp-x86.sh $(SBINDIR)/mcreboot.sh; \ - install -m 755 arch/x86_64/tools/mcstop+release-smp-x86.sh $(SBINDIR)/mcstop+release.sh; \ - install -m 755 arch/x86_64/tools/mcoverlay-destroy-smp-x86.sh $(SBINDIR)/mcoverlay-destroy.sh; \ - install -m 755 arch/x86_64/tools/mcoverlay-create-smp-x86.sh $(SBINDIR)/mcoverlay-create.sh; \ - install -m 755 arch/x86_64/tools/eclair-dump-backtrace.exp $(SBINDIR)/eclair-dump-backtrace.exp;\ - mkdir -p -m 755 $(ETCDIR); \ - install -m 644 arch/x86_64/tools/irqbalance_mck.service $(ETCDIR)/irqbalance_mck.service; \ - install -m 644 arch/x86_64/tools/irqbalance_mck.in $(ETCDIR)/irqbalance_mck.in; \ - mkdir -p -m 755 $(INCDIR); \ - install -m 644 kernel/include/swapfmt.h $(INCDIR); \ - mkdir -p -m 755 $(MANDIR)/man1; \ - install -m 644 arch/x86_64/tools/mcreboot.1 $(MANDIR)/man1/mcreboot.1; \ - ;; \ - *) \ - echo "unknown target $(TARGET)" >&2 \ - exit 1 \ - ;; \ - esac - @(cd tools/mcstat/; $(MAKE) install) - -clean: - @(cd executer/kernel/mcctrl; $(MAKE) clean) - @(cd executer/kernel/mcoverlayfs; $(MAKE) clean) - @(cd executer/user; $(MAKE) clean) - @case "$(TARGET)" in \ - attached-mic | builtin-x86 | builtin-mic | smp-x86 | smp-arm64) \ - (cd kernel; $(MAKE) clean) \ - ;; \ - *) \ - echo "unknown target $(TARGET)" >&2 \ - exit 1 \ - ;; \ - esac - @(cd tools/mcstat; $(MAKE) clean) diff --git a/Readme.md b/README.md similarity index 96% rename from Readme.md rename to README.md index 882181ad..77407ef6 100644 --- a/Readme.md +++ b/README.md @@ -102,21 +102,14 @@ Clone the source code and set up ihk symlink (this is currently required): mkdir -p ~/src/ihk+mckernel/ cd ~/src/ihk+mckernel/ git clone -r git@github.com:RIKEN-SysSoft/mckernel.git -ln -s mckernel/ihk ihk ~~~~ -Configure and compile (for x86 architecture): +Configure and compile: ~~~~ -export TOP=${HOME}/ihk+mckernel/ -cd ~/src/ihk+mckernel/ihk/ -./configure --with-target=smp-x86 --prefix=${TOP} -cd ~/src/ihk+mckernel/mckernel/ -./configure --with-target=smp-x86 --prefix=${TOP} -cd ~/src/ihk+mckernel/ihk/ -make && make install -cd ~/src/ihk+mckernel/mckernel/ -make && make install +mkdir -p build && cd build +cmake -DCMAKE_INSTALL_PREFIX=${HOME}/ihk+mckernel $HOME/src/mckernel +make -j install ~~~~ The IHK kernel modules and McKernel kernel image should be installed under the **ihk+mckernel** folder in your home directory. diff --git a/arch/arm64/kernel/vdso.c b/arch/arm64/kernel/vdso.c index b082ce38..87f35c81 100644 --- a/arch/arm64/kernel/vdso.c +++ b/arch/arm64/kernel/vdso.c @@ -88,26 +88,8 @@ int arch_setup_vdso(void) kprintf("Enable Host mapping vDSO.\n"); return 0; } - kprintf("Enable McK mapping vDSO.\n"); - if (memcmp(&vdso_start, "\177ELF", 4)) { - panic("vDSO is not a valid ELF object!\n"); - } - - vdso.vdso_npages = (&vdso_end - &vdso_start) >> PAGE_SHIFT; - dkprintf("vdso: %ld pages (%ld code @ %p, %ld data @ %p)\n", - vdso.vdso_npages + 1, vdso.vdso_npages, &vdso_start, 1L, &tod_data); - if (vdso.vdso_npages != 1) { - panic("vDSO is not a valid number of pages!\n"); - } - - vdso.vvar_phys = virt_to_phys((void *)&tod_data); - vdso.vdso_physlist[0] = virt_to_phys((void *)&vdso_start); - - vdso.lbase = VDSO_LBASE; - vdso.offset_sigtramp = vdso_offset_sigtramp; - - return 0; + panic("Only support host mapping vDSO"); } static int get_free_area(struct process_vm *vm, size_t len, intptr_t hint, diff --git a/arch/arm64/kernel/vdso.so.S b/arch/arm64/kernel/vdso.so.S deleted file mode 100644 index 281de7d8..00000000 --- a/arch/arm64/kernel/vdso.so.S +++ /dev/null @@ -1,33 +0,0 @@ -/* vdso.so.S COPYRIGHT FUJITSU LIMITED 2016 */ -/* @ref.impl arch/arm64/kernel/vdso/vdso.S */ -/* - * Copyright (C) 2012 ARM Limited - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Author: Will Deacon - */ - -#include -#include - - .section ".vdso.txet", "aw" - - .globl vdso_start, vdso_end - .balign PAGE_SIZE -vdso_start: - .incbin VDSO_SO_PATH - .balign PAGE_SIZE -vdso_end: - - .previous diff --git a/arch/arm64/kernel/vdso/Makefile.in b/arch/arm64/kernel/vdso/Makefile.in deleted file mode 100644 index e432fd52..00000000 --- a/arch/arm64/kernel/vdso/Makefile.in +++ /dev/null @@ -1,137 +0,0 @@ -# Makefile.in COPYRIGHT FUJITSU LIMITED 2016-2018 -# @ref.impl arch/arm64/kernel/vdso/Makefile -# Building a vDSO image for AArch64. - -RMDIR=rmdir - -HOST_DIR=@KDIR@ -HOST_CONFIG=$(HOST_DIR)/.config -HOST_KERNEL_CONFIG_ARM64_4K_PAGES=$(shell grep -E "^CONFIG_ARM64_4K_PAGES=y" $(HOST_CONFIG) | sed 's|CONFIG_ARM64_4K_PAGES=||g') -HOST_KERNEL_CONFIG_ARM64_16K_PAGES=$(shell grep -E "^CONFIG_ARM64_16K_PAGES=y" $(HOST_CONFIG) | sed 's|CONFIG_ARM64_16K_PAGES=||g') -HOST_KERNEL_CONFIG_ARM64_64K_PAGES=$(shell grep -E "^CONFIG_ARM64_64K_PAGES=y" $(HOST_CONFIG) | sed 's|CONFIG_ARM64_64K_PAGES=||g') - -VDSOSRC = @abs_srcdir@ -VDSOBUILD = @abs_builddir@ -ECHO_SUFFIX = [VDSO] - -VDSOOBJS := gettimeofday.o -DESTOBJS = $(addprefix $(VDSOBUILD)/, $(VDSOOBJS)) - -VDSOASMOBJS := note.o sigreturn.o -DESTASMOBJS = $(addprefix $(VDSOBUILD)/, $(VDSOASMOBJS)) - -$(if $(VDSOSRC),,$(error IHK output directory is not specified)) -$(if $(TARGET),,$(error Target is not specified)) - -#CFLAGS := -nostdinc -mlittle-endian -Wall -mabi=lp64 -Wa,-gdwarf-2 -CFLAGS += -nostdinc -mlittle-endian -Wall -Wa,-gdwarf-2 -CFLAGS += -I$(SRC)/include -I$(SRC)/../lib/include -I$(VDSOSRC)/../include -CFLAGS += -I$(IHKBASE)/$(TARGETDIR)/include -Wno-unused-function -I$(IHKBASE)/../ikc/include -I$(IHKBASE)/../linux/include -CFLAGS += -DIHK_OS_MANYCORE -D__KERNEL__ -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))) - -LDFLAGS := -nostdinc -mlittle-endian -Wall -Wundef -Wstrict-prototypes -LDFLAGS += -Wno-trigraphs -fno-strict-aliasing -fno-common -LDFLAGS += -Werror-implicit-function-declaration -Wno-format-security -#LDFLAGS += -std=gnu89 -mgeneral-regs-only -mabi=lp64 -O2 -LDFLAGS += -std=gnu89 -mgeneral-regs-only -O2 -LDFLAGS += -Wframe-larger-than=2048 -fno-stack-protector -LDFLAGS += -fno-delete-null-pointer-checks -Wno-unused-but-set-variable -LDFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls -LDFLAGS += -fno-var-tracking-assignments -g -Wdeclaration-after-statement -LDFLAGS += -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -LDFLAGS += -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -LDFLAGS += -shared -fno-common -fno-builtin -nostdlib -LDFLAGS += -Wl,-soname=linux-vdso.so.1 -Wl,--hash-style=sysv -Wl,-n -Wl,-T -LDFLAGS += --param=allow-store-data-races=0 -DCC_HAVE_ASM_GOTO -LDFLAGS += -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(vdso.so)" -LDFLAGS += -D"KBUILD_MODNAME=KBUILD_STR(vdso.so)" -D__KERNEL__ - -DEPSRCS = $(wildcard $(VDSOSRC)/*.c $(VDSOSRC)/*.S) - -CFLAGS_lds := -E -P -C -U$(ARCH) -CFLAGS_lds += -nostdinc -CFLAGS_lds += -mlittle-endian -CFLAGS_lds += -D__KERNEL__ -CFLAGS_lds += -D__ASSEMBLY__ -CFLAGS_lds += -DLINKER_SCRIPT -CFLAGS_lds += -DVDSO_LBASE=0 -ifeq ($(HOST_KERNEL_CONFIG_ARM64_4K_PAGES), y) -CFLAGS_lds += -DPAGE_SIZE=0x1000 -endif -ifeq ($(HOST_KERNEL_CONFIG_ARM64_16K_PAGES), y) -CFLAGS_lds += -DPAGE_SIZE=0x4000 -endif -ifeq ($(HOST_KERNEL_CONFIG_ARM64_64K_PAGES), y) -CFLAGS_lds += -DPAGE_SIZE=0x10000 -endif - -#load mckernel config (append CPPFLAGS) -#include @abs_top_builddir@/../ihk/cokernel/Makefile.common -include @abs_top_builddir@/../ihk/cokernel/$(TARGETDIR)/Makefile.predefines - -default: all - -.PHONY: all clean depend prepare - -all: depend $(VDSOBUILD)/vdso.so $(VDSOBUILD)/../include/vdso-offsets.h $(VDSOBUILD)/../include/vdso-so-path.h - -# Strip rule for the .so file -$(VDSOBUILD)/vdso.so: OBJCOPYFLAGS := -S -$(VDSOBUILD)/vdso.so: $(VDSOBUILD)/vdso.so.dbg - $(objcopy_cmd) - -# Generate VDSO offsets using helper script -$(VDSOBUILD)/../include/vdso-offsets.h: $(VDSOBUILD)/vdso.so.dbg - $(call echo_cmd,VDSOSYM,$<) - @mkdir -p $(VDSOBUILD)/../include - @nm $< | sh $(VDSOSRC)/gen_vdso_offsets.sh | LC_ALL=C sort > $@ - -$(VDSOBUILD)/../include/vdso-so-path.h: - @echo "#define VDSO_SO_PATH \"@abs_builddir@/vdso.so\"" > $@ - -# Link rule for the .so file, .lds has to be first -$(VDSOBUILD)/vdso.so.dbg: $(VDSOBUILD)/vdso.lds $(DESTOBJS) $(DESTASMOBJS) - $(ld_cmd) - -$(VDSOBUILD)/vdso.lds: $(VDSOSRC)/vdso.lds.S - $(lds_cmd) - -clean: - $(rm_cmd) -f $(DESTOBJS) $(DESTASMOBJS) $(VDSOBUILD)/Makefile.dep $(VDSOBUILD)/vdso.lds - $(rm_cmd) -f $(VDSOBUILD)/vdso.so* $(VDSOBUILD)/../include/vdso-offsets.h $(VDSOBUILD)/../include/vdso-so-path.h - $(rmdir_cmd) --ignore-fail-on-non-empty $(VDSOBUILD)/../include - -depend: $(VDSOBUILD)/Makefile.dep - -$(VDSOBUILD)/Makefile.dep: - $(call dep_cmd,$(DEPSRCS)) - -prepare: - @$(RM) $(VDSOBUILD)/Makefile.dep - --include $(VDSOBUILD)/Makefile.dep - -# Actual build commands -ifeq ($(V),1) -echo_cmd = -submake = make -else -echo_cmd = @echo ' ($(TARGET))' $1 $(ECHO_SUFFIX) $2; -submake = make --no-print-directory -endif - -cc_cmd = $(call echo_cmd,CC,$<)$(CC) $(CFLAGS) -c -o $@ -ld_cmd = $(call echo_cmd,LD,$@)$(CC) $(LDFLAGS) $^ -o $@ -dep_cmd = $(call echo_cmd,DEPEND,)$(CC) $(CFLAGS) -MM $1 > $@ -rm_cmd = $(call echo_cmd,CLEAN,)$(RM) -rmdir_cmd = $(call echo_cmd,CLEAN,)$(RMDIR) -objcopy_cmd = $(call echo_cmd,OBJCOPY,$<)$(OBJCOPY) $(OBJCOPYFLAGS) $< $@ -lds_cmd = $(call echo_cmd,LDS,$<)$(CC) $(CFLAGS_lds) -c -o $@ $< - -$(DESTOBJS): - $(cc_cmd) $(addprefix $(VDSOSRC)/, $(notdir $(@:.o=.c))) -$(DESTASMOBJS): - $(cc_cmd) $(addprefix $(VDSOSRC)/, $(notdir $(@:.o=.S))) -D__ASSEMBLY__ - diff --git a/arch/arm64/kernel/vdso/asm_syscall.h b/arch/arm64/kernel/vdso/asm_syscall.h deleted file mode 100644 index 7deffbf8..00000000 --- a/arch/arm64/kernel/vdso/asm_syscall.h +++ /dev/null @@ -1,15 +0,0 @@ -/* asm_syscall.h COPYRIGHT FUJITSU LIMITED 2016 */ -#ifndef __HEADER_ARM64_VDSO_SYSCALL_H -#define __HEADER_ARM64_VDSO_SYSCALL_H - -#define DECLARATOR(number,name) .equ __NR_##name, number -#define SYSCALL_HANDLED(number,name) DECLARATOR(number,name) -#define SYSCALL_DELEGATED(number,name) DECLARATOR(number,name) - -#include - -#undef DECLARATOR -#undef SYSCALL_HANDLED -#undef SYSCALL_DELEGATED - -#endif /* !__HEADER_ARM64_VDSO_SYSCALL_H */ diff --git a/arch/arm64/kernel/vdso/gen_vdso_offsets.sh b/arch/arm64/kernel/vdso/gen_vdso_offsets.sh deleted file mode 100644 index a540fb33..00000000 --- a/arch/arm64/kernel/vdso/gen_vdso_offsets.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh - -# gen_vdso_offsets.sh COPYRIGHT FUJITSU LIMITED 2016 -# @ref.impl arch/arm64/kernel/vdso/gen_vdso_offsets.sh -# -# Match symbols in the DSO that look like VDSO_*; produce a header file -# of constant offsets into the shared object. -# -# Doing this inside the Makefile will break the $(filter-out) function, -# causing Kbuild to rebuild the vdso-offsets header file every time. -# -# Author: Will Deacon -#include -#include -#include -#include -#include - -#define UNUSED(x) ((void)(x)) -void vdso_gettimeofday_unused_funcs(void) -{ - UNUSED(xgetbv); - UNUSED(xsetbv); - UNUSED(rdpmc); - UNUSED(rdmsr); - UNUSED(set_perfctl); - UNUSED(start_perfctr); - UNUSED(stop_perfctr); - UNUSED(clear_perfctl); - UNUSED(set_perfctr); - UNUSED(read_perfctr); - UNUSED(xos_is_tchip); -} - -extern int __kernel_gettimeofday(struct timeval *tv, void *tz); - -static inline void cpu_pause_for_vsyscall(void) -{ - asm volatile ("yield" ::: "memory"); -} - -static inline void vdso_calculate_time_from_tsc(struct timespec *ts, - struct tod_data_s *tod_data) -{ - UNUSED(xgetbv); - UNUSED(xsetbv); - UNUSED(rdpmc); - UNUSED(rdmsr); - UNUSED(set_perfctl); - UNUSED(start_perfctr); - UNUSED(stop_perfctr); - UNUSED(clear_perfctl); - UNUSED(set_perfctr); - UNUSED(read_perfctr); - UNUSED(xos_is_tchip); -} - -static inline struct tod_data_s *get_tod_data_addr(void) -{ - unsigned long addr; - - asm volatile("adr %0, _tod_data\n" - : "=r" (addr) - : - : "memory"); - - return (struct tod_data_s *)addr; -} - -int __kernel_gettimeofday(struct timeval *tv, void *tz) -{ - long ret; - struct tod_data_s *tod_data; - struct timespec ats; - - if(!tv && !tz) { - /* nothing to do */ - return 0; - } - - tod_data = get_tod_data_addr(); - - /* DO it locally if supported */ - if (!tz && tod_data->do_local) { - vdso_calculate_time_from_tsc(&ats, tod_data); - - tv->tv_sec = ats.tv_sec; - tv->tv_usec = ats.tv_nsec / 1000; - - return 0; - } - - /* Otherwize syscall */ - asm volatile("mov w8, %w1\n" - "mov x0, %2\n" - "mov x1, %3\n" - "svc #0\n" - "mov %0, x0\n" - : "=r" (ret) - : "r" (__NR_gettimeofday), "r"(tv), "r"(tz) - : "memory"); - - if (ret) { - *(int *)0 = 0; /* i.e. raise(SIGSEGV) */ - } - return (int)ret; -} - -/* - * The IDs of the various system clocks (for POSIX.1b interval timers): - * @ref.impl include/uapi/linux/time.h - */ -// #define CLOCK_REALTIME 0 -// #define CLOCK_MONOTONIC 1 -// #define CLOCK_PROCESS_CPUTIME_ID 2 -// #define CLOCK_THREAD_CPUTIME_ID 3 -#define CLOCK_MONOTONIC_RAW 4 -#define CLOCK_REALTIME_COARSE 5 -#define CLOCK_MONOTONIC_COARSE 6 -#define CLOCK_BOOTTIME 7 -#define CLOCK_REALTIME_ALARM 8 -#define CLOCK_BOOTTIME_ALARM 9 -#define CLOCK_SGI_CYCLE 10 /* Hardware specific */ -#define CLOCK_TAI 11 - -#define HIGH_RES_NSEC 1 /* nsec. */ -#define CLOCK_REALTIME_RES HIGH_RES_NSEC - -#define CLOCK_COARSE_RES ((NS_PER_SEC+CONFIG_HZ/2)/CONFIG_HZ) /* 10,000,000 nsec*/ - -typedef int clockid_t; - -int __kernel_clock_gettime(clockid_t clk_id, struct timespec *tp) -{ - long ret; - struct tod_data_s *tod_data; - struct timespec ats; - - if (!tp) { - /* nothing to do */ - return 0; - } - - tod_data = get_tod_data_addr(); - - /* DO it locally if supported */ - if (tod_data->do_local && clk_id == CLOCK_REALTIME) { - vdso_calculate_time_from_tsc(&ats, tod_data); - - tp->tv_sec = ats.tv_sec; - tp->tv_nsec = ats.tv_nsec; - - return 0; - } - - /* Otherwize syscall */ - asm volatile("mov w8, %w1\n" - "mov x0, %2\n" - "mov x1, %3\n" - "svc #0\n" - "mov %0, x0\n" - : "=r" (ret) - : "r" (__NR_clock_gettime), "r"(clk_id), "r"(tp) - : "memory"); - - return (int)ret; -} - -int __kernel_clock_getres(clockid_t clk_id, struct timespec *res) -{ - long ret; - - if (!res) { - /* nothing to do */ - return 0; - } - - switch (clk_id) { - case CLOCK_REALTIME: - case CLOCK_MONOTONIC: - res->tv_sec = 0; - res->tv_nsec = CLOCK_REALTIME_RES; - return 0; - break; - case CLOCK_REALTIME_COARSE: - case CLOCK_MONOTONIC_COARSE: - res->tv_sec = 0; - res->tv_nsec = CLOCK_COARSE_RES; - return 0; - break; - default: - break; - } - - /* Otherwise syscall */ - asm volatile("mov w8, %w1\n" - "mov x0, %2\n" - "mov x1, %3\n" - "svc #0\n" - "mov %0, x0\n" - : "=r" (ret) - : "r" (__NR_clock_getres), "r"(clk_id), "r"(res) - : "memory"); - - return (int)ret; -} diff --git a/arch/arm64/kernel/vdso/note.S b/arch/arm64/kernel/vdso/note.S deleted file mode 100644 index efec7ad9..00000000 --- a/arch/arm64/kernel/vdso/note.S +++ /dev/null @@ -1,28 +0,0 @@ -/* note.S COPYRIGHT FUJITSU LIMITED 2016 */ -/* @ref.impl arch/arm64/kernel/vdso/note.S */ -/* - * Copyright (C) 2012 ARM Limited - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Author: Will Deacon - * - * This supplies .note.* sections to go into the PT_NOTE inside the vDSO text. - * Here we can supply some information useful to userland. - */ - -#include - -ELFNOTE_START(McKernel, 0, "a") - .long 0x10000 /* MCKERNEL_VERSION_CODE */ -ELFNOTE_END diff --git a/arch/arm64/kernel/vdso/sigreturn.S b/arch/arm64/kernel/vdso/sigreturn.S deleted file mode 100644 index b523af26..00000000 --- a/arch/arm64/kernel/vdso/sigreturn.S +++ /dev/null @@ -1,39 +0,0 @@ -/* sigreturn.S COPYRIGHT FUJITSU LIMITED 2016 */ -/* @ref.impl arch/arm64/kernel/vdso/sigreturn.S */ -/* - * Sigreturn trampoline for returning from a signal when the SA_RESTORER - * flag is not set. - * - * Copyright (C) 2012 ARM Limited - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Author: Will Deacon - */ - -#include -#include - - .text - - nop -ENTRY(__kernel_rt_sigreturn) - .cfi_startproc - .cfi_signal_frame - .cfi_def_cfa x29, 0 - .cfi_offset x29, 0 * 8 - .cfi_offset x30, 1 * 8 - mov x8, #__NR_rt_sigreturn - svc #0 - .cfi_endproc -ENDPROC(__kernel_rt_sigreturn) diff --git a/arch/arm64/kernel/vdso/vdso.lds.S b/arch/arm64/kernel/vdso/vdso.lds.S deleted file mode 100644 index 90fa559a..00000000 --- a/arch/arm64/kernel/vdso/vdso.lds.S +++ /dev/null @@ -1,96 +0,0 @@ -/* vdso.lds.S COPYRIGHT FUJITSU LIMITED 2016 */ -/* @ref.impl arch/arm64/kernel/vdso/vdso.lds.S */ -/* - * GNU linker script for the VDSO library. - * - * Copyright (C) 2012 ARM Limited - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Author: Will Deacon - * Heavily based on the vDSO linker scripts for other archs. - */ - -OUTPUT_FORMAT("elf64-littleaarch64", "elf64-bigaarch64", "elf64-littleaarch64") -OUTPUT_ARCH(aarch64) - -SECTIONS -{ - PROVIDE(_tod_data = . - PAGE_SIZE); - . = VDSO_LBASE + SIZEOF_HEADERS; - - .hash : { *(.hash) } :text - .gnu.hash : { *(.gnu.hash) } - .dynsym : { *(.dynsym) } - .dynstr : { *(.dynstr) } - .gnu.version : { *(.gnu.version) } - .gnu.version_d : { *(.gnu.version_d) } - .gnu.version_r : { *(.gnu.version_r) } - - .note : { *(.note.*) } :text :note - - . = ALIGN(16); - - .text : { *(.text*) } :text =0xd503201f - PROVIDE (__etext = .); - PROVIDE (_etext = .); - PROVIDE (etext = .); - - .eh_frame_hdr : { *(.eh_frame_hdr) } :text :eh_frame_hdr - .eh_frame : { KEEP (*(.eh_frame)) } :text - - .dynamic : { *(.dynamic) } :text :dynamic - - .rodata : { *(.rodata*) } :text - - _end = .; - PROVIDE(end = .); - - /DISCARD/ : { - *(.note.GNU-stack) - *(.data .data.* .gnu.linkonce.d.* .sdata*) - *(.bss .sbss .dynbss .dynsbss) - } -} - -/* - * We must supply the ELF program headers explicitly to get just one - * PT_LOAD segment, and set the flags explicitly to make segments read-only. - */ -PHDRS -{ - text PT_LOAD FLAGS(5) FILEHDR PHDRS; /* PF_R|PF_X */ - dynamic PT_DYNAMIC FLAGS(4); /* PF_R */ - note PT_NOTE FLAGS(4); /* PF_R */ - eh_frame_hdr PT_GNU_EH_FRAME; -} - -/* - * This controls what symbols we export from the DSO. - */ -VERSION -{ - LINUX_2.6.39 { - global: - __kernel_rt_sigreturn; - __kernel_gettimeofday; - __kernel_clock_gettime; - __kernel_clock_getres; - local: *; - }; -} - -/* - * Make the sigreturn code visible to the kernel. - */ -VDSO_sigtramp = __kernel_rt_sigreturn; diff --git a/arch/x86_64/tools/irqbalance_mck.in.in b/arch/x86_64/tools/irqbalance_mck.in similarity index 100% rename from arch/x86_64/tools/irqbalance_mck.in.in rename to arch/x86_64/tools/irqbalance_mck.in diff --git a/arch/x86_64/tools/irqbalance_mck.service.in b/arch/x86_64/tools/irqbalance_mck.service similarity index 100% rename from arch/x86_64/tools/irqbalance_mck.service.in rename to arch/x86_64/tools/irqbalance_mck.service diff --git a/arch/x86_64/tools/mcreboot-smp-x86.sh.in b/arch/x86_64/tools/mcreboot-smp-x86.sh.in index 54e97d1c..e6059145 100644 --- a/arch/x86_64/tools/mcreboot-smp-x86.sh.in +++ b/arch/x86_64/tools/mcreboot-smp-x86.sh.in @@ -18,8 +18,8 @@ prefix="@prefix@" BINDIR="${prefix}/bin" SBINDIR="${prefix}/sbin" ETCDIR=@ETCDIR@ -KMODDIR="${prefix}/kmod" -KERNDIR="${prefix}/@TARGET@/kernel" +KMODDIR="@KMODDIR@" +KERNDIR="@MCKERNELDIR@" ENABLE_MCOVERLAYFS="@ENABLE_MCOVERLAYFS@" MCK_BUILDID=@BUILDID@ @@ -138,32 +138,32 @@ error_exit() { fi ;& mcos_sys_mounted) - if [ "$ENABLE_MCOVERLAYFS" == "yes" ]; then + if [ "$ENABLE_MCOVERLAYFS" == "ON" ]; then umount /tmp/mcos/mcos0_sys fi ;& mcos_proc_mounted) - if [ "$ENABLE_MCOVERLAYFS" == "yes" ]; then + if [ "$ENABLE_MCOVERLAYFS" == "ON" ]; then umount /tmp/mcos/mcos0_proc fi ;& mcoverlayfs_loaded) - if [ "$ENABLE_MCOVERLAYFS" == "yes" ]; then + if [ "$ENABLE_MCOVERLAYFS" == "ON" ]; then rmmod mcoverlay 2>/dev/null fi ;& linux_proc_bind_mounted) - if [ "$ENABLE_MCOVERLAYFS" == "yes" ]; then + if [ "$ENABLE_MCOVERLAYFS" == "ON" ]; then umount /tmp/mcos/linux_proc fi ;& tmp_mcos_mounted) - if [ "$ENABLE_MCOVERLAYFS" == "yes" ]; then + if [ "$ENABLE_MCOVERLAYFS" == "ON" ]; then umount /tmp/mcos fi ;& tmp_mcos_created) - if [ "$ENABLE_MCOVERLAYFS" == "yes" ]; then + if [ "$ENABLE_MCOVERLAYFS" == "ON" ]; then rm -rf /tmp/mcos fi ;& @@ -255,7 +255,7 @@ if [ "$cpus" == "" ]; then fi # Remove mcoverlay if loaded -if [ "$ENABLE_MCOVERLAYFS" == "yes" ]; then +if [ "$ENABLE_MCOVERLAYFS" == "ON" ]; then ${SBINDIR}/mcoverlay-destroy.sh ret=$? if [ $ret -ne 0 ]; then @@ -462,7 +462,7 @@ if ! chown ${chown_option} /dev/mcd* /dev/mcos*; then fi # Overlay /proc, /sys with McKernel specific contents -if [ "$ENABLE_MCOVERLAYFS" == "yes" ]; then +if [ "$ENABLE_MCOVERLAYFS" == "ON" ]; then ${SBINDIR}/mcoverlay-create.sh ret=$? if [ $ret -ne 0 ]; then diff --git a/arch/x86_64/tools/mcstop+release-smp-x86.sh.in b/arch/x86_64/tools/mcstop+release-smp-x86.sh.in index 429f3e7d..ffecb10a 100644 --- a/arch/x86_64/tools/mcstop+release-smp-x86.sh.in +++ b/arch/x86_64/tools/mcstop+release-smp-x86.sh.in @@ -100,15 +100,6 @@ if grep mcctrl /proc/modules &>/dev/null; then fi fi -# Remove mcoverlay if loaded -${SBINDIR}/mcoverlay-destroy.sh -ret=$? -if [ $ret -ne 0 ]; then - echo "error: mcoverlay-destroy.sh" >&2 - exit $ret -fi - - # Remove SMP module if grep ihk_smp_@ARCH@ /proc/modules &>/dev/null; then if ! rmmod ihk_smp_@ARCH@ 2>/dev/null; then diff --git a/cmake/README.cross_compilation b/cmake/README.cross_compilation new file mode 100644 index 00000000..b41be81b --- /dev/null +++ b/cmake/README.cross_compilation @@ -0,0 +1,46 @@ +Cross compilation: +------------------ + +The standard way of cross compiling with cmake is to give cmake a "toolchain +file" that describes the compiler prefix and where it can find libraries for +the target system, we provide an example in cmake/cross-aarch64.cmake. + +This obviously requires installing a toolchain and a rootfs with target +libraries to link against. + +In addition, mckernel borrows the Kbuild system from linux kernel, which also +makes the assumption that you can run generated executables (Kbuild uses various +scripts around module building and does not make the distinction between build +target and host target); you can get this working by setting up qemu-user on your +machine which the kernel will transparently use through binfmt magic when trying +to execute other arch binaries. + +# yum install gcc-aarch64-linux-gnu qemu-user +(dnf brings in --forcearch, we use this to setup the sysroot ; there are other +ways of building one. It is available on el7 in extras.) +# yum install dnf dnf-plugins-core +(install these separately because most scripts cannot be run, and dependency hell means we need them first) +# dnf download --releasever=7 --forcearch=aarch64 filesystem centos-release +# rpm --root /usr/aarch64-linux-gnu/sys-root --ignorearch --nodeps -ivh filesystem-*.rpm +# rpm --root /usr/aarch64-linux-gnu/sys-root --ignorearch --nodeps -ivh centos-release-*.rpm +# rpm --root /usr/aarch64-linux-gnu/sys-root --import /usr/aarch64-linux-gnu/sys-root/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 +# rpm --root /usr/aarch64-linux-gnu/sys-root --import /usr/aarch64-linux-gnu/sys-root/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7-aarch64 +# dnf install --releasever=7 --forcearch=aarch64 --installroot=/usr/aarch64-linux-gnu/sys-root/ --setopt=tsflags=noscripts glibc-devel kernel-devel numactl-devel systemd-devel binutils-devel + +(el7 lacks a binfmt for aarch64... fix this) +# echo ':qemu-aarch64:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-aarch64:' > /etc/binfmt.d/qemu-aarch64-dynamic.conf +# systemctl restart systemd-binfmt + +(optional) test your setup +# gcc -xc - <<<'#include '$'\n''int main() { printf("ok\n"); return 0; }' +# export QEMU_LD_PREFIX=/usr/aarch64-linux-gnu/sys-root +# file a.out +a.out: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 3.7.0, BuildID[sha1]=5ff445d3353cad2dae0a22550fe4cc572287dd90, not stripped +# ./a.out +ok + +finally, build mckernel! +# mkdir build; cd build +# export QEMU_LD_PREFIX=/usr/aarch64-linux-gnu/sys-root +# cmake -DCMAKE_INSTALL_PREFIX=/tmp/install-aarch64 -DCMAKE_TOOLCHAIN_FILE=../cmake/cross-aarch64.cmake -DUNAME_R=4.14.0-115.2.2.el7a.aarch64 -DKERNEL_DIR=/usr/aarch64-linux-gnu/sys-root/usr/src/kernels/4.14.0-115.2.2.el7a.aarch64/ -DBUILD_TARGET=smp-arm64 .. +# make -j diff --git a/cmake/cross-aarch64.cmake b/cmake/cross-aarch64.cmake new file mode 100644 index 00000000..ada4b217 --- /dev/null +++ b/cmake/cross-aarch64.cmake @@ -0,0 +1,10 @@ +SET(CMAKE_SYSTEM_NAME Linux) + +SET(CMAKE_C_COMPILER /usr/bin/aarch64-linux-gnu-gcc) +SET(CMAKE_CXX_COMPILER /usr/bin/aarch64-linux-gnu-g++) + +SET(CMAKE_FIND_ROOT_PATH /usr/aarch64-linux-gnu/sys-root) + +SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) diff --git a/cmake/modules/Kbuild.cmake b/cmake/modules/Kbuild.cmake new file mode 100644 index 00000000..cec3344a --- /dev/null +++ b/cmake/modules/Kbuild.cmake @@ -0,0 +1,100 @@ +# Interface to kbuild +# +# Generate Kbuild file as appropriate and call make to the kernel build system +# Original goal was to be simple, but correctness is difficult... + +set(UNAME_R ${CMAKE_SYSTEM_VERSION} CACHE STRING "Kernel version to build against") +set(KERNEL_DIR "/lib/modules/${UNAME_R}/build" CACHE STRING "kernel build directory") + +set(KBUILD_C_FLAGS "" CACHE STRING "Compiler flags to give to Kbuild.") +set(KBUILD_MAKE_FLAGS "" CACHE STRING "Extra make arguments for Kbuild.") + +mark_as_advanced( + KBUILD_C_FLAGS + KBUILD_MAKE_FLAGS +) + +function(kmod MODULE_NAME) + cmake_parse_arguments(KMOD "" "INSTALL_DEST" "C_FLAGS;SOURCES;EXTRA_SYMBOLS;DEPENDS" ${ARGN}) + + add_custom_target(${MODULE_NAME}_ko ALL + DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME}.ko" + "${CMAKE_CURRENT_BINARY_DIR}/Module.symvers") + + string(REGEX REPLACE "\\.c(;|$)" ".o\\1" KMOD_OBJECTS "${KMOD_SOURCES}") + string(REPLACE ";" " " OBJECTS "${KMOD_OBJECTS}") + string(REPLACE ";" " " C_FLAGS "${KMOD_C_FLAGS}") + string(REPLACE ";" " " EXTRA_SYMBOLS "${KMOD_EXTRA_SYMBOLS}") +if(ENABLE_WERROR) + set(ccflags "${KBUILD_C_FLAGS} ${C_FLAGS} -Werror") +else(ENABLE_WERROR) + set(ccflags "${KBUILD_C_FLAGS} ${C_FLAGS}") +endif(ENABLE_WERROR) + configure_file(${CMAKE_SOURCE_DIR}/cmake/modules/Kbuild.in + ${CMAKE_CURRENT_BINARY_DIR}/Kbuild) + + if (${CMAKE_GENERATOR} STREQUAL Ninja) + set(MAKE "make") + list(APPEND KBUILD_MAKE_FLAGS "-j") + else () + set(MAKE "$(MAKE)") + endif () + if (NOT "${ARCH}" STREQUAL "${CMAKE_HOST_SYSTEM_PROCESSOR}") + string(REGEX REPLACE "ld$" "" CROSS_COMPILE "${CMAKE_LINKER}") + list(APPEND KBUILD_MAKE_FLAGS "ARCH=${ARCH};CROSS_COMPILE=${CROSS_COMPILE}") + endif() + + string(REGEX REPLACE "\\.c(;|$)" ".o.cmd\\1" KMOD_O_CMD "${KMOD_SOURCES}") + string(REGEX REPLACE "[^/;]+(;|$)" ".\\0" KMOD_O_CMD "${KMOD_O_CMD}") + + + # This custom command has two uses: + # - first is to list kbuild output files, so make clean does something + # (cmake does not let us add a custom command to make clean) + # - this alone could have been added to the other command, but cmake insists + # on messing with timestamps with touch_nocreate after the command runs, + # so it would incorrectly make intermediary outputs newer than the .ko + # and force kbuild to relink needlessly + add_custom_command( + OUTPUT + old_timestamp + ${KMOD_OBJECTS} + ${KMOD_O_CMD} + "${MODULE_NAME}.o" + ".${MODULE_NAME}.o.cmd" + "${MODULE_NAME}.mod.c" + "${MODULE_NAME}.mod.o" + ".${MODULE_NAME}.mod.o.cmd" + ".${MODULE_NAME}.ko.cmd" + ".tmp_versions/${MODULE_NAME}.mod" + ".tmp_versions" + "modules.order" + COMMAND touch old_timestamp + ) + + # This custom command forces cmake to rebuild the module, so kbuild's dependencies + # (including header files modifications) kick in everytime. + # Ideally, should later be replaced by something parsing the .xxx.cmd files to have + # the native build system do these checks, if possible at all... + add_custom_command(OUTPUT kmod_always_rebuild COMMAND touch kmod_always_rebuild) + + add_custom_command( + OUTPUT "${MODULE_NAME}.ko" + "Module.symvers" + COMMAND ${MAKE} ${KBUILD_MAKE_FLAGS} -C ${KERNEL_DIR} + M=${CMAKE_CURRENT_BINARY_DIR} modules + COMMAND rm -f kmod_always_rebuild + DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/Kbuild" + ${KMOD_DEPENDS} + kmod_always_rebuild + old_timestamp + COMMENT "Building kmod ${MODULE_NAME}" + ) + + if (KMOD_INSTALL_DEST) + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${MODULE_NAME}.ko" + DESTINATION "${KMOD_INSTALL_DEST}") + endif (KMOD_INSTALL_DEST) + + message("Defined module ${MODULE_NAME}") +endfunction(kmod) diff --git a/cmake/modules/Kbuild.in b/cmake/modules/Kbuild.in new file mode 100644 index 00000000..8252f6e2 --- /dev/null +++ b/cmake/modules/Kbuild.in @@ -0,0 +1,7 @@ +ccflags-y := @ccflags@ +src := @CMAKE_CURRENT_SOURCE_DIR@ + +KBUILD_EXTRA_SYMBOLS := @EXTRA_SYMBOLS@ + +obj-m := @MODULE_NAME@.o +@MODULE_NAME@-y := @OBJECTS@ diff --git a/cmake/modules/Ksym.cmake b/cmake/modules/Ksym.cmake new file mode 100644 index 00000000..743fc92c --- /dev/null +++ b/cmake/modules/Ksym.cmake @@ -0,0 +1,43 @@ +# Lookup symbol addresses from Ksymbol file + +set(SYSTEM_MAP "${KERNEL_DIR}/System.map" CACHE STRING "System map to look for symbols") +set(VMLINUX "${KERNEL_DIR}/vmlinux" CACHE STRING "kernel object file") + + +function(ksym SYMBOL) + cmake_parse_arguments(KSYM "" "PREFIX;SOURCE_FILE;SUFFIX" "" ${ARGN}) + + execute_process(COMMAND awk "/ ${SYMBOL}$/ { print $1 }" ${SYSTEM_MAP} + OUTPUT_VARIABLE ADDRESS_CANDIDATES OUTPUT_STRIP_TRAILING_WHITESPACE) + + if (NOT ADDRESS_CANDIDATES) + return() + endif() + + # listify and get first element + string(REPLACE "\n" ";" ADDRESS_CANDIDATES "${ADDRESS_CANDIDATES}") + list(GET ADDRESS_CANDIDATES 0 ADDRESS) + + if (SOURCE_FILE) + foreach(ADDRESS IN LISTS ADDRESS_CANDIDATES) + execute_process(COMMAND addr2line -e ${VMLINUX} ${ADDRESS} + OUTPUT_VARIABLE LINE OUTPUT_STRIP_TRAILING_WHITESPACE) + if(LINE MATCHES ".*${SOURCE_FILE}:.*") + set(FOUND ADDRESS) + break() + endif() + endforeach(ADDRESS) + if(NOT FOUND) + return() + endif() + + # ?! why only if source_file?... + execute_process(COMMAND "awk '/ __ksymtab_${SYMBOL}$/ { print $1 }'" + OUTPUT_VARIABLE SYMBOL_EXPORTED OUTPUT_STRIP_TRAILING_WHITESPACE) + if (SYMBOL_EXPORTED) + set(ADDRESS 0) + endif(SYMBOL_EXPORTED) + endif(SOURCE_FILE) + + set(${KSYM_PREFIX}KSYM_${SYMBOL}${KSYM_SUFFIX} "0x${ADDRESS}" CACHE INTERNAL "symbol") +endfunction(ksym) diff --git a/config.h.in b/config.h.in index 8ee2f3a3..bedd0af0 100644 --- a/config.h.in +++ b/config.h.in @@ -1,97 +1,37 @@ /* config.h.in. Generated from configure.ac by autoheader. */ -/* Path of install directory for binary */ -#undef BINDIR - /* IHK build-id to confirm IHK and McKernel built at the same time are used */ -#undef BUILDID +#define BUILDID "${BUILDID}" + +/* version number */ +#define MCKERNEL_VERSION "${MCKERNEL_VERSION}" /* whether mcoverlayfs is enabled */ -#undef ENABLE_MCOVERLAYFS +#cmakedefine ENABLE_MCOVERLAYFS 1 /* whether memdump feature is enabled */ -#undef ENABLE_MEMDUMP +#cmakedefine ENABLE_MEMDUMP 1 /* whether perf is enabled */ -#undef ENABLE_PERF +#cmakedefine ENABLE_PERF 1 /* whether qlmpi is enabled */ -#undef ENABLE_QLMPI +#cmakedefine ENABLE_QLMPI 1 /* whether rusage is enabled */ -#undef ENABLE_RUSAGE +#cmakedefine ENABLE_RUSAGE 1 -/* Define to 1 if you have the header file. */ -#undef HAVE_INTTYPES_H - -/* Define to 1 if you have the `bfd' library (-lbfd). */ -#undef HAVE_LIBBFD - -/* Define to 1 if you have the `iberty' library (-liberty). */ -#undef HAVE_LIBIBERTY - -/* Define to 1 if you have the header file. */ -#undef HAVE_MEMORY_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDINT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDLIB_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRINGS_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRING_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_STAT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_TYPES_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_UNISTD_H - -/* IHK version string */ -#undef IHK_VERSION - -/* McKernel specific headers */ -#undef MCKERNEL_INCDIR - -/* McKernel specific libraries */ -#undef MCKERNEL_LIBDIR - -/* McKernel version string */ -#undef MCKERNEL_VERSION - -/* Define to the address where bug reports for this package should be sent. */ -#undef PACKAGE_BUGREPORT - -/* Define to the full name of this package. */ -#undef PACKAGE_NAME - -/* Define to the full name and version of this package. */ -#undef PACKAGE_STRING - -/* Define to the one symbol short name of this package. */ -#undef PACKAGE_TARNAME - -/* Define to the home page for this package. */ -#undef PACKAGE_URL - -/* Define to the version of this package. */ -#undef PACKAGE_VERSION +/* whether UTI is enabled */ +#cmakedefine ENABLE_UTI 1 /* Path of bind-mount source directory */ -#undef ROOTFSDIR +#cmakedefine ROOTFSDIR "${ROOTFSDIR}" + +/* Path of install directory for libraries */ +#cmakedefine MCKERNEL_LIBDIR "${MCKERNEL_LIBDIR}" + +/* Path of install directory for binary */ +#cmakedefine BINDIR "${BINDIR}" /* Path of install directory for system binary */ -#undef SBINDIR - -/* Define to 1 if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* whether or not syscall_intercept library is linked */ -#undef WITH_SYSCALL_INTERCEPT +#cmakedefine SBINDIR "${SBINDIR}" diff --git a/configure b/configure deleted file mode 100755 index 428a891d..00000000 --- a/configure +++ /dev/null @@ -1,6271 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for mckernel 1.5.0. -# -# -# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -# -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -# Use a proper internal environment variable to ensure we don't fall - # into an infinite loop, continuously re-executing ourselves. - if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then - _as_can_reexec=no; export _as_can_reexec; - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 - fi - # We don't want this to propagate to other subprocesses. - { _as_can_reexec=; unset _as_can_reexec;} -if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi -" - as_required="as_fn_return () { (exit \$1); } -as_fn_success () { as_fn_return 0; } -as_fn_failure () { as_fn_return 1; } -as_fn_ret_success () { return 0; } -as_fn_ret_failure () { return 1; } - -exitcode=0 -as_fn_success || { exitcode=1; echo as_fn_success failed.; } -as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } -as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } -as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : - -else - exitcode=1; echo positional parameters were not saved. -fi -test x\$exitcode = x0 || exit 1 -test -x / || exit 1" - as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO - as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO - eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 -test \$(( 1 + 1 )) = 2 || exit 1" - if (eval "$as_required") 2>/dev/null; then : - as_have_required=yes -else - as_have_required=no -fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : - -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_found=false -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - as_found=: - case $as_dir in #( - /*) - for as_base in sh bash ksh sh5; do - # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : - CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : - break 2 -fi -fi - done;; - esac - as_found=false -done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } -IFS=$as_save_IFS - - - if test "x$CONFIG_SHELL" != x; then : - export CONFIG_SHELL - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -exit 255 -fi - - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." - else - $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, -$0: including any error possibly output before this -$0: message. Then install a modern shell, or manually run -$0: the script under such a shell if you do have one." - fi - exit 1 -fi -fi -fi -SHELL=${CONFIG_SHELL-/bin/sh} -export SHELL -# Unset more variables known to interfere with behavior of common tools. -CLICOLOR_FORCE= GREP_OPTIONS= -unset CLICOLOR_FORCE GREP_OPTIONS - -## --------------------- ## -## M4sh Shell Functions. ## -## --------------------- ## -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - - - as_lineno_1=$LINENO as_lineno_1a=$LINENO - as_lineno_2=$LINENO as_lineno_2a=$LINENO - eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && - test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { - # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } - - # If we had to re-execute with $CONFIG_SHELL, we're ensured to have - # already done that, so ensure we don't try to do so again and fall - # in an infinite loop. This has already happened in practice. - _as_can_reexec=no; export _as_can_reexec - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -test -n "$DJDIR" || exec 7<&0 &1 - -# Name of the host. -# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIBOBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= - -# Identity of this package. -PACKAGE_NAME='mckernel' -PACKAGE_TARNAME='mckernel' -PACKAGE_VERSION='1.5.0' -PACKAGE_STRING='mckernel 1.5.0' -PACKAGE_BUGREPORT='' -PACKAGE_URL='' - -ac_default_prefix=/opt/ppos -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include -#endif -#ifdef STDC_HEADERS -# include -# include -#else -# ifdef HAVE_STDLIB_H -# include -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include -# endif -# include -#endif -#ifdef HAVE_STRINGS_H -# include -#endif -#ifdef HAVE_INTTYPES_H -# include -#endif -#ifdef HAVE_STDINT_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif" - -ac_subst_vars='LTLIBOBJS -LIBOBJS -uncomment_if_ENABLE_MEMDUMP -DCFA_RESEASE_DATE -MCKERNEL_RELEASE_DATE -IHK_RELEASE_DATE -DCFA_VERSION -MCKERNEL_VERSION -IHK_VERSION -WITH_SYSCALL_INTERCEPT -ENABLE_QLMPI -ENABLE_RUSAGE -MCOVERLAYFS_MODULE -ENABLE_MCOVERLAYFS -LDFLAGS_SYSCALL_INTERCEPT -CPPFLAGS_SYSCALL_INTERCEPT -MANDIR -KERNDIR -KMODDIR -INCLUDEDIR -ETCDIR -INCDIR -MCKERNEL_LIBDIR -MCKERNEL_INCDIR -SBINDIR -BINDIR -TARGET -UNAME_R -KDIR -ARCH -BUILDID -XCC -FGREP -EGREP -GREP -CPP -OBJEXT -EXEEXT -ac_ct_CC -CPPFLAGS -LDFLAGS -CFLAGS -CC -target_alias -host_alias -build_alias -LIBS -ECHO_T -ECHO_N -ECHO_C -DEFS -mandir -localedir -libdir -psdir -pdfdir -dvidir -htmldir -infodir -docdir -oldincludedir -includedir -localstatedir -sharedstatedir -sysconfdir -datadir -datarootdir -libexecdir -sbindir -bindir -program_transform_name -prefix -exec_prefix -PACKAGE_URL -PACKAGE_BUGREPORT -PACKAGE_STRING -PACKAGE_VERSION -PACKAGE_TARNAME -PACKAGE_NAME -PATH_SEPARATOR -SHELL' -ac_subst_files='' -ac_user_opts=' -enable_option_checking -with_mpi -with_mpi_include -with_mpi_lib -with_syscall_intercept -with_syscall_intercept_include -with_syscall_intercept_lib -with_kernelsrc -with_target -with_system_map -enable_dcfa -enable_memdump -enable_mcoverlayfs -enable_rusage -enable_perf -enable_qlmpi -with_uname_r -' - ac_precious_vars='build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -CPP' - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -ac_unrecognized_opts= -ac_unrecognized_sep= -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option - ac_prev= - continue - fi - - case $ac_option in - *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *=) ac_optarg= ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=\$ac_optarg ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=\$ac_optarg ;; - - -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=no ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) as_fn_error $? "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information" - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - case $ac_envvar in #( - '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; - esac - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error $? "missing argument to $ac_option" -fi - -if test -n "$ac_unrecognized_opts"; then - case $enable_option_checking in - no) ;; - fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; - esac -fi - -# Check all directory arguments for consistency. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir -do - eval ac_val=\$$ac_var - # Remove trailing slashes. - case $ac_val in - */ ) - ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` - eval $ac_var=\$ac_val;; - esac - # Be sure to have absolute directory names. - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error $? "working directory cannot be determined" -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error $? "pwd does not report name of working directory" - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$as_myself" || -$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_myself" : 'X\(//\)[^/]' \| \ - X"$as_myself" : 'X\(//\)$' \| \ - X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures mckernel 1.5.0 to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking ...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/mckernel] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_ACEOF - - cat <<\_ACEOF -_ACEOF -fi - -if test -n "$ac_init_help"; then - case $ac_init_help in - short | recursive ) echo "Configuration of mckernel 1.5.0:";; - esac - cat <<\_ACEOF - -Optional Features: - --disable-option-checking ignore unrecognized --enable/--with options - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-dcfa Enable DCFA modules - --enable-memdump enable dumping memory and analyzing a dump - --enable-mcoverlayfs enable mcoverlayfs implementation - --enable-rusage enable rusage implementation - --enable-perf enable perf_event implementation - --enable-qlmpi enable qlmpi implementation - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-mpi=PATH specify path where mpi include directory and lib - directory can be found - --with-mpi-include=PATH specify path where mpi include directory can be - found - --with-mpi-lib=PATH specify path where mpi lib directory can be found - --with-syscall_intercept=PATH - specify path where syscall_intercept include - directory and lib directory can be found - --with-syscall_intercept-include=PATH - specify path where syscall_intercept include - directory can be found - --with-syscall_intercept-lib=PATH - specify path where syscall_intercept lib directory - can be found - --with-kernelsrc=path Path to 'kernel src', default is - /lib/modules/uname_r/build - --with-target={attached-mic | builtin-mic | builtin-x86 | smp-x86} - target, default is attached-mic - --with-system_map=path Path to 'System.map file', default is - /boot/System.map-uname_r - --with-uname_r=uname_r Value of '`uname -r`' on the target platform, - default is local value - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if - you have headers in a nonstandard directory - CPP C preprocessor - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -Report bugs to the package provider. -_ACEOF -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || - { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || - continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive - else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -mckernel configure 1.5.0 -generated by GNU Autoconf 2.69 - -Copyright (C) 2012 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit -fi - -## ------------------------ ## -## Autoconf initialization. ## -## ------------------------ ## - -# ac_fn_c_try_compile LINENO -# -------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_compile - -# ac_fn_c_try_cpp LINENO -# ---------------------- -# Try to preprocess conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_cpp () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_cpp - -# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists, giving a warning if it cannot be compiled using -# the include files in INCLUDES and setting the cache variable VAR -# accordingly. -ac_fn_c_check_header_mongrel () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval \${$3+:} false; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 -$as_echo_n "checking $2 usability... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_header_compiler=yes -else - ac_header_compiler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 -$as_echo_n "checking $2 presence... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <$2> -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - ac_header_preproc=yes -else - ac_header_preproc=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( - yes:no: ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; - no:yes:* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; -esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=\$ac_header_compiler" -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_mongrel - -# ac_fn_c_try_run LINENO -# ---------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes -# that executables *can* be run. -ac_fn_c_try_run () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : - ac_retval=0 -else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=$ac_status -fi - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_run - -# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists and can be compiled using the include files in -# INCLUDES, setting the cache variable VAR accordingly. -ac_fn_c_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_compile - -# ac_fn_c_try_link LINENO -# ----------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_link () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - test -x conftest$ac_exeext - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_link -cat >config.log <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by mckernel $as_me 1.5.0, which was -generated by GNU Autoconf 2.69. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" - done -IFS=$as_save_IFS - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; - 2) - as_fn_append ac_configure_args1 " '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - as_fn_append ac_configure_args " '$ac_arg'" - ;; - esac - done -done -{ ac_configure_args0=; unset ac_configure_args0;} -{ ac_configure_args1=; unset ac_configure_args1;} - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - $as_echo "## ---------------- ## -## Cache variables. ## -## ---------------- ##" - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - $as_echo "## ----------------- ## -## Output variables. ## -## ----------------- ##" - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## -## File substitutions. ## -## ------------------- ##" - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - $as_echo "## ----------- ## -## confdefs.h. ## -## ----------- ##" - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -$as_echo "/* confdefs.h */" > confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_URL "$PACKAGE_URL" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE -if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in #(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac -elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site -else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site -fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" -do - test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5; } - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special files - # actually), so we avoid doing that. DJGPP emulates it as a regular file. - if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - - - - - - -IHK_VERSION=1.5.0 -MCKERNEL_VERSION=1.5.0 -DCFA_VERSION=DCFA_VERSION_m4 -IHK_RELEASE_DATE=2018-04-05 -MCKERNEL_RELEASE_DATE=2018-04-05 -DCFA_RELEASE_DATE=DCFA_RELEASE_DATE_m4 - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - -# The possible output files: -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { { ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi -if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -ac_exeext=$ac_cv_exeext - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } -if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -FILE *f = fopen ("conftest.out", "w"); - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -ac_clean_files="$ac_clean_files conftest.out" -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -if test "$cross_compiling" != yes; then - { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if { ac_try='./conftest$ac_cv_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if ${ac_cv_prog_CPP+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if ${ac_cv_path_GREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_GREP" || continue -# Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_GREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_GREP=$GREP -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if ${ac_cv_path_EGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_EGREP" || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_EGREP=$EGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "#define STDC_HEADERS 1" >>confdefs.h - -fi - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -ac_fn_c_check_header_mongrel "$LINENO" "numa.h" "ac_cv_header_numa_h" "$ac_includes_default" -if test "x$ac_cv_header_numa_h" = xyes; then : - numa_header_found=yes -fi - - -if test "x$numa_header_found" != "xyes"; then : - as_fn_error $? "Unable to find numa.h header file, missing numactl-devel?" "$LINENO" 5 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for numa_run_on_node in -lnuma" >&5 -$as_echo_n "checking for numa_run_on_node in -lnuma... " >&6; } -if ${ac_cv_lib_numa_numa_run_on_node+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lnuma $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char numa_run_on_node (); -int -main () -{ -return numa_run_on_node (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_numa_numa_run_on_node=yes -else - ac_cv_lib_numa_numa_run_on_node=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_numa_numa_run_on_node" >&5 -$as_echo "$ac_cv_lib_numa_numa_run_on_node" >&6; } -if test "x$ac_cv_lib_numa_numa_run_on_node" = xyes; then : - numa_lib_found=yes -fi - -if test "x$numa_lib_found" != "xyes"; then : - as_fn_error $? "Unable to find NUMA library, missing numactl-devel?" "$LINENO" 5 -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 -$as_echo_n "checking for fgrep... " >&6; } -if ${ac_cv_path_FGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 - then ac_cv_path_FGREP="$GREP -F" - else - if test -z "$FGREP"; then - ac_path_FGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in fgrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_FGREP" || continue -# Check for GNU ac_path_FGREP and select it if it is found. - # Check for GNU $ac_path_FGREP -case `"$ac_path_FGREP" --version 2>&1` in -*GNU*) - ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'FGREP' >> "conftest.nl" - "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_FGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_FGREP="$ac_path_FGREP" - ac_path_FGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_FGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_FGREP"; then - as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_FGREP=$FGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 -$as_echo "$ac_cv_path_FGREP" >&6; } - FGREP="$ac_cv_path_FGREP" - - - - -# Check whether --with-mpi was given. -if test "${with_mpi+set}" = set; then : - withval=$with_mpi; case "$withval" in #( - yes|no|'') : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --without-mpi=PATH expects a valid PATH" >&5 -$as_echo "$as_me: WARNING: --without-mpi=PATH expects a valid PATH" >&2;} - with_mpi="" ;; #( - *) : - ;; -esac -else - with_mpi= -fi - - -# Check whether --with-mpi-include was given. -if test "${with_mpi_include+set}" = set; then : - withval=$with_mpi_include; case "$withval" in #( - yes|no|'') : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --without-mpi-include=PATH expects a valid PATH" >&5 -$as_echo "$as_me: WARNING: --without-mpi-include=PATH expects a valid PATH" >&2;} - with_mpi_include="" ;; #( - *) : - ;; -esac -fi - - -# Check whether --with-mpi-lib was given. -if test "${with_mpi_lib+set}" = set; then : - withval=$with_mpi_lib; case "$withval" in #( - yes|no|'') : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --without-mpi-lib=PATH expects a valid PATH" >&5 -$as_echo "$as_me: WARNING: --without-mpi-lib=PATH expects a valid PATH" >&2;} - with_mpi_lib="" ;; #( - *) : - ;; -esac -fi - - - # The args have been sanitized into empty/non-empty values above. - # Now append -I/-L args to CPPFLAGS/LDFLAGS, with more specific options - # taking priority - - if test -n "${with_mpi_include}"; then : - - - if echo "$CPPFLAGS" | $FGREP -e "\<-I${with_mpi_include}\>" >/dev/null 2>&1; then : - echo "CPPFLAGS(='$CPPFLAGS') contains '-I${with_mpi_include}', not appending" >&5 -else - echo "CPPFLAGS(='$CPPFLAGS') does not contain '-I${with_mpi_include}', appending" >&5 - CPPFLAGS="$CPPFLAGS -I${with_mpi_include}" - -fi - -else - if test -n "${with_mpi}"; then : - - - if echo "$CPPFLAGS" | $FGREP -e "\<-I${with_mpi}/include\>" >/dev/null 2>&1; then : - echo "CPPFLAGS(='$CPPFLAGS') contains '-I${with_mpi}/include', not appending" >&5 -else - echo "CPPFLAGS(='$CPPFLAGS') does not contain '-I${with_mpi}/include', appending" >&5 - CPPFLAGS="$CPPFLAGS -I${with_mpi}/include" - -fi - -fi -fi - - if test -n "${with_mpi_lib}"; then : - - - if echo "$LDFLAGS" | $FGREP -e "\<-L${with_mpi_lib}\>" >/dev/null 2>&1; then : - echo "LDFLAGS(='$LDFLAGS') contains '-L${with_mpi_lib}', not appending" >&5 -else - echo "LDFLAGS(='$LDFLAGS') does not contain '-L${with_mpi_lib}', appending" >&5 - LDFLAGS="$LDFLAGS -L${with_mpi_lib}" - -fi - -else - if test -n "${with_mpi}"; then : - - - if echo "$LDFLAGS" | $FGREP -e "\<-L${with_mpi}/lib\>" >/dev/null 2>&1; then : - echo "LDFLAGS(='$LDFLAGS') contains '-L${with_mpi}/lib', not appending" >&5 -else - echo "LDFLAGS(='$LDFLAGS') does not contain '-L${with_mpi}/lib', appending" >&5 - LDFLAGS="$LDFLAGS -L${with_mpi}/lib" - -fi - - if test -d "${with_mpi}/lib64"; then : - - - if echo "$LDFLAGS" | $FGREP -e "\<-L${with_mpi}/lib64\>" >/dev/null 2>&1; then : - echo "LDFLAGS(='$LDFLAGS') contains '-L${with_mpi}/lib64', not appending" >&5 -else - echo "LDFLAGS(='$LDFLAGS') does not contain '-L${with_mpi}/lib64', appending" >&5 - LDFLAGS="$LDFLAGS -L${with_mpi}/lib64" - -fi - -fi - -fi - -fi - - - - -# Check whether --with-syscall_intercept was given. -if test "${with_syscall_intercept+set}" = set; then : - withval=$with_syscall_intercept; case "$withval" in #( - yes|no|'') : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --without-syscall_intercept=PATH expects a valid PATH" >&5 -$as_echo "$as_me: WARNING: --without-syscall_intercept=PATH expects a valid PATH" >&2;} - with_syscall_intercept="" ;; #( - *) : - ;; -esac -else - with_syscall_intercept= -fi - - -# Check whether --with-syscall_intercept-include was given. -if test "${with_syscall_intercept_include+set}" = set; then : - withval=$with_syscall_intercept_include; case "$withval" in #( - yes|no|'') : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --without-syscall_intercept-include=PATH expects a valid PATH" >&5 -$as_echo "$as_me: WARNING: --without-syscall_intercept-include=PATH expects a valid PATH" >&2;} - with_syscall_intercept_include="" ;; #( - *) : - ;; -esac -fi - - -# Check whether --with-syscall_intercept-lib was given. -if test "${with_syscall_intercept_lib+set}" = set; then : - withval=$with_syscall_intercept_lib; case "$withval" in #( - yes|no|'') : - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --without-syscall_intercept-lib=PATH expects a valid PATH" >&5 -$as_echo "$as_me: WARNING: --without-syscall_intercept-lib=PATH expects a valid PATH" >&2;} - with_syscall_intercept_lib="" ;; #( - *) : - ;; -esac -fi - - - # The args have been sanitized into empty/non-empty values above. - # Now append -I/-L args to CPPFLAGS/LDFLAGS, with more specific options - # taking priority - - if test -n "${with_syscall_intercept_include}"; then : - - - if echo "$CPPFLAGS_SYSCALL_INTERCEPT" | $FGREP -e "\<-I${with_syscall_intercept_include}\>" >/dev/null 2>&1; then : - echo "CPPFLAGS_SYSCALL_INTERCEPT(='$CPPFLAGS_SYSCALL_INTERCEPT') contains '-I${with_syscall_intercept_include}', not appending" >&5 -else - echo "CPPFLAGS_SYSCALL_INTERCEPT(='$CPPFLAGS_SYSCALL_INTERCEPT') does not contain '-I${with_syscall_intercept_include}', appending" >&5 - CPPFLAGS_SYSCALL_INTERCEPT="$CPPFLAGS_SYSCALL_INTERCEPT -I${with_syscall_intercept_include}" - -fi - -else - if test -n "${with_syscall_intercept}"; then : - - - if echo "$CPPFLAGS_SYSCALL_INTERCEPT" | $FGREP -e "\<-I${with_syscall_intercept}/include\>" >/dev/null 2>&1; then : - echo "CPPFLAGS_SYSCALL_INTERCEPT(='$CPPFLAGS_SYSCALL_INTERCEPT') contains '-I${with_syscall_intercept}/include', not appending" >&5 -else - echo "CPPFLAGS_SYSCALL_INTERCEPT(='$CPPFLAGS_SYSCALL_INTERCEPT') does not contain '-I${with_syscall_intercept}/include', appending" >&5 - CPPFLAGS_SYSCALL_INTERCEPT="$CPPFLAGS_SYSCALL_INTERCEPT -I${with_syscall_intercept}/include" - -fi - -fi -fi - - if test -n "${with_syscall_intercept_lib}"; then : - - - if echo "$LDFLAGS_SYSCALL_INTERCEPT" | $FGREP -e "\<-L${with_syscall_intercept_lib} -Wl,-rpath,${with_syscall_intercept_lib}\>" >/dev/null 2>&1; then : - echo "LDFLAGS_SYSCALL_INTERCEPT(='$LDFLAGS_SYSCALL_INTERCEPT') contains '-L${with_syscall_intercept_lib} -Wl,-rpath,${with_syscall_intercept_lib}', not appending" >&5 -else - echo "LDFLAGS_SYSCALL_INTERCEPT(='$LDFLAGS_SYSCALL_INTERCEPT') does not contain '-L${with_syscall_intercept_lib} -Wl,-rpath,${with_syscall_intercept_lib}', appending" >&5 - LDFLAGS_SYSCALL_INTERCEPT="$LDFLAGS_SYSCALL_INTERCEPT -L${with_syscall_intercept_lib} -Wl,-rpath,${with_syscall_intercept_lib}" - -fi - -else - if test -n "${with_syscall_intercept}"; then : - - - if echo "$LDFLAGS_SYSCALL_INTERCEPT" | $FGREP -e "\<-L${with_syscall_intercept}/lib -Wl,-rpath,${with_syscall_intercept}/lib\>" >/dev/null 2>&1; then : - echo "LDFLAGS_SYSCALL_INTERCEPT(='$LDFLAGS_SYSCALL_INTERCEPT') contains '-L${with_syscall_intercept}/lib -Wl,-rpath,${with_syscall_intercept}/lib', not appending" >&5 -else - echo "LDFLAGS_SYSCALL_INTERCEPT(='$LDFLAGS_SYSCALL_INTERCEPT') does not contain '-L${with_syscall_intercept}/lib -Wl,-rpath,${with_syscall_intercept}/lib', appending" >&5 - LDFLAGS_SYSCALL_INTERCEPT="$LDFLAGS_SYSCALL_INTERCEPT -L${with_syscall_intercept}/lib -Wl,-rpath,${with_syscall_intercept}/lib" - -fi - - if test -d "${with_syscall_intercept}/lib64"; then : - - - if echo "$LDFLAGS_SYSCALL_INTERCEPT" | $FGREP -e "\<-L${with_syscall_intercept}/lib64 -Wl,-rpath,${with_syscall_intercept}/lib64\>" >/dev/null 2>&1; then : - echo "LDFLAGS_SYSCALL_INTERCEPT(='$LDFLAGS_SYSCALL_INTERCEPT') contains '-L${with_syscall_intercept}/lib64 -Wl,-rpath,${with_syscall_intercept}/lib64', not appending" >&5 -else - echo "LDFLAGS_SYSCALL_INTERCEPT(='$LDFLAGS_SYSCALL_INTERCEPT') does not contain '-L${with_syscall_intercept}/lib64 -Wl,-rpath,${with_syscall_intercept}/lib64', appending" >&5 - LDFLAGS_SYSCALL_INTERCEPT="$LDFLAGS_SYSCALL_INTERCEPT -L${with_syscall_intercept}/lib64 -Wl,-rpath,${with_syscall_intercept}/lib64" - -fi - -fi - -fi - -fi - - if test -n "${with_syscall_intercept}" || test -n "${with_syscall_intercept_include}" || test -n "${with_syscall_intercept_lib}"; then : - WITH_SYSCALL_INTERCEPT=yes -else - WITH_SYSCALL_INTERCEPT=no -fi - - -if test "x$WITH_SYSCALL_INTERCEPT" == "xno" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for syscall_no_intercept in -lsyscall_intercept" >&5 -$as_echo_n "checking for syscall_no_intercept in -lsyscall_intercept... " >&6; } -if ${ac_cv_lib_syscall_intercept_syscall_no_intercept+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsyscall_intercept -lcapstone -ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char syscall_no_intercept (); -int -main () -{ -return syscall_no_intercept (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_syscall_intercept_syscall_no_intercept=yes -else - ac_cv_lib_syscall_intercept_syscall_no_intercept=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_syscall_intercept_syscall_no_intercept" >&5 -$as_echo "$ac_cv_lib_syscall_intercept_syscall_no_intercept" >&6; } -if test "x$ac_cv_lib_syscall_intercept_syscall_no_intercept" = xyes; then : - syscall_intercept_lib_found=yes -else - syscall_intercept_lib_found=no -fi - - if test "x$syscall_intercept_lib_found" != "xyes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: libsyscall_intercept.so not found" >&5 -$as_echo "$as_me: libsyscall_intercept.so not found" >&6;} -fi - - ac_fn_c_check_header_mongrel "$LINENO" "libsyscall_intercept_hook_point.h" "ac_cv_header_libsyscall_intercept_hook_point_h" "$ac_includes_default" -if test "x$ac_cv_header_libsyscall_intercept_hook_point_h" = xyes; then : - syscall_intercept_header_found=yes -else - syscall_intercept_header_found=no -fi - - - if test "x$syscall_intercept_header_found" != "xyes"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: libsyscall_intercept_hook_point.h not found" >&5 -$as_echo "$as_me: libsyscall_intercept_hook_point.h not found" >&6;} -fi - - if test "x$syscall_intercept_lib_found" == "xyes" && test "x$syscall_intercept_header_found" == "xyes"; then : - WITH_SYSCALL_INTERCEPT=yes -else - WITH_SYSCALL_INTERCEPT=no -fi -fi - - - -# Check whether --with-kernelsrc was given. -if test "${with_kernelsrc+set}" = set; then : - withval=$with_kernelsrc; WITH_KERNELSRC=$withval -else - WITH_KERNELSRC=yes -fi - - - -# Check whether --with-target was given. -if test "${with_target+set}" = set; then : - withval=$with_target; WITH_TARGET=$withval -else - WITH_TARGET=yes -fi - - - -# Check whether --with-system_map was given. -if test "${with_system_map+set}" = set; then : - withval=$with_system_map; WITH_SYSTEM_MAP=$withval -else - WITH_SYSTEM_MAP=yes -fi - - -# Check whether --enable-dcfa was given. -if test "${enable_dcfa+set}" = set; then : - enableval=$enable_dcfa; -else - enable_dcfa=no -fi - - -# Check whether --enable-memdump was given. -if test "${enable_memdump+set}" = set; then : - enableval=$enable_memdump; ENABLE_MEMDUMP=$enableval -else - ENABLE_MEMDUMP=default -fi - - -# Check whether --enable-mcoverlayfs was given. -if test "${enable_mcoverlayfs+set}" = set; then : - enableval=$enable_mcoverlayfs; ENABLE_MCOVERLAYFS=$enableval -else - ENABLE_MCOVERLAYFS=no -fi - - -# Check whether --enable-rusage was given. -if test "${enable_rusage+set}" = set; then : - enableval=$enable_rusage; ENABLE_RUSAGE=$enableval -else - ENABLE_RUSAGE=yes -fi - - -# Check whether --enable-perf was given. -if test "${enable_perf+set}" = set; then : - enableval=$enable_perf; ENABLE_PERF=$enableval -else - ENABLE_PERF=yes -fi - - -# Check whether --enable-qlmpi was given. -if test "${enable_qlmpi+set}" = set; then : - enableval=$enable_qlmpi; ENABLE_QLMPI=$enableval -else - ENABLE_QLMPI=no -fi - - - -# Check whether --with-uname_r was given. -if test "${with_uname_r+set}" = set; then : - withval=$with_uname_r; WITH_UNAME_R=$withval -else - WITH_UNAME_R=yes -fi - - -case "X$WITH_UNAME_R" in - Xyes | Xno | X) - WITH_UNAME_R="`uname -r`" - ;; -esac - -case "X$WITH_KERNELSRC" in - Xyes | Xno | X) - WITH_KERNELSRC="/lib/modules/`uname -r`/build" - ;; - X/*) - ;; - *) - WITH_KERNELSRC="`pwd`/$WITH_KERNELSRC" - ;; -esac - -if test "X$WITH_TARGET" = Xyes -o "X$WITH_TARGET" = Xno; then - WITH_TARGET=attached-mic -fi - -test "x$prefix" = xNONE && prefix="$ac_default_prefix" - -cat >>confdefs.h <<_ACEOF -#define ROOTFSDIR "$prefix/rootfs" -_ACEOF - - -case $WITH_TARGET in -# POSTK_DEBUG_ARCH_DEP_30, Expansion of the branch. -# attached-mic|builtin-x86|smp-x86) -# ARCH=`uname -m` -# AC_PROG_CC -# XCC=$CC -# ;; - attached-mic|builtin-x86|smp-*) - case $WITH_TARGET in - attached-mic|builtin-x86|smp-x86) - ARCH=`uname -m` - ;; - smp-arm64) - ARCH=arm64 - ;; - esac - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - XCC=$CC - CFLAGS="$CFLAGS -ffreestanding -fno-tree-loop-distribute-patterns" - ;; - builtin-mic) - ARCH=k1om - # Extract the first word of "x86_64-$ARCH-linux-gcc", so it can be a program name with args. -set dummy x86_64-$ARCH-linux-gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_XCC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$XCC"; then - ac_cv_prog_XCC="$XCC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_XCC="x86_64-$ARCH-linux-gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_prog_XCC" && ac_cv_prog_XCC="no" -fi -fi -XCC=$ac_cv_prog_XCC -if test -n "$XCC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XCC" >&5 -$as_echo "$XCC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - CC=$XCC - ;; - smp-arm64) - ARCH=arm64 - # Extract the first word of "${CROSS_COMPILE}gcc", so it can be a program name with args. -set dummy ${CROSS_COMPILE}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_XCC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$XCC"; then - ac_cv_prog_XCC="$XCC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_XCC="${CROSS_COMPILE}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_prog_XCC" && ac_cv_prog_XCC="no" -fi -fi -XCC=$ac_cv_prog_XCC -if test -n "$XCC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XCC" >&5 -$as_echo "$XCC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - CC=$XCC - ;; - *) - as_fn_error $? "target $WITH_TARGET is unknwon" "$LINENO" 5 - ;; -esac - -case $WITH_TARGET in - attached-mic) - if test "X$KERNDIR" = X; then - KERNDIR="$prefix/attached/kernel" - fi - if test "X$BINDIR" = X; then - BINDIR="$prefix/bin" - fi - if test "X$SBINDIR" = X; then - SBINDIR="$prefix/sbin" - fi - if test "X$KMODDIR" = X; then - KMODDIR="$prefix/kmod" - fi - if test "X$MANDIR" = X; then - MANDIR="$prefix/share/man" - fi - ;; - builtin-mic) - if test "X$KERNDIR" = X; then - KERNDIR="$prefix/attached/kernel" - fi - if test "X$BINDIR" = X; then - BINDIR="$prefix/attached/bin" - fi - if test "X$SBINDIR" = X; then - SBINDIR="$prefix/attached/sbin" - fi - if test "X$KMODDIR" = X; then - KMODDIR="$prefix/attached/kmod" - fi - if test "X$MANDIR" = X; then - MANDIR="$prefix/share/man" - fi - ;; - builtin-x86) - if test "X$KERNDIR" = X; then - KERNDIR="$prefix/attached/kernel" - fi - if test "X$BINDIR" = X; then - BINDIR="$prefix/bin" - fi - if test "X$SBINDIR" = X; then - SBINDIR="$prefix/sbin" - fi - if test "X$KMODDIR" = X; then - KMODDIR="$prefix/kmod" - fi - if test "X$MANDIR" = X; then - MANDIR="$prefix/share/man" - fi - ;; - smp-x86) - if test "X$KERNDIR" = X; then - KERNDIR="$prefix/smp-x86/kernel" - fi - if test "X$BINDIR" = X; then - BINDIR="$prefix/bin" - fi - if test "X$SBINDIR" = X; then - SBINDIR="$prefix/sbin" - fi - if test "X$MCKERNEL_INCDIR" = X; then - MCKERNEL_INCDIR="$prefix/include" - fi - if test "X$MCKERNEL_LIBDIR" = X; then - MCKERNEL_LIBDIR="$prefix/lib" - fi - if test "X$INCDIR" = X; then - INCDIR="$prefix/include" - fi - if test "X$ETCDIR" = X; then - ETCDIR="$prefix/etc" - fi - if test "X$INCLUDEDIR" = X; then - INCLUDEDIR="$prefix/include" - fi - if test "X$KMODDIR" = X; then - KMODDIR="$prefix/kmod" - fi - if test "X$MANDIR" = X; then - MANDIR="$prefix/share/man" - fi - ;; - smp-arm64) - if test "X$KERNDIR" = X; then - KERNDIR="$prefix/smp-arm64/kernel" - fi - if test "X$BINDIR" = X; then - BINDIR="$prefix/bin" - fi - if test "X$SBINDIR" = X; then - SBINDIR="$prefix/sbin" - fi - if test "X$MCKERNEL_INCDIR" = X; then - MCKERNEL_INCDIR="$prefix/include" - fi - if test "X$MCKERNEL_LIBDIR" = X; then - MCKERNEL_LIBDIR="$prefix/lib" - fi - if test "X$INCDIR" = X; then - INCDIR="$prefix/include" - fi - if test "X$ETCDIR" = X; then - ETCDIR="$prefix/etc" - fi - if test "X$INCLUDEDIR" = X; then - INCLUDEDIR="$prefix/include" - fi - if test "X$KMODDIR" = X; then - KMODDIR="$prefix/kmod" - fi - if test "X$MANDIR" = X; then - MANDIR="$prefix/share/man" - fi - ;; - *) - as_fn_error $? "target $WITH_TARGET is unknwon" "$LINENO" 5 - ;; -esac - -KDIR="$WITH_KERNELSRC" -UNAME_R="$WITH_UNAME_R" -TARGET="$WITH_TARGET" - -case $ENABLE_MEMDUMP in - yes|no|auto) - ;; - default) -# POSTK_DEBUG_ARCH_DEP_30, Expansion of the branch. -# if test "x$WITH_TARGET" = "xsmp-x86" ; then - if test "x$WITH_TARGET" = "xsmp-x86" -o "x$WITH_TARGET" = "xsmp-arm64" ; then - ENABLE_MEMDUMP=auto - else - ENABLE_MEMDUMP=no - fi - ;; - *) - as_fn_error $? "unknown memdump argument: $ENABLE_MEMDUMP" "$LINENO" 5 - ;; -esac - -if test "x$ENABLE_MEMDUMP" != "xno" ; then - enableval=yes -# POSTK_DEBUG_ARCH_DEP_32, AC_CHECK_LIB for libiberty - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for hex_init in -liberty" >&5 -$as_echo_n "checking for hex_init in -liberty... " >&6; } -if ${ac_cv_lib_iberty_hex_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-liberty $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char hex_init (); -int -main () -{ -return hex_init (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_iberty_hex_init=yes -else - ac_cv_lib_iberty_hex_init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_iberty_hex_init" >&5 -$as_echo "$ac_cv_lib_iberty_hex_init" >&6; } -if test "x$ac_cv_lib_iberty_hex_init" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBIBERTY 1 -_ACEOF - - LIBS="-liberty $LIBS" - -else - enableval=no -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bfd_init in -lbfd" >&5 -$as_echo_n "checking for bfd_init in -lbfd... " >&6; } -if ${ac_cv_lib_bfd_bfd_init+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lbfd $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char bfd_init (); -int -main () -{ -return bfd_init (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_bfd_bfd_init=yes -else - ac_cv_lib_bfd_bfd_init=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bfd_bfd_init" >&5 -$as_echo "$ac_cv_lib_bfd_bfd_init" >&6; } -if test "x$ac_cv_lib_bfd_bfd_init" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBBFD 1 -_ACEOF - - LIBS="-lbfd $LIBS" - -else - enableval=no -fi - - ac_fn_c_check_header_mongrel "$LINENO" "bfd.h" "ac_cv_header_bfd_h" "$ac_includes_default" -if test "x$ac_cv_header_bfd_h" = xyes; then : - -else - enableval=no -fi - - - - if test "x$ENABLE_MEMDUMP" = "xyes" -a "x$enableval" = "xno" ; then - as_fn_error $? "memdump feature needs bfd.h and libbfd a.k.a bunutils-devel" "$LINENO" 5 - fi - ENABLE_MEMDUMP=$enableval -fi - -if test "x$ENABLE_MEMDUMP" = "xyes" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: memdump feature is enabled" >&5 -$as_echo "$as_me: memdump feature is enabled" >&6;} - -$as_echo "#define ENABLE_MEMDUMP 1" >>confdefs.h - - uncomment_if_ENABLE_MEMDUMP='' -else - { $as_echo "$as_me:${as_lineno-$LINENO}: memdump feature is disabled" >&5 -$as_echo "$as_me: memdump feature is disabled" >&6;} - uncomment_if_ENABLE_MEMDUMP='#' -fi - -if test "x$ENABLE_MCOVERLAYFS" = "xyes" ; then - -$as_echo "#define ENABLE_MCOVERLAYFS 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: mcoverlayfs is enabled" >&5 -$as_echo "$as_me: mcoverlayfs is enabled" >&6;} - - IFS=. read LINUX_VERSION_MAJOR LINUX_VERSION_MINOR LINUX_VERSION_PATCH _ <= 262144 && LINUX_VERSION_CODE < 262400))) - MCOVERLAYFS_MODULE=linux-4.0.9;; - # 4.6.0-4.7.0 - $((LINUX_VERSION_CODE >= 263680 && LINUX_VERSION_CODE < 263936))) - MCOVERLAYFS_MODULE=linux-4.6.7;; - # 4.18.0-4.20.0 - $((LINUX_VERSION_CODE >= 266752 && LINUX_VERSION_CODE < 267264))) - MCOVERLAYFS_MODULE=linux-4.18.14;; - *) - as_fn_error $? "Your kernel version has no known mcoverlayfs module" "$LINENO" 5;; - esac - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: mcoverlayfs is disabled. You will not be able to run anything." >&5 -$as_echo "$as_me: WARNING: mcoverlayfs is disabled. You will not be able to run anything." >&2;} -fi - -if test "x$ENABLE_QLMPI" = "xyes" ; then - -$as_echo "#define ENABLE_QLMPI 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: qlmpi is enabled" >&5 -$as_echo "$as_me: qlmpi is enabled" >&6;} -else - { $as_echo "$as_me:${as_lineno-$LINENO}: qlmpi is disabled" >&5 -$as_echo "$as_me: qlmpi is disabled" >&6;} -fi - -case $ENABLE_RUSAGE in - yes|no) - ;; - default) - ENABLE_RUSAGE=yes - ;; - *) - as_fn_error $? "unknown rusage argument: $ENABLE_RUSAGE" "$LINENO" 5 - ;; -esac - -if test "x$ENABLE_RUSAGE" = "xyes" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: rusage is enabled" >&5 -$as_echo "$as_me: rusage is enabled" >&6;} - -$as_echo "#define ENABLE_RUSAGE 1" >>confdefs.h - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: rusage is disabled" >&5 -$as_echo "$as_me: rusage is disabled" >&6;} -fi - -if test "x$ENABLE_PERF" = "xyes" ; then - -$as_echo "#define ENABLE_PERF 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: perf is enabled" >&5 -$as_echo "$as_me: perf is enabled" >&6;} -else - { $as_echo "$as_me:${as_lineno-$LINENO}: perf is disabled" >&5 -$as_echo "$as_me: perf is disabled" >&6;} -fi - -if test "x$WITH_SYSCALL_INTERCEPT" = "xyes" ; then - -$as_echo "#define WITH_SYSCALL_INTERCEPT 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: syscall_intercept library is linked" >&5 -$as_echo "$as_me: syscall_intercept library is linked" >&6;} -else - { $as_echo "$as_me:${as_lineno-$LINENO}: syscall_intercept library isn't linked" >&5 -$as_echo "$as_me: syscall_intercept library isn't linked" >&6;} -fi - -if test "x$MCKERNEL_INCDIR" != "x" ; then - -cat >>confdefs.h <<_ACEOF -#define MCKERNEL_INCDIR "$MCKERNEL_INCDIR" -_ACEOF - -fi - -if test "x$MCKERNEL_LIBDIR" != "x" ; then - -cat >>confdefs.h <<_ACEOF -#define MCKERNEL_LIBDIR "$MCKERNEL_LIBDIR" -_ACEOF - -fi - - -cat >>confdefs.h <<_ACEOF -#define BINDIR "$BINDIR" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define SBINDIR "$SBINDIR" -_ACEOF - - - -cat >>confdefs.h <<_ACEOF -#define IHK_VERSION "$IHK_VERSION" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define MCKERNEL_VERSION "$MCKERNEL_VERSION" -_ACEOF - - -ABS_SRCDIR=$( cd $( dirname $0 ); pwd ) -IHK_ABS_SRCDIR=${ABS_SRCDIR}/../ihk -BUILDID=$( git --git-dir=$IHK_ABS_SRCDIR/.git rev-parse --short HEAD 2>/dev/null || echo $IHK_VERSION ) -{ $as_echo "$as_me:${as_lineno-$LINENO}: BUILDID=$BUILDID" >&5 -$as_echo "$as_me: BUILDID=$BUILDID" >&6;} -if test "x$BUILDID" != "x" ; then - -cat >>confdefs.h <<_ACEOF -#define BUILDID "$BUILDID" -_ACEOF - -fi - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ac_config_headers="$ac_config_headers config.h" - -# POSTK_DEBUG_ARCH_DEP_37 -# AC_CONFIG_FILES arch dependfiles separate -ac_config_files="$ac_config_files Makefile executer/user/Makefile executer/user/mcexec.1:executer/user/mcexec.1in executer/user/vmcore2mckdump executer/user/arch/$ARCH/Makefile executer/kernel/mcctrl/Makefile executer/kernel/mcctrl/arch/$ARCH/Makefile executer/kernel/mcoverlayfs/Makefile executer/kernel/mcoverlayfs/linux-3.10.0-327.36.1.el7/Makefile executer/kernel/mcoverlayfs/linux-4.0.9/Makefile executer/kernel/mcoverlayfs/linux-4.6.7/Makefile executer/kernel/mcoverlayfs/linux-4.18.14/Makefile executer/include/qlmpilib.h kernel/Makefile kernel/Makefile.build kernel/include/swapfmt.h arch/x86_64/tools/mcreboot-attached-mic.sh arch/x86_64/tools/mcshutdown-attached-mic.sh arch/x86_64/tools/mcreboot-builtin-x86.sh arch/x86_64/tools/mcreboot-smp-x86.sh arch/x86_64/tools/mcstop+release-smp-x86.sh arch/x86_64/tools/mcoverlay-destroy-smp-x86.sh arch/x86_64/tools/mcoverlay-create-smp-x86.sh arch/x86_64/tools/eclair-dump-backtrace.exp arch/x86_64/tools/mcshutdown-builtin-x86.sh arch/x86_64/tools/mcreboot.1:arch/x86_64/tools/mcreboot.1in arch/x86_64/tools/irqbalance_mck.service arch/x86_64/tools/irqbalance_mck.in tools/mcstat/mcstat.1:tools/mcstat/mcstat.1in tools/mcstat/Makefile" - - -if test -e "${ABS_SRCDIR}/test"; then -ac_config_files="$ac_config_files mck_test_config.sample:test/mck_test_config.sample.in" - -fi - -if test "$TARGET" = "smp-x86"; then -ac_config_files="$ac_config_files arch/x86_64/kernel/Makefile.arch" - -fi - -if test "$TARGET" = "smp-arm64"; then -ac_config_files="$ac_config_files kernel/config/config.smp-arm64 arch/arm64/kernel/vdso/Makefile arch/arm64/kernel/Makefile.arch" - -fi - -if test "x$enable_dcfa" = xyes; then : - - ac_config_files="$ac_config_files kernel/Makefile.dcfa" - -fi - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes: double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \. - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - if test ! -f "$cache_file" || test -h "$cache_file"; then - cat confcache >"$cache_file" - else - case $cache_file in #( - */* | ?:*) - mv -f confcache "$cache_file"$$ && - mv -f "$cache_file"$$ "$cache_file" ;; #( - *) - mv -f confcache "$cache_file" ;; - esac - fi - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -DEFS=-DHAVE_CONFIG_H - -ac_libobjs= -ac_ltlibobjs= -U= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" - as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - - -: "${CONFIG_STATUS=./config.status}" -ac_write_fail=0 -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} -as_write_fail=0 -cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false - -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -exec 6>&1 -## ----------------------------------- ## -## Main body of $CONFIG_STATUS script. ## -## ----------------------------------- ## -_ASEOF -test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# Save the log message, to keep $0 and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by mckernel $as_me 1.5.0, which was -generated by GNU Autoconf 2.69. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -case $ac_config_files in *" -"*) set x $ac_config_files; shift; ac_config_files=$*;; -esac - -case $ac_config_headers in *" -"*) set x $ac_config_headers; shift; ac_config_headers=$*;; -esac - - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# Files that config.status was made for. -config_files="$ac_config_files" -config_headers="$ac_config_headers" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions -from templates according to the current configuration. Unless the files -and actions are specified as TAGs, all are instantiated by default. - -Usage: $0 [OPTION]... [TAG]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - --config print configuration, then exit - -q, --quiet, --silent - do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE - -Configuration files: -$config_files - -Configuration headers: -$config_headers - -Report bugs to the package provider." - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" -ac_cs_version="\\ -mckernel config.status 1.5.0 -configured by $0, generated by GNU Autoconf 2.69, - with options \\"\$ac_cs_config\\" - -Copyright (C) 2012 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -test -n "\$AWK" || AWK=awk -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# The default lists apply if the user does not specify any file. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=?*) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` - ac_shift=: - ;; - --*=) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg= - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; - --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - '') as_fn_error $? "missing file argument" ;; - esac - as_fn_append CONFIG_FILES " '$ac_optarg'" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - as_fn_append CONFIG_HEADERS " '$ac_optarg'" - ac_need_defaults=false;; - --he | --h) - # Conflict between --help and --header - as_fn_error $? "ambiguous option: \`$1' -Try \`$0 --help' for more information.";; - --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) as_fn_error $? "unrecognized option: \`$1' -Try \`$0 --help' for more information." ;; - - *) as_fn_append ac_config_targets " $1" - ac_need_defaults=false ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -if \$ac_cs_recheck; then - set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX - $as_echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "executer/user/Makefile") CONFIG_FILES="$CONFIG_FILES executer/user/Makefile" ;; - "executer/user/mcexec.1") CONFIG_FILES="$CONFIG_FILES executer/user/mcexec.1:executer/user/mcexec.1in" ;; - "executer/user/vmcore2mckdump") CONFIG_FILES="$CONFIG_FILES executer/user/vmcore2mckdump" ;; - "executer/user/arch/$ARCH/Makefile") CONFIG_FILES="$CONFIG_FILES executer/user/arch/$ARCH/Makefile" ;; - "executer/kernel/mcctrl/Makefile") CONFIG_FILES="$CONFIG_FILES executer/kernel/mcctrl/Makefile" ;; - "executer/kernel/mcctrl/arch/$ARCH/Makefile") CONFIG_FILES="$CONFIG_FILES executer/kernel/mcctrl/arch/$ARCH/Makefile" ;; - "executer/kernel/mcoverlayfs/Makefile") CONFIG_FILES="$CONFIG_FILES executer/kernel/mcoverlayfs/Makefile" ;; - "executer/kernel/mcoverlayfs/linux-3.10.0-327.36.1.el7/Makefile") CONFIG_FILES="$CONFIG_FILES executer/kernel/mcoverlayfs/linux-3.10.0-327.36.1.el7/Makefile" ;; - "executer/kernel/mcoverlayfs/linux-4.0.9/Makefile") CONFIG_FILES="$CONFIG_FILES executer/kernel/mcoverlayfs/linux-4.0.9/Makefile" ;; - "executer/kernel/mcoverlayfs/linux-4.6.7/Makefile") CONFIG_FILES="$CONFIG_FILES executer/kernel/mcoverlayfs/linux-4.6.7/Makefile" ;; - "executer/kernel/mcoverlayfs/linux-4.18.14/Makefile") CONFIG_FILES="$CONFIG_FILES executer/kernel/mcoverlayfs/linux-4.18.14/Makefile" ;; - "executer/include/qlmpilib.h") CONFIG_FILES="$CONFIG_FILES executer/include/qlmpilib.h" ;; - "kernel/Makefile") CONFIG_FILES="$CONFIG_FILES kernel/Makefile" ;; - "kernel/Makefile.build") CONFIG_FILES="$CONFIG_FILES kernel/Makefile.build" ;; - "kernel/include/swapfmt.h") CONFIG_FILES="$CONFIG_FILES kernel/include/swapfmt.h" ;; - "arch/x86_64/tools/mcreboot-attached-mic.sh") CONFIG_FILES="$CONFIG_FILES arch/x86_64/tools/mcreboot-attached-mic.sh" ;; - "arch/x86_64/tools/mcshutdown-attached-mic.sh") CONFIG_FILES="$CONFIG_FILES arch/x86_64/tools/mcshutdown-attached-mic.sh" ;; - "arch/x86_64/tools/mcreboot-builtin-x86.sh") CONFIG_FILES="$CONFIG_FILES arch/x86_64/tools/mcreboot-builtin-x86.sh" ;; - "arch/x86_64/tools/mcreboot-smp-x86.sh") CONFIG_FILES="$CONFIG_FILES arch/x86_64/tools/mcreboot-smp-x86.sh" ;; - "arch/x86_64/tools/mcstop+release-smp-x86.sh") CONFIG_FILES="$CONFIG_FILES arch/x86_64/tools/mcstop+release-smp-x86.sh" ;; - "arch/x86_64/tools/mcoverlay-destroy-smp-x86.sh") CONFIG_FILES="$CONFIG_FILES arch/x86_64/tools/mcoverlay-destroy-smp-x86.sh" ;; - "arch/x86_64/tools/mcoverlay-create-smp-x86.sh") CONFIG_FILES="$CONFIG_FILES arch/x86_64/tools/mcoverlay-create-smp-x86.sh" ;; - "arch/x86_64/tools/eclair-dump-backtrace.exp") CONFIG_FILES="$CONFIG_FILES arch/x86_64/tools/eclair-dump-backtrace.exp" ;; - "arch/x86_64/tools/mcshutdown-builtin-x86.sh") CONFIG_FILES="$CONFIG_FILES arch/x86_64/tools/mcshutdown-builtin-x86.sh" ;; - "arch/x86_64/tools/mcreboot.1") CONFIG_FILES="$CONFIG_FILES arch/x86_64/tools/mcreboot.1:arch/x86_64/tools/mcreboot.1in" ;; - "arch/x86_64/tools/irqbalance_mck.service") CONFIG_FILES="$CONFIG_FILES arch/x86_64/tools/irqbalance_mck.service" ;; - "arch/x86_64/tools/irqbalance_mck.in") CONFIG_FILES="$CONFIG_FILES arch/x86_64/tools/irqbalance_mck.in" ;; - "tools/mcstat/mcstat.1") CONFIG_FILES="$CONFIG_FILES tools/mcstat/mcstat.1:tools/mcstat/mcstat.1in" ;; - "tools/mcstat/Makefile") CONFIG_FILES="$CONFIG_FILES tools/mcstat/Makefile" ;; - "mck_test_config.sample") CONFIG_FILES="$CONFIG_FILES mck_test_config.sample:test/mck_test_config.sample.in" ;; - "arch/x86_64/kernel/Makefile.arch") CONFIG_FILES="$CONFIG_FILES arch/x86_64/kernel/Makefile.arch" ;; - "kernel/config/config.smp-arm64") CONFIG_FILES="$CONFIG_FILES kernel/config/config.smp-arm64" ;; - "arch/arm64/kernel/vdso/Makefile") CONFIG_FILES="$CONFIG_FILES arch/arm64/kernel/vdso/Makefile" ;; - "arch/arm64/kernel/Makefile.arch") CONFIG_FILES="$CONFIG_FILES arch/arm64/kernel/Makefile.arch" ;; - "kernel/Makefile.dcfa") CONFIG_FILES="$CONFIG_FILES kernel/Makefile.dcfa" ;; - - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; - esac -done - - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= ac_tmp= - trap 'exit_status=$? - : "${ac_tmp:=$tmp}" - { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status -' 0 - trap 'as_fn_exit 1' 1 2 13 15 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 -ac_tmp=$tmp - -# Set up the scripts for CONFIG_FILES section. -# No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. -if test -n "$CONFIG_FILES"; then - - -ac_cr=`echo X | tr X '\015'` -# On cygwin, bash can eat \r inside `` if the user requested igncr. -# But we know of no other shell where ac_cr would be empty at this -# point, so we can use a bashism as a fallback. -if test "x$ac_cr" = x; then - eval ac_cr=\$\'\\r\' -fi -ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` -if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\\r' -else - ac_cs_awk_cr=$ac_cr -fi - -echo 'BEGIN {' >"$ac_tmp/subs1.awk" && -_ACEOF - - -{ - echo "cat >conf$$subs.awk <<_ACEOF" && - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && - echo "_ACEOF" -} >conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - . ./conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - - ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` - if test $ac_delim_n = $ac_delim_num; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -rm -f conf$$subs.sh - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && -_ACEOF -sed -n ' -h -s/^/S["/; s/!.*/"]=/ -p -g -s/^[^!]*!// -:repl -t repl -s/'"$ac_delim"'$// -t delim -:nl -h -s/\(.\{148\}\)..*/\1/ -t more1 -s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ -p -n -b repl -:more1 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t nl -:delim -h -s/\(.\{148\}\)..*/\1/ -t more2 -s/["\\]/\\&/g; s/^/"/; s/$/"/ -p -b -:more2 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t delim -' >$CONFIG_STATUS || ac_write_fail=1 -rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACAWK -cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && - for (key in S) S_is_set[key] = 1 - FS = "" - -} -{ - line = $ 0 - nfields = split(line, field, "@") - substed = 0 - len = length(field[1]) - for (i = 2; i < nfields; i++) { - key = field[i] - keylen = length(key) - if (S_is_set[key]) { - value = S[key] - line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) - len += length(value) + length(field[++i]) - substed = 1 - } else - len += 1 + keylen - } - - print line -} - -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then - sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" -else - cat -fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ - || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 -_ACEOF - -# VPATH may cause trouble with some makes, so we remove sole $(srcdir), -# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ -h -s/// -s/^/:/ -s/[ ]*$/:/ -s/:\$(srcdir):/:/g -s/:\${srcdir}:/:/g -s/:@srcdir@:/:/g -s/^:*// -s/:*$// -x -s/\(=[ ]*\).*/\1/ -G -s/\n// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -fi # test -n "$CONFIG_FILES" - -# Set up the scripts for CONFIG_HEADERS section. -# No need to generate them if there are no CONFIG_HEADERS. -# This happens for instance with `./config.status Makefile'. -if test -n "$CONFIG_HEADERS"; then -cat >"$ac_tmp/defines.awk" <<\_ACAWK || -BEGIN { -_ACEOF - -# Transform confdefs.h into an awk script `defines.awk', embedded as -# here-document in config.status, that substitutes the proper values into -# config.h.in to produce config.h. - -# Create a delimiter string that does not exist in confdefs.h, to ease -# handling of long lines. -ac_delim='%!_!# ' -for ac_last_try in false false :; do - ac_tt=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_tt"; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done - -# For the awk script, D is an array of macro values keyed by name, -# likewise P contains macro parameters if any. Preserve backslash -# newline sequences. - -ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -sed -n ' -s/.\{148\}/&'"$ac_delim"'/g -t rset -:rset -s/^[ ]*#[ ]*define[ ][ ]*/ / -t def -d -:def -s/\\$// -t bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3"/p -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p -d -:bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3\\\\\\n"\\/p -t cont -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p -t cont -d -:cont -n -s/.\{148\}/&'"$ac_delim"'/g -t clear -:clear -s/\\$// -t bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/"/p -d -:bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p -b cont -' >$CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - for (key in D) D_is_set[key] = 1 - FS = "" -} -/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { - line = \$ 0 - split(line, arg, " ") - if (arg[1] == "#") { - defundef = arg[2] - mac1 = arg[3] - } else { - defundef = substr(arg[1], 2) - mac1 = arg[2] - } - split(mac1, mac2, "(") #) - macro = mac2[1] - prefix = substr(line, 1, index(line, defundef) - 1) - if (D_is_set[macro]) { - # Preserve the white space surrounding the "#". - print prefix "define", macro P[macro] D[macro] - next - } else { - # Replace #undef with comments. This is necessary, for example, - # in the case of _POSIX_SOURCE, which is predefined and required - # on some systems where configure will not decide to define it. - if (defundef == "undef") { - print "/*", prefix defundef, macro, "*/" - next - } - } -} -{ print } -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 -fi # test -n "$CONFIG_HEADERS" - - -eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS " -shift -for ac_tag -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$ac_tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; - esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - as_fn_append ac_file_inputs " '$ac_f'" - done - - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} - fi - # Neutralize special characters interpreted by sed in replacement strings. - case $configure_input in #( - *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | - sed 's/[\\\\&|]/\\\\&/g'`;; #( - *) ac_sed_conf_input=$configure_input;; - esac - - case $ac_tag in - *:-:* | *:-) cat >"$ac_tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir="$ac_dir"; as_fn_mkdir_p - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= -ac_sed_dataroot=' -/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p' -case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_sed_extra="$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s|@configure_input@|$ac_sed_conf_input|;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@top_build_prefix@&$ac_top_build_prefix&;t t -s&@srcdir@&$ac_srcdir&;t t -s&@abs_srcdir@&$ac_abs_srcdir&;t t -s&@top_srcdir@&$ac_top_srcdir&;t t -s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t -s&@builddir@&$ac_builddir&;t t -s&@abs_builddir@&$ac_abs_builddir&;t t -s&@abs_top_builddir@&$ac_abs_top_builddir&;t t -$ac_datarootdir_hack -" -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ - >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ - "$ac_tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&2;} - - rm -f "$ac_tmp/stdin" - case $ac_file in - -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; - *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; - esac \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - ;; - :H) - # - # CONFIG_HEADER - # - if test x"$ac_file" != x-; then - { - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" - } >"$ac_tmp/config.h" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then - { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 -$as_echo "$as_me: $ac_file is unchanged" >&6;} - else - rm -f "$ac_file" - mv "$ac_tmp/config.h" "$ac_file" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - fi - else - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ - || as_fn_error $? "could not create -" "$LINENO" 5 - fi - ;; - - - esac - -done # for ac_tag - - -as_fn_exit 0 -_ACEOF -ac_clean_files=$ac_clean_files_save - -test $ac_write_fail = 0 || - as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit 1 -fi -if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} -fi - diff --git a/configure.ac b/configure.ac deleted file mode 100644 index d5cdb069..00000000 --- a/configure.ac +++ /dev/null @@ -1,649 +0,0 @@ -# configure.ac COPYRIGHT FUJITSU LIMITED 2015-2018 -AC_PREREQ(2.63) -m4_define([IHK_VERSION_m4],[1.5.0])dnl -m4_define([MCKERNEL_VERSION_m4],[1.5.0])dnl -m4_define([IHK_RELEASE_DATE_m4],[2018-04-05])dnl -m4_define([MCKERNEL_RELEASE_DATE_m4],[2018-04-05])dnl - -AC_INIT([mckernel], MCKERNEL_VERSION_m4) - -dnl *** PAC_APPEND_FLAG is copied from aclocal_util.m4 of mpich-3.3a2 *** -dnl Usage: PAC_APPEND_FLAG([-02], [CFLAGS]) -dnl appends the given argument to the specified shell variable unless the -dnl argument is already present in the variable -AC_DEFUN([PAC_APPEND_FLAG],[ - AC_REQUIRE([AC_PROG_FGREP]) - AS_IF( - [echo "$$2" | $FGREP -e "\<$1\>" >/dev/null 2>&1], - [echo "$2(='$$2') contains '$1', not appending" >&AS_MESSAGE_LOG_FD], - [echo "$2(='$$2') does not contain '$1', appending" >&AS_MESSAGE_LOG_FD - $2="$$2 $1"] - ) -]) - -dnl *** PAC_SET_HEADER_LIB_PATH is copied from aclocal_libs.m4 of mpich-3.3a2 *** -dnl PAC_SET_HEADER_LIB_PATH(with_option,[default_path]) -dnl This macro looks for the --with-xxx=, --with-xxx-include and --with-xxx-lib= -dnl options and sets the library and include paths. -dnl -dnl TODO as written, this macro cannot handle a "with_option" arg that has "-" -dnl characters in it. Use AS_TR_SH (and possibly AS_VAR_* macros) to handle -dnl this case if it ever arises. -AC_DEFUN([PAC_SET_HEADER_LIB_PATH],[ - AC_ARG_WITH([$1], - [AC_HELP_STRING([--with-$1=PATH], - [specify path where $1 include directory and lib directory can be found])], - - [AS_CASE(["$withval"], - [yes|no|''], - [AC_MSG_WARN([--with[out]-$1=PATH expects a valid PATH]) - with_$1=""])], - [with_$1=$2]) - AC_ARG_WITH([$1-include], - [AC_HELP_STRING([--with-$1-include=PATH], - [specify path where $1 include directory can be found])], - [AS_CASE(["$withval"], - [yes|no|''], - [AC_MSG_WARN([--with[out]-$1-include=PATH expects a valid PATH]) - with_$1_include=""])], - []) - AC_ARG_WITH([$1-lib], - [AC_HELP_STRING([--with-$1-lib=PATH], - [specify path where $1 lib directory can be found])], - [AS_CASE(["$withval"], - [yes|no|''], - [AC_MSG_WARN([--with[out]-$1-lib=PATH expects a valid PATH]) - with_$1_lib=""])], - []) - - # The args have been sanitized into empty/non-empty values above. - # Now append -I/-L args to CPPFLAGS/LDFLAGS, with more specific options - # taking priority - - AS_IF([test -n "${with_$1_include}"], - [PAC_APPEND_FLAG([-I${with_$1_include}],[CPPFLAGS])], - [AS_IF([test -n "${with_$1}"], - [PAC_APPEND_FLAG([-I${with_$1}/include],[CPPFLAGS])])]) - - AS_IF([test -n "${with_$1_lib}"], - [PAC_APPEND_FLAG([-L${with_$1_lib}],[LDFLAGS])], - [AS_IF([test -n "${with_$1}"], - dnl is adding lib64 by default really the right thing to do? What if - dnl we are on a 32-bit host that happens to have both lib dirs available? - [PAC_APPEND_FLAG([-L${with_$1}/lib],[LDFLAGS]) - AS_IF([test -d "${with_$1}/lib64"], - [PAC_APPEND_FLAG([-L${with_$1}/lib64],[LDFLAGS])]) - ]) - ]) -]) - -AC_DEFUN([PAC_SET_HEADER_LIB_PATH_SYSCALL_INTERCEPT],[ - AC_ARG_WITH([$1], - [AC_HELP_STRING([--with-$1=PATH], - [specify path where $1 include directory and lib directory can be found])], - - [AS_CASE(["$withval"], - [yes|no|''], - [AC_MSG_WARN([--with[out]-$1=PATH expects a valid PATH]) - with_$1=""])], - [with_$1=$2]) - AC_ARG_WITH([$1-include], - [AC_HELP_STRING([--with-$1-include=PATH], - [specify path where $1 include directory can be found])], - [AS_CASE(["$withval"], - [yes|no|''], - [AC_MSG_WARN([--with[out]-$1-include=PATH expects a valid PATH]) - with_$1_include=""])], - []) - AC_ARG_WITH([$1-lib], - [AC_HELP_STRING([--with-$1-lib=PATH], - [specify path where $1 lib directory can be found])], - [AS_CASE(["$withval"], - [yes|no|''], - [AC_MSG_WARN([--with[out]-$1-lib=PATH expects a valid PATH]) - with_$1_lib=""])], - []) - - # The args have been sanitized into empty/non-empty values above. - # Now append -I/-L args to CPPFLAGS/LDFLAGS, with more specific options - # taking priority - - AS_IF([test -n "${with_$1_include}"], - [PAC_APPEND_FLAG([-I${with_$1_include}],[CPPFLAGS_SYSCALL_INTERCEPT])], - [AS_IF([test -n "${with_$1}"], - [PAC_APPEND_FLAG([-I${with_$1}/include],[CPPFLAGS_SYSCALL_INTERCEPT])])]) - - AS_IF([test -n "${with_$1_lib}"], - [PAC_APPEND_FLAG([-L${with_$1_lib} -Wl,-rpath,${with_$1_lib}],[LDFLAGS_SYSCALL_INTERCEPT])], - [AS_IF([test -n "${with_$1}"], - dnl is adding lib64 by default really the right thing to do? What if - dnl we are on a 32-bit host that happens to have both lib dirs available? - [PAC_APPEND_FLAG([-L${with_$1}/lib -Wl,-rpath,${with_$1}/lib],[LDFLAGS_SYSCALL_INTERCEPT]) - AS_IF([test -d "${with_$1}/lib64"], - [PAC_APPEND_FLAG([-L${with_$1}/lib64 -Wl,-rpath,${with_$1}/lib64],[LDFLAGS_SYSCALL_INTERCEPT])]) - ]) - ]) - - AS_IF([test -n "${with_$1}" || test -n "${with_$1_include}" || test -n "${with_$1_lib}"], - [WITH_SYSCALL_INTERCEPT=yes], - [WITH_SYSCALL_INTERCEPT=no]) -]) - -IHK_VERSION=IHK_VERSION_m4 -MCKERNEL_VERSION=MCKERNEL_VERSION_m4 -DCFA_VERSION=DCFA_VERSION_m4 -IHK_RELEASE_DATE=IHK_RELEASE_DATE_m4 -MCKERNEL_RELEASE_DATE=MCKERNEL_RELEASE_DATE_m4 -DCFA_RELEASE_DATE=DCFA_RELEASE_DATE_m4 - -AC_PREFIX_DEFAULT([/opt/ppos]) - -AC_CHECK_HEADER([numa.h],[numa_header_found=yes]) -AS_IF([test "x$numa_header_found" != "xyes"], - [AC_MSG_ERROR([Unable to find numa.h header file, missing numactl-devel?])]) -AC_CHECK_LIB([numa],[numa_run_on_node],[numa_lib_found=yes]) -AS_IF([test "x$numa_lib_found" != "xyes"], - [AC_MSG_ERROR([Unable to find NUMA library, missing numactl-devel?])]) - -PAC_SET_HEADER_LIB_PATH([mpi]) - -PAC_SET_HEADER_LIB_PATH_SYSCALL_INTERCEPT([syscall_intercept]) - -if test "x$WITH_SYSCALL_INTERCEPT" == "xno" ; then - AC_CHECK_LIB([syscall_intercept],[syscall_no_intercept],[syscall_intercept_lib_found=yes],[syscall_intercept_lib_found=no],[-lcapstone -ldl]) - AS_IF([test "x$syscall_intercept_lib_found" != "xyes"], - [AC_MSG_NOTICE([libsyscall_intercept.so not found])]) - - AC_CHECK_HEADER([libsyscall_intercept_hook_point.h],[syscall_intercept_header_found=yes],[syscall_intercept_header_found=no]) - AS_IF([test "x$syscall_intercept_header_found" != "xyes"], - [AC_MSG_NOTICE([libsyscall_intercept_hook_point.h not found])]) - - AS_IF([test "x$syscall_intercept_lib_found" == "xyes" && test "x$syscall_intercept_header_found" == "xyes"], - [WITH_SYSCALL_INTERCEPT=yes], - [WITH_SYSCALL_INTERCEPT=no]) -fi - - -AC_ARG_WITH([kernelsrc], - AC_HELP_STRING( - [--with-kernelsrc=path],[Path to 'kernel src', default is /lib/modules/uname_r/build]), - [WITH_KERNELSRC=$withval],[WITH_KERNELSRC=yes]) - -AC_ARG_WITH([target], - AC_HELP_STRING( - [--with-target={attached-mic | builtin-mic | builtin-x86 | smp-x86}],[target, default is attached-mic]), - [WITH_TARGET=$withval],[WITH_TARGET=yes]) - -AC_ARG_WITH([system_map], - AS_HELP_STRING( - [--with-system_map=path],[Path to 'System.map file', default is /boot/System.map-uname_r]), - [WITH_SYSTEM_MAP=$withval],[WITH_SYSTEM_MAP=yes]) - -AC_ARG_ENABLE([dcfa], - [AS_HELP_STRING( - [--enable-dcfa],[Enable DCFA modules])],[],[enable_dcfa=no]) - -AC_ARG_ENABLE([memdump], - AC_HELP_STRING([--enable-memdump], - [enable dumping memory and analyzing a dump]), - [ENABLE_MEMDUMP=$enableval], - [ENABLE_MEMDUMP=default]) - -AC_ARG_ENABLE([mcoverlayfs], - AC_HELP_STRING([--enable-mcoverlayfs], - [enable mcoverlayfs implementation]), - [ENABLE_MCOVERLAYFS=$enableval], - [ENABLE_MCOVERLAYFS=no]) - -AC_ARG_ENABLE([rusage], - AC_HELP_STRING([--enable-rusage], - [enable rusage implementation]), - [ENABLE_RUSAGE=$enableval], - [ENABLE_RUSAGE=yes]) - -AC_ARG_ENABLE([perf], - AC_HELP_STRING([--enable-perf], - [enable perf_event implementation]), - [ENABLE_PERF=$enableval], - [ENABLE_PERF=yes]) - -AC_ARG_ENABLE([qlmpi], - AC_HELP_STRING([--enable-qlmpi], - [enable qlmpi implementation]), - [ENABLE_QLMPI=$enableval], - [ENABLE_QLMPI=no]) - -AC_ARG_WITH([uname_r], - AC_HELP_STRING( - [--with-uname_r=uname_r],[Value of '`uname -r`' on the target platform, default is local value]), - [WITH_UNAME_R=$withval],[WITH_UNAME_R=yes]) - -case "X$WITH_UNAME_R" in - Xyes | Xno | X) - WITH_UNAME_R="`uname -r`" - ;; -esac - -case "X$WITH_KERNELSRC" in - Xyes | Xno | X) - WITH_KERNELSRC="/lib/modules/`uname -r`/build" - ;; - X/*) - ;; - *) - WITH_KERNELSRC="`pwd`/$WITH_KERNELSRC" - ;; -esac - -if test "X$WITH_TARGET" = Xyes -o "X$WITH_TARGET" = Xno; then - WITH_TARGET=attached-mic -fi - -test "x$prefix" = xNONE && prefix="$ac_default_prefix" -AC_DEFINE_UNQUOTED(ROOTFSDIR,"$prefix/rootfs",[Path of bind-mount source directory]) - -case $WITH_TARGET in -# POSTK_DEBUG_ARCH_DEP_30, Expansion of the branch. -# attached-mic|builtin-x86|smp-x86) -# ARCH=`uname -m` -# AC_PROG_CC -# XCC=$CC -# ;; - attached-mic|builtin-x86|smp-*) - case $WITH_TARGET in - attached-mic|builtin-x86|smp-x86) - ARCH=`uname -m` - ;; - smp-arm64) - ARCH=arm64 - ;; - esac - AC_PROG_CC - XCC=$CC - CFLAGS="$CFLAGS -ffreestanding -fno-tree-loop-distribute-patterns" - ;; - builtin-mic) - ARCH=k1om - AC_CHECK_PROG(XCC, - [x86_64-$ARCH-linux-gcc], - [x86_64-$ARCH-linux-gcc], - [no]) - CC=$XCC - ;; - smp-arm64) - ARCH=arm64 - AC_CHECK_PROG(XCC, - [${CROSS_COMPILE}gcc], - [${CROSS_COMPILE}gcc], - [no]) - CC=$XCC - ;; - *) - AC_MSG_ERROR([target $WITH_TARGET is unknwon]) - ;; -esac - -case $WITH_TARGET in - attached-mic) - if test "X$KERNDIR" = X; then - KERNDIR="$prefix/attached/kernel" - fi - if test "X$BINDIR" = X; then - BINDIR="$prefix/bin" - fi - if test "X$SBINDIR" = X; then - SBINDIR="$prefix/sbin" - fi - if test "X$KMODDIR" = X; then - KMODDIR="$prefix/kmod" - fi - if test "X$MANDIR" = X; then - MANDIR="$prefix/share/man" - fi - ;; - builtin-mic) - if test "X$KERNDIR" = X; then - KERNDIR="$prefix/attached/kernel" - fi - if test "X$BINDIR" = X; then - BINDIR="$prefix/attached/bin" - fi - if test "X$SBINDIR" = X; then - SBINDIR="$prefix/attached/sbin" - fi - if test "X$KMODDIR" = X; then - KMODDIR="$prefix/attached/kmod" - fi - if test "X$MANDIR" = X; then - MANDIR="$prefix/share/man" - fi - ;; - builtin-x86) - if test "X$KERNDIR" = X; then - KERNDIR="$prefix/attached/kernel" - fi - if test "X$BINDIR" = X; then - BINDIR="$prefix/bin" - fi - if test "X$SBINDIR" = X; then - SBINDIR="$prefix/sbin" - fi - if test "X$KMODDIR" = X; then - KMODDIR="$prefix/kmod" - fi - if test "X$MANDIR" = X; then - MANDIR="$prefix/share/man" - fi - ;; - smp-x86) - if test "X$KERNDIR" = X; then - KERNDIR="$prefix/smp-x86/kernel" - fi - if test "X$BINDIR" = X; then - BINDIR="$prefix/bin" - fi - if test "X$SBINDIR" = X; then - SBINDIR="$prefix/sbin" - fi - if test "X$MCKERNEL_INCDIR" = X; then - MCKERNEL_INCDIR="$prefix/include" - fi - if test "X$MCKERNEL_LIBDIR" = X; then - MCKERNEL_LIBDIR="$prefix/lib" - fi - if test "X$INCDIR" = X; then - INCDIR="$prefix/include" - fi - if test "X$ETCDIR" = X; then - ETCDIR="$prefix/etc" - fi - if test "X$INCLUDEDIR" = X; then - INCLUDEDIR="$prefix/include" - fi - if test "X$KMODDIR" = X; then - KMODDIR="$prefix/kmod" - fi - if test "X$MANDIR" = X; then - MANDIR="$prefix/share/man" - fi - ;; - smp-arm64) - if test "X$KERNDIR" = X; then - KERNDIR="$prefix/smp-arm64/kernel" - fi - if test "X$BINDIR" = X; then - BINDIR="$prefix/bin" - fi - if test "X$SBINDIR" = X; then - SBINDIR="$prefix/sbin" - fi - if test "X$MCKERNEL_INCDIR" = X; then - MCKERNEL_INCDIR="$prefix/include" - fi - if test "X$MCKERNEL_LIBDIR" = X; then - MCKERNEL_LIBDIR="$prefix/lib" - fi - if test "X$INCDIR" = X; then - INCDIR="$prefix/include" - fi - if test "X$ETCDIR" = X; then - ETCDIR="$prefix/etc" - fi - if test "X$INCLUDEDIR" = X; then - INCLUDEDIR="$prefix/include" - fi - if test "X$KMODDIR" = X; then - KMODDIR="$prefix/kmod" - fi - if test "X$MANDIR" = X; then - MANDIR="$prefix/share/man" - fi - ;; - *) - AC_MSG_ERROR([target $WITH_TARGET is unknwon]) - ;; -esac - -KDIR="$WITH_KERNELSRC" -UNAME_R="$WITH_UNAME_R" -TARGET="$WITH_TARGET" - -case $ENABLE_MEMDUMP in - yes|no|auto) - ;; - default) -# POSTK_DEBUG_ARCH_DEP_30, Expansion of the branch. -# if test "x$WITH_TARGET" = "xsmp-x86" ; then - if test "x$WITH_TARGET" = "xsmp-x86" -o "x$WITH_TARGET" = "xsmp-arm64" ; then - ENABLE_MEMDUMP=auto - else - ENABLE_MEMDUMP=no - fi - ;; - *) - AC_MSG_ERROR([unknown memdump argument: $ENABLE_MEMDUMP]) - ;; -esac - -if test "x$ENABLE_MEMDUMP" != "xno" ; then - enableval=yes -# POSTK_DEBUG_ARCH_DEP_32, AC_CHECK_LIB for libiberty - AC_CHECK_LIB([iberty],[hex_init],[],[enableval=no]) - AC_CHECK_LIB([bfd],[bfd_init],[],[enableval=no]) - AC_CHECK_HEADER([bfd.h],[],[enableval=no]) - - if test "x$ENABLE_MEMDUMP" = "xyes" -a "x$enableval" = "xno" ; then - AC_MSG_ERROR([memdump feature needs bfd.h and libbfd a.k.a bunutils-devel]) - fi - ENABLE_MEMDUMP=$enableval -fi - -if test "x$ENABLE_MEMDUMP" = "xyes" ; then - AC_MSG_NOTICE([memdump feature is enabled]) - AC_DEFINE([ENABLE_MEMDUMP],[1],[whether memdump feature is enabled]) - uncomment_if_ENABLE_MEMDUMP='' -else - AC_MSG_NOTICE([memdump feature is disabled]) - uncomment_if_ENABLE_MEMDUMP='#' -fi - -if test "x$ENABLE_MCOVERLAYFS" = "xyes" ; then - AC_DEFINE([ENABLE_MCOVERLAYFS],[1],[whether mcoverlayfs is enabled]) - AC_MSG_NOTICE([mcoverlayfs is enabled]) - - IFS=. read LINUX_VERSION_MAJOR LINUX_VERSION_MINOR LINUX_VERSION_PATCH _ <= 262144 && LINUX_VERSION_CODE < 262400))) - MCOVERLAYFS_MODULE=linux-4.0.9;; - # 4.6.0-4.7.0 - $((LINUX_VERSION_CODE >= 263680 && LINUX_VERSION_CODE < 263936))) - MCOVERLAYFS_MODULE=linux-4.6.7;; - # 4.18.0-4.20.0 - $((LINUX_VERSION_CODE >= 266752 && LINUX_VERSION_CODE < 267264))) - MCOVERLAYFS_MODULE=linux-4.18.14;; - *) - AC_MSG_ERROR([Your kernel version has no known mcoverlayfs module]);; - esac - fi -else - AC_MSG_WARN([mcoverlayfs is disabled. You will not be able to run anything.]) -fi - -if test "x$ENABLE_QLMPI" = "xyes" ; then - AC_DEFINE([ENABLE_QLMPI],[1],[whether qlmpi is enabled]) - AC_MSG_NOTICE([qlmpi is enabled]) -else - AC_MSG_NOTICE([qlmpi is disabled]) -fi - -case $ENABLE_RUSAGE in - yes|no) - ;; - default) - ENABLE_RUSAGE=yes - ;; - *) - AC_MSG_ERROR([unknown rusage argument: $ENABLE_RUSAGE]) - ;; -esac - -if test "x$ENABLE_RUSAGE" = "xyes" ; then - AC_MSG_NOTICE([rusage is enabled]) - AC_DEFINE([ENABLE_RUSAGE],[1],[whether rusage is enabled]) -else - AC_MSG_NOTICE([rusage is disabled]) -fi - -if test "x$ENABLE_PERF" = "xyes" ; then - AC_DEFINE([ENABLE_PERF],[1],[whether perf is enabled]) - AC_MSG_NOTICE([perf is enabled]) -else - AC_MSG_NOTICE([perf is disabled]) -fi - -if test "x$WITH_SYSCALL_INTERCEPT" = "xyes" ; then - AC_DEFINE([WITH_SYSCALL_INTERCEPT],[1],[whether or not syscall_intercept library is linked]) - AC_MSG_NOTICE([syscall_intercept library is linked]) -else - AC_MSG_NOTICE([syscall_intercept library isn't linked]) -fi - -if test "x$MCKERNEL_INCDIR" != "x" ; then - AC_DEFINE_UNQUOTED(MCKERNEL_INCDIR,"$MCKERNEL_INCDIR",[McKernel specific headers]) -fi - -if test "x$MCKERNEL_LIBDIR" != "x" ; then - AC_DEFINE_UNQUOTED(MCKERNEL_LIBDIR,"$MCKERNEL_LIBDIR",[McKernel specific libraries]) -fi - -AC_DEFINE_UNQUOTED(BINDIR,"$BINDIR",[Path of install directory for binary]) -AC_DEFINE_UNQUOTED(SBINDIR,"$SBINDIR",[Path of install directory for system binary]) - -AC_DEFINE_UNQUOTED(IHK_VERSION,"$IHK_VERSION",[IHK version string]) -AC_DEFINE_UNQUOTED(MCKERNEL_VERSION,"$MCKERNEL_VERSION",[McKernel version string]) - -ABS_SRCDIR=$( cd $( dirname $0 ); pwd ) -IHK_ABS_SRCDIR=${ABS_SRCDIR}/../ihk -BUILDID=$( git --git-dir=$IHK_ABS_SRCDIR/.git rev-parse --short HEAD 2>/dev/null || echo $IHK_VERSION ) -AC_MSG_NOTICE([BUILDID=$BUILDID]) -if test "x$BUILDID" != "x" ; then - AC_DEFINE_UNQUOTED(BUILDID,"$BUILDID",[IHK build-id to confirm IHK and McKernel built at the same time are used]) -fi -AC_SUBST(BUILDID) - -AC_SUBST(CC) -AC_SUBST(XCC) -AC_SUBST(ARCH) -AC_SUBST(KDIR) -AC_SUBST(UNAME_R) -AC_SUBST(TARGET) -AC_SUBST(BINDIR) -AC_SUBST(SBINDIR) -AC_SUBST(MCKERNEL_INCDIR) -AC_SUBST(MCKERNEL_LIBDIR) -AC_SUBST(INCDIR) -AC_SUBST(ETCDIR) -AC_SUBST(INCLUDEDIR) -AC_SUBST(KMODDIR) -AC_SUBST(KERNDIR) -AC_SUBST(MANDIR) -AC_SUBST(CFLAGS) -AC_SUBST(CPPFLAGS_SYSCALL_INTERCEPT) -AC_SUBST(LDFLAGS_SYSCALL_INTERCEPT) -AC_SUBST(ENABLE_MCOVERLAYFS) -AC_SUBST(MCOVERLAYFS_MODULE) -AC_SUBST(ENABLE_RUSAGE) -AC_SUBST(ENABLE_QLMPI) -AC_SUBST(WITH_SYSCALL_INTERCEPT) - -AC_SUBST(IHK_VERSION) -AC_SUBST(MCKERNEL_VERSION) -AC_SUBST(DCFA_VERSION) -AC_SUBST(IHK_RELEASE_DATE) -AC_SUBST(MCKERNEL_RELEASE_DATE) -AC_SUBST(DCFA_RESEASE_DATE) -AC_SUBST(uncomment_if_ENABLE_MEMDUMP) - -AC_CONFIG_HEADERS([config.h]) -# POSTK_DEBUG_ARCH_DEP_37 -# AC_CONFIG_FILES arch dependfiles separate -AC_CONFIG_FILES([ - Makefile - executer/user/Makefile - executer/user/mcexec.1:executer/user/mcexec.1in - executer/user/vmcore2mckdump - executer/user/arch/$ARCH/Makefile - executer/kernel/mcctrl/Makefile - executer/kernel/mcctrl/arch/$ARCH/Makefile - executer/kernel/mcoverlayfs/Makefile - executer/kernel/mcoverlayfs/linux-3.10.0-327.36.1.el7/Makefile - executer/kernel/mcoverlayfs/linux-4.0.9/Makefile - executer/kernel/mcoverlayfs/linux-4.6.7/Makefile - executer/kernel/mcoverlayfs/linux-4.18.14/Makefile - executer/include/qlmpilib.h - kernel/Makefile - kernel/Makefile.build - kernel/include/swapfmt.h - arch/x86_64/tools/mcreboot-attached-mic.sh - arch/x86_64/tools/mcshutdown-attached-mic.sh - arch/x86_64/tools/mcreboot-builtin-x86.sh - arch/x86_64/tools/mcreboot-smp-x86.sh - arch/x86_64/tools/mcstop+release-smp-x86.sh - arch/x86_64/tools/mcoverlay-destroy-smp-x86.sh - arch/x86_64/tools/mcoverlay-create-smp-x86.sh - arch/x86_64/tools/eclair-dump-backtrace.exp - arch/x86_64/tools/mcshutdown-builtin-x86.sh - arch/x86_64/tools/mcreboot.1:arch/x86_64/tools/mcreboot.1in - arch/x86_64/tools/irqbalance_mck.service - arch/x86_64/tools/irqbalance_mck.in - tools/mcstat/mcstat.1:tools/mcstat/mcstat.1in - tools/mcstat/Makefile -]) - -if test -e "${ABS_SRCDIR}/test"; then -AC_CONFIG_FILES([ -mck_test_config.sample:test/mck_test_config.sample.in -]) -fi - -if test "$TARGET" = "smp-x86"; then -AC_CONFIG_FILES([ - arch/x86_64/kernel/Makefile.arch -]) -fi - -if test "$TARGET" = "smp-arm64"; then -AC_CONFIG_FILES([ - kernel/config/config.smp-arm64 - arch/arm64/kernel/vdso/Makefile - arch/arm64/kernel/Makefile.arch -]) -fi - -AS_IF([test "x$enable_dcfa" = xyes], [ - AC_CONFIG_FILES([kernel/Makefile.dcfa])]) - -AC_OUTPUT diff --git a/executer/include/qlmpilib.h.in b/executer/include/qlmpilib.h similarity index 100% rename from executer/include/qlmpilib.h.in rename to executer/include/qlmpilib.h diff --git a/executer/kernel/mcctrl/CMakeLists.txt b/executer/kernel/mcctrl/CMakeLists.txt new file mode 100644 index 00000000..0f815ad4 --- /dev/null +++ b/executer/kernel/mcctrl/CMakeLists.txt @@ -0,0 +1,30 @@ +file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/arch/${ARCH}) + +if(ARCH STREQUAL "x86_64") + set(ARCH_C_FLAGS "-mno-red-zone -mcmodel=kernel") +endif() + +kmod(mcctrl + C_FLAGS + -I${IHK_FULL_SOURCE_DIR}/linux/include + -I${IHK_FULL_SOURCE_DIR}/linux/include/ihk/arch/${ARCH} + -I${IHK_FULL_SOURCE_DIR}/ikc/include + -I${IHK_FULL_SOURCE_DIR}/ikc/include/ikc/arch/${ARCH} + -I${IHK_FULL_SOURCE_DIR}/include + -I${IHK_FULL_SOURCE_DIR}/include/arch/${ARCH} + -I${PROJECT_SOURCE_DIR}/executer/include + -I${CMAKE_CURRENT_SOURCE_DIR}/arch/${ARCH}/include + -I${PROJECT_BINARY_DIR} + -I${PROJECT_SOURCE_DIR}/kernel/include + -DMCEXEC_PATH=\\"${CMAKE_INSTALL_FULL_BINDIR}/mcexec\\" + ${ARCH_C_FLAGS} + SOURCES + driver.c control.c ikc.c syscall.c procfs.c binfmt_mcexec.c + sysfs.c sysfs_files.c arch/${ARCH}/archdeps.c + EXTRA_SYMBOLS + ${PROJECT_BINARY_DIR}/ihk/linux/core/Module.symvers + DEPENDS + ihk_ko + INSTALL_DEST + ${KMODDIR} +) diff --git a/executer/kernel/mcctrl/Makefile.in b/executer/kernel/mcctrl/Makefile.in deleted file mode 100644 index b76b6405..00000000 --- a/executer/kernel/mcctrl/Makefile.in +++ /dev/null @@ -1,50 +0,0 @@ -# Makefile.in COPYRIGHT FUJITSU LIMITED 2016 -KDIR ?= @KDIR@ -ARCH ?= @ARCH@ -src = @abs_srcdir@ -KMODDIR=@KMODDIR@ -BINDIR=@BINDIR@ -INCLUDEDIR=@INCLUDEDIR@ -IHK_BASE=$(src)/../../../../ihk - -obj-m += mcctrl.o - -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 \ - -I@abs_builddir@ \ - -I@abs_builddir@/../../../ \ - -I$(src)/../../../kernel/include \ - -DMCEXEC_PATH=\"$(BINDIR)/mcexec\" - -# depending arch -include @abs_builddir@/arch/$(ARCH)/Makefile - -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 6 120), $(addprefix -DPOSTK_DEBUG_ARCH_DEP_, $(i))) -EXTRA_CFLAGS += $(foreach i, $(shell seq 6 110), $(addprefix -DPOSTK_DEBUG_TEMP_FIX_, $(i))) -endif - -.PHONY: clean install modules - -modules: - $(MAKE) -C $(KDIR) M=$(PWD) SUBDIRS=$(PWD) ARCH=$(ARCH) modules - -clean: - $(RM) .*.cmd *.mod.c *.o *.ko* Module.symvers modules.order -r .tmp* - -install: - mkdir -p -m 755 $(KMODDIR) - install -m 644 mcctrl.ko $(KMODDIR) - mkdir -p -m 755 $(INCLUDEDIR)/mckernel - install -m 644 $(src)/../../include/ihklib_rusage.h $(INCLUDEDIR)/mckernel/ihklib_rusage.h diff --git a/executer/kernel/mcctrl/arch/arm64/Makefile.in b/executer/kernel/mcctrl/arch/arm64/Makefile.in deleted file mode 100644 index 357aacdb..00000000 --- a/executer/kernel/mcctrl/arch/arm64/Makefile.in +++ /dev/null @@ -1,2 +0,0 @@ -# Makefile.in COPYRIGHT FUJITSU LIMITED 2016 -# dummy file diff --git a/executer/kernel/mcctrl/arch/arm64/archdeps.c b/executer/kernel/mcctrl/arch/arm64/archdeps.c index e4199dbe..e4c2d03a 100644 --- a/executer/kernel/mcctrl/arch/arm64/archdeps.c +++ b/executer/kernel/mcctrl/arch/arm64/archdeps.c @@ -3,7 +3,7 @@ #include #include #include -#include "../../../config.h" +#include "config.h" #include "../../mcctrl.h" //#define SC_DEBUG diff --git a/executer/kernel/mcctrl/arch/x86_64/Makefile.in b/executer/kernel/mcctrl/arch/x86_64/Makefile.in deleted file mode 100644 index 4d888df4..00000000 --- a/executer/kernel/mcctrl/arch/x86_64/Makefile.in +++ /dev/null @@ -1 +0,0 @@ -ccflags-y += -mno-red-zone -mcmodel=kernel diff --git a/executer/kernel/mcctrl/arch/x86_64/archdeps.c b/executer/kernel/mcctrl/arch/x86_64/archdeps.c index 9c5eb8c5..4c3d6f70 100644 --- a/executer/kernel/mcctrl/arch/x86_64/archdeps.c +++ b/executer/kernel/mcctrl/arch/x86_64/archdeps.c @@ -2,7 +2,7 @@ #include #include #include -#include "../../../config.h" +#include "config.h" #include "../../mcctrl.h" //#define SC_DEBUG diff --git a/executer/kernel/mcctrl/syscall.c b/executer/kernel/mcctrl/syscall.c index d6bcd6dc..78680d4b 100644 --- a/executer/kernel/mcctrl/syscall.c +++ b/executer/kernel/mcctrl/syscall.c @@ -46,7 +46,7 @@ #include #include #include -#include "../../../config.h" +#include "config.h" #include "mcctrl.h" #include #include diff --git a/executer/kernel/mcctrl/sysfs_files.c b/executer/kernel/mcctrl/sysfs_files.c index f5f8da16..2f096ec8 100644 --- a/executer/kernel/mcctrl/sysfs_files.c +++ b/executer/kernel/mcctrl/sysfs_files.c @@ -15,7 +15,7 @@ #include #include #include -#include "../../../config.h" +#include "config.h" #include "mcctrl.h" #include "sysfs_msg.h" diff --git a/executer/kernel/mcoverlayfs/CMakeLists.txt b/executer/kernel/mcoverlayfs/CMakeLists.txt new file mode 100644 index 00000000..8a5c94b5 --- /dev/null +++ b/executer/kernel/mcoverlayfs/CMakeLists.txt @@ -0,0 +1,14 @@ +# LESS/GREATER_EQUAL appears somewhere in 3.7... meh compat until we stop caring about 2.x +# ...apparently can't define macros ot use inside if, so unfold manually + +if(NOT (LINUX_VERSION_CODE LESS 262144) AND NOT (LINUX_VERSION_CODE GREATER 262400)) + add_subdirectory("linux-4.0.9") +elseif(NOT (LINUX_VERSION_CODE LESS 263680) AND NOT (LINUX_VERSION_CODE GREATER 263936)) + add_subdirectory("linux-4.6.7") +elseif(LINUX_VERSION_CODE EQUAL 199168) + add_subdirectory("linux-3.10.0-327.36.1.el7") +else() + #add_subdirectory("linux-3.10.0-327.36.1.el7") + add_subdirectory("linux-4.18.14") + #message(FATAL_ERROR "mcoverlayfs enabled but kernel version not compatible") +endif() diff --git a/executer/kernel/mcoverlayfs/Makefile.in b/executer/kernel/mcoverlayfs/Makefile.in deleted file mode 100644 index ff68df04..00000000 --- a/executer/kernel/mcoverlayfs/Makefile.in +++ /dev/null @@ -1,21 +0,0 @@ -ENABLE_MCOVERLAYFS=@ENABLE_MCOVERLAYFS@ -MCOVERLAYFS_MODULE=@MCOVERLAYFS_MODULE@ - -.PHONY: clean install modules - -modules: -ifeq ($(ENABLE_MCOVERLAYFS),yes) - +@(cd $(MCOVERLAYFS_MODULE) && make modules) -endif - -clean: - @(cd linux-3.10.0-327.36.1.el7 && make clean) - @(cd linux-4.0.9 && make clean) - @(cd linux-4.6.7 && make clean) - @(cd linux-4.18.14 && make clean) - -install: -ifeq ($(ENABLE_MCOVERLAYFS),yes) - @(cd $(MCOVERLAYFS_MODULE) && make install) -endif - diff --git a/executer/kernel/mcoverlayfs/linux-3.10.0-327.36.1.el7/CMakeLists.txt b/executer/kernel/mcoverlayfs/linux-3.10.0-327.36.1.el7/CMakeLists.txt new file mode 100644 index 00000000..65ac213d --- /dev/null +++ b/executer/kernel/mcoverlayfs/linux-3.10.0-327.36.1.el7/CMakeLists.txt @@ -0,0 +1,7 @@ +kmod(mcoverlay + SOURCES + copy_up.c dir.c inode.c readdir.c super.c + INSTALL_DEST + ${KMODDIR} +) + diff --git a/executer/kernel/mcoverlayfs/linux-3.10.0-327.36.1.el7/Makefile.in b/executer/kernel/mcoverlayfs/linux-3.10.0-327.36.1.el7/Makefile.in deleted file mode 100644 index a0705727..00000000 --- a/executer/kernel/mcoverlayfs/linux-3.10.0-327.36.1.el7/Makefile.in +++ /dev/null @@ -1,21 +0,0 @@ -KDIR ?= @KDIR@ -ARCH ?= @ARCH@ -KMODDIR = @KMODDIR@ -src = @abs_srcdir@ - -obj-m += mcoverlay.o - -mcoverlay-y := copy_up.o dir.o inode.o readdir.o super.o - -.PHONY: clean install modules - -modules: - $(MAKE) -C $(KDIR) M=$(PWD) SUBDIRS=$(PWD) ARCH=$(ARCH) modules - -clean: - $(RM) .*.cmd *.mod.c *.o *.ko* Module.symvers modules.order -r .tmp* - -install: - mkdir -p -m 755 $(KMODDIR) - install -m 644 mcoverlay.ko $(KMODDIR) - diff --git a/executer/kernel/mcoverlayfs/linux-4.0.9/Makefile.in b/executer/kernel/mcoverlayfs/linux-4.0.9/Makefile.in deleted file mode 100644 index a0705727..00000000 --- a/executer/kernel/mcoverlayfs/linux-4.0.9/Makefile.in +++ /dev/null @@ -1,21 +0,0 @@ -KDIR ?= @KDIR@ -ARCH ?= @ARCH@ -KMODDIR = @KMODDIR@ -src = @abs_srcdir@ - -obj-m += mcoverlay.o - -mcoverlay-y := copy_up.o dir.o inode.o readdir.o super.o - -.PHONY: clean install modules - -modules: - $(MAKE) -C $(KDIR) M=$(PWD) SUBDIRS=$(PWD) ARCH=$(ARCH) modules - -clean: - $(RM) .*.cmd *.mod.c *.o *.ko* Module.symvers modules.order -r .tmp* - -install: - mkdir -p -m 755 $(KMODDIR) - install -m 644 mcoverlay.ko $(KMODDIR) - diff --git a/executer/kernel/mcoverlayfs/linux-4.18.14/CMakeLists.txt b/executer/kernel/mcoverlayfs/linux-4.18.14/CMakeLists.txt new file mode 100644 index 00000000..5ce639ec --- /dev/null +++ b/executer/kernel/mcoverlayfs/linux-4.18.14/CMakeLists.txt @@ -0,0 +1,7 @@ +kmod(mcoverlay + SOURCES + copy_up.c dir.c inode.c readdir.c super.c namei.c util.c export.c + INSTALL_DEST + ${KMODDIR} +) + diff --git a/executer/kernel/mcoverlayfs/linux-4.18.14/Makefile.in b/executer/kernel/mcoverlayfs/linux-4.18.14/Makefile.in deleted file mode 100644 index 6a4749a9..00000000 --- a/executer/kernel/mcoverlayfs/linux-4.18.14/Makefile.in +++ /dev/null @@ -1,24 +0,0 @@ -KDIR ?= @KDIR@ -ARCH ?= @ARCH@ -# POSTK_DEBUG_ARCH_DEP_105 make install DESTDIR enable. -# KMODDIR = @KMODDIR@ -DESTDIR ?= @DESTDIR@ -KMODDIR = $(DESTDIR)/@KMODDIR@ -src = @abs_srcdir@ - -obj-m += mcoverlay.o - -mcoverlay-y := copy_up.o dir.o inode.o readdir.o super.o export.o namei.o util.o - -.PHONY: clean install modules - -modules: - $(MAKE) -C $(KDIR) M=$(PWD) SUBDIRS=$(PWD) ARCH=$(ARCH) modules - -clean: - $(RM) .*.cmd *.mod.c *.o *.ko* Module.symvers modules.order -r .tmp* - -install: - mkdir -p -m 755 $(KMODDIR) - install -m 644 mcoverlay.ko $(KMODDIR) - diff --git a/executer/kernel/mcoverlayfs/linux-4.6.7/Makefile.in b/executer/kernel/mcoverlayfs/linux-4.6.7/Makefile.in deleted file mode 100644 index a0705727..00000000 --- a/executer/kernel/mcoverlayfs/linux-4.6.7/Makefile.in +++ /dev/null @@ -1,21 +0,0 @@ -KDIR ?= @KDIR@ -ARCH ?= @ARCH@ -KMODDIR = @KMODDIR@ -src = @abs_srcdir@ - -obj-m += mcoverlay.o - -mcoverlay-y := copy_up.o dir.o inode.o readdir.o super.o - -.PHONY: clean install modules - -modules: - $(MAKE) -C $(KDIR) M=$(PWD) SUBDIRS=$(PWD) ARCH=$(ARCH) modules - -clean: - $(RM) .*.cmd *.mod.c *.o *.ko* Module.symvers modules.order -r .tmp* - -install: - mkdir -p -m 755 $(KMODDIR) - install -m 644 mcoverlay.ko $(KMODDIR) - diff --git a/executer/user/CMakeLists.txt b/executer/user/CMakeLists.txt new file mode 100644 index 00000000..a79ff3fd --- /dev/null +++ b/executer/user/CMakeLists.txt @@ -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} $<$:${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") diff --git a/executer/user/Makefile.in b/executer/user/Makefile.in deleted file mode 100644 index 11afaab1..00000000 --- a/executer/user/Makefile.in +++ /dev/null @@ -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) - diff --git a/executer/user/arch/arm64/Makefile.in b/executer/user/arch/arm64/Makefile.in deleted file mode 100644 index 8e151194..00000000 --- a/executer/user/arch/arm64/Makefile.in +++ /dev/null @@ -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: diff --git a/executer/user/arch/x86_64/Makefile.in b/executer/user/arch/x86_64/Makefile.in deleted file mode 100644 index 453bd5de..00000000 --- a/executer/user/arch/x86_64/Makefile.in +++ /dev/null @@ -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: diff --git a/executer/user/eclair.c b/executer/user/eclair.c index a59ba9b4..420186e8 100644 --- a/executer/user/eclair.c +++ b/executer/user/eclair.c @@ -8,7 +8,7 @@ * Copyright (C) 2015 RIKEN AICS */ -#include "../config.h" +#include "config.h" #include #include #include diff --git a/executer/user/eclair.h b/executer/user/eclair.h index 73ee5cd4..57298f48 100644 --- a/executer/user/eclair.h +++ b/executer/user/eclair.h @@ -3,7 +3,7 @@ #ifndef HEADER_USER_COMMON_ECLAIR_H #define HEADER_USER_COMMON_ECLAIR_H -#include "../config.h" +#include "config.h" #include #include #include diff --git a/executer/user/mcexec.c b/executer/user/mcexec.c index cb01236d..f28316c2 100644 --- a/executer/user/mcexec.c +++ b/executer/user/mcexec.c @@ -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=\n"); exit(EXIT_FAILURE); diff --git a/executer/user/ql_mpiexec_start.c b/executer/user/ql_mpiexec_start.c index f60a9f69..124df4ec 100644 --- a/executer/user/ql_mpiexec_start.c +++ b/executer/user/ql_mpiexec_start.c @@ -15,7 +15,7 @@ #include #include #include -#include "../../config.h" +#include "config.h" #include "../include/qlmpi.h" #include "../include/md5.h" diff --git a/ihk b/ihk index 83d5ec53..f4c2dbbb 160000 --- a/ihk +++ b/ihk @@ -1 +1 @@ -Subproject commit 83d5ec53cb99d3d8db5b08efd84d8f1126ddaa39 +Subproject commit f4c2dbbb0f1ba87b2b6b33a1e683c313bd2006fa diff --git a/kernel/CMakeLists.txt b/kernel/CMakeLists.txt new file mode 100644 index 00000000..43835d80 --- /dev/null +++ b/kernel/CMakeLists.txt @@ -0,0 +1,171 @@ +set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS) +set(CMAKE_C_LINK_EXECUTABLE " -o ") +set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -D__ASSEMBLY__") + +configure_file(include/swapfmt.h.in include/swapfmt.h) + +execute_process(COMMAND ${CMAKE_C_COMPILER} -print-file-name=include + OUTPUT_VARIABLE SYSTEM_INCLUDE OUTPUT_STRIP_TRAILING_WHITESPACE) +add_definitions(-D__KERNEL__ -DIHK_OS_MANYCORE) +add_compile_options(-ffreestanding -O2 -nostdinc -isystem ${SYSTEM_INCLUDE} -fno-omit-frame-pointer) +include_directories( + "${CMAKE_CURRENT_BINARY_DIR}/include" + "include" + "${CMAKE_CURRENT_BINARY_DIR}" + "${PROJECT_BINARY_DIR}" + "${IHK_FULL_SOURCE_DIR}/cokernel/smp/${ARCH}/include" + "${IHK_FULL_SOURCE_DIR}/ikc/include" + "${IHK_FULL_SOURCE_DIR}/linux/include" + "${PROJECT_SOURCE_DIR}/lib/include" + "${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/include" +) +if (${ARCH} STREQUAL "x86_64") + add_compile_options(-mcmodel=large -mno-red-zone -mno-sse) +endif() + +set(MCKERNEL_SRCS + init.c mem.c debug.c mikc.c listeners.c ap.c syscall.c cls.c host.c process.c + copy.c waitq.c futex.c timer.c plist.c fileobj.c shmobj.c zeroobj.c + procfs.c devobj.c sysfs.c xpmem.c profile.c freeze.c rbtree.c pager.c + gencore.c hugefileobj.c + + ${IHK_FULL_SOURCE_DIR}/ikc/manycore.c + ${IHK_FULL_SOURCE_DIR}/ikc/master.c + ${IHK_FULL_SOURCE_DIR}/ikc/queue.c + + ${PROJECT_SOURCE_DIR}/lib/abort.c + ${PROJECT_SOURCE_DIR}/lib/bitmap.c + ${PROJECT_SOURCE_DIR}/lib/bitops.c + ${PROJECT_SOURCE_DIR}/lib/page_alloc.c + ${PROJECT_SOURCE_DIR}/lib/string.c + ${PROJECT_SOURCE_DIR}/lib/vsprintf.c + + ${IHK_FULL_SOURCE_DIR}/cokernel/smp/${ARCH}/dma.c + ${IHK_FULL_SOURCE_DIR}/cokernel/smp/${ARCH}/ikc.c + ${IHK_FULL_SOURCE_DIR}/cokernel/smp/${ARCH}/setup.c +) + +if (BUILD_TARGET STREQUAL "smp-x86") + list(APPEND MCKERNEL_SRCS + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/context.S + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/coredump.c + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/cpu.c + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/interrupt.S + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/local.c + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/memory.c + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/mikc.c + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/perfctr.c + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/syscall.c + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/trampoline.S + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/vsyscall.c + + ) + set(LINKER_SCRIPT "smp-x86.lds") +elseif (BUILD_TARGET STREQUAL "smp-arm64") + + configure_file(${KERNEL_DIR}/include/generated/vdso-offsets.h include/vdso-offsets.h) + + list(APPEND MCKERNEL_SRCS + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/assert.c + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/cache.S + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/context.c + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/coredump.c + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/cpu.c + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/cpufeature.c + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/cputable.c + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/debug-monitors.c + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/entry-fpsimd.S + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/entry.S + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/fault.c + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/fpsimd.c + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/head.S + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/hw_breakpoint.c + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/hyp-stub.S + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/imp-sysreg.c + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/irq-gic-v2.c + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/irq-gic-v3.c + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/local.c + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/memcpy.S + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/memory.c + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/memset.S + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/mikc.c + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/perfctr.c + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/perfctr_armv8pmu.c + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/proc-macros.S + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/proc.S + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/psci.c + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/ptrace.c + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/smp.c + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/syscall.c + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/timer.c + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/trampoline.S + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/traps.c + ${PROJECT_SOURCE_DIR}/arch/${ARCH}/kernel/vdso.c + + ) + + execute_process(COMMAND awk -F= "$1 == \"CONFIG_NR_CPUS\" { print $2; exit; }" "${KERNEL_DIR}/.config" + OUTPUT_VARIABLE CONFIG_NR_CPUS OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND awk -F= "$1 == \"CONFIG_ARM_ARCH_TIMER_EVTSTREAM\" { print $2; exit; }" "${KERNEL_DIR}/.config" + OUTPUT_VARIABLE CONFIG_ARM_ARCH_TIMER_EVTSTREAM OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND awk -F= "$1 == \"CONFIG_HZ\" { print $2; exit; }" "${KERNEL_DIR}/.config" + OUTPUT_VARIABLE CONFIG_HZ OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND awk -F= "$1 == \"CONFIG_ARM64_VHE\" { print $2; exit; }" "${KERNEL_DIR}/.config" + OUTPUT_VARIABLE CONFIG_ARM64_VHE OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND awk -F= "$1 == \"CONFIG_ARM_GIC_V3\" { print $2; exit; }" "${KERNEL_DIR}/.config" + OUTPUT_VARIABLE CONFIG_ARM_GIC_V3 OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND awk -F= "$1 == \"CONFIG_ARM64_64K_PAGES\" { print $2; exit; }" "${KERNEL_DIR}/.config" + OUTPUT_VARIABLE CONFIG_ARM64_64K_PAGES OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND awk -F= "$1 == \"CONFIG_ARM64_VA_BITS\" { print $2; exit; }" "${KERNEL_DIR}/.config" + OUTPUT_VARIABLE CONFIG_ARM64_VA_BITS OUTPUT_STRIP_TRAILING_WHITESPACE) + + message("Host kernel CONFIG_NR_CPUS=${CONFIG_NR_CPUS}") + message("Host kernel CONFIG_HZ=${CONFIG_HZ}") + message("Host kernel CONFIG_ARM64_64K_PAGES=${CONFIG_ARM64_64K_PAGES}") + message("Host kernel CONFIG_ARM64_VA_BITS=${CONFIG_ARM64_VA_BITS}") + + if(CONFIG_ARM64_64K_PAGES STREQUAL "y") + if(CONFIG_ARM64_VA_BITS STREQUAL 42) + add_definitions(-DCONFIG_ARM64_PGTABLE_LEVELS=2 -DCONFIG_ARM64_VA_BITS=42 -DCONFIG_ARM64_64K_PAGES) + set(LINKER_SCRIPT "smp-arm64_type3.lds") + elseif(CONFIG_ARM64_VA_BITS STREQUAL 48) + add_definitions(-DCONFIG_ARM64_PGTABLE_LEVELS=3 -DCONFIG_ARM64_VA_BITS=48 -DCONFIG_ARM64_64K_PAGES) + set(LINKER_SCRIPT "smp-arm64_type4.lds") + endif() + else(CONFIG_ARM64_64K_PAGES STREQUAL "y") + if(CONFIG_ARM64_VA_BITS STREQUAL 39) + add_definitions(-DCONFIG_ARM64_PGTABLE_LEVELS=3 -DCONFIG_ARM64_VA_BITS=39) + set(linker_script "smp-arm64_type1.lds") + elseif(CONFIG_ARM64_VA_BITS STREQUAL 48) + add_definitions(-DCONFIG_ARM64_PGTABLE_LEVELS=4 -DCONFIG_ARM64_VA_BITS=48) + set(linker_script "smp-arm64_type2.lds") + endif() + endif(CONFIG_ARM64_64K_PAGES STREQUAL "y") + if(CONFIG_ARM_GIC_V3 STREQUAL "y") + add_definitions(-DCONFIG_ARM_GIC_V3=y) + #add_definitions(-DCONFIG_HAS_NMI=y) + else(CONFIG_ARM_GIC_V3 STREQUAL "y") + message(FATAL_ERROR "Host kernel must have GIC v3 enabled") + endif(CONFIG_ARM_GIC_V3 STREQUAL "y") + if(CONFIG_ARM64_VHE STREQUAL "y") + add_definitions(-DCONFIG_ARM64_VHE) + endif(CONFIG_ARM64_VHE STREQUAL "y") + if(CONFIG_ARM_ARCH_TIMER_EVTSTREAM STREQUAL "y") + add_definitions(-DCONFIG_ARM_ARCH_TIMER_EVTSTREAM) + endif(CONFIG_ARM_ARCH_TIMER_EVTSTREAM STREQUAL "y") + add_definitions(-DNR_CPUS=${CONFIG_NR_CPUS} -DCONFIG_HZ=${CONFIG_HZ}) + # Seems to have been hardcoded to 512 in old makefiles + add_definitions(-DCONFIG_SMP_MAX_CORES=512) + # Always turned on as well + add_definitions(-DCONFIG_ARM64_SVE) +endif() + + +add_executable(mckernel.img ${MCKERNEL_SRCS}) + +set_target_properties(mckernel.img PROPERTIES INSTALL_RPATH "") +set_target_properties(mckernel.img PROPERTIES LINK_FLAGS + "-e arch_start -T ${CMAKE_CURRENT_SOURCE_DIR}/config/${LINKER_SCRIPT} --build-id") + +install(TARGETS "mckernel.img" + DESTINATION "${MCKERNELDIR}") diff --git a/kernel/Makefile.build.in b/kernel/Makefile.build.in deleted file mode 100644 index 523817f2..00000000 --- a/kernel/Makefile.build.in +++ /dev/null @@ -1,75 +0,0 @@ -# Makefile.build.in COPYRIGHT FUJITSU LIMITED 2015-2018 -ARCH = @ARCH@ -VPATH=@abs_srcdir@ -SRC=$(VPATH) -IHKDIR=$(IHKBASE)/$(TARGETDIR) -OBJS = init.o mem.o debug.o mikc.o listeners.o ap.o syscall.o cls.o host.o -OBJS += process.o copy.o waitq.o futex.o timer.o plist.o fileobj.o shmobj.o -OBJS += zeroobj.o procfs.o devobj.o sysfs.o xpmem.o profile.o freeze.o -OBJS += rbtree.o hugefileobj.o -OBJS += pager.o gencore.o -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 -ifneq ($(ARCH), arm64) -CFLAGS += -mcmodel=large -mno-red-zone -mno-sse -endif -LDFLAGS += -e arch_start -IHKOBJ = ihk/ihk.o - -# POSTK_DEBUG_ARCH_DEP_24 -ifeq ($(ARCH), arm64) -default: all -endif - -ifeq ($(ARCH), arm64) -include @abs_builddir@/config/config.$(TARGET) -else -include $(SRC)/config/config.$(TARGET) -endif -include @abs_builddir@/../../ihk/cokernel/Makefile.common - -# CFLAGS += -I$(SRC)/../arch/$(IHKARCH)/kernel/include -I$(SRC)/../lib/include - -OBJDUMP ?= objdump -OBJCOPY ?= objcopy - -# POSTK_DEBUG_ARCH_DEP_26 -ifeq ($(ARCH), arm64) -SUBCMD_OPTS = TARGET=$(TARGET) O=$(CURDIR)/ihk CC=$(CC) LD=$(LD) OBJCOPY=$(OBJCOPY) SRC=$(SRC) ARCH=$(ARCH) -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 $@ - -ld_kern_cmd = $(call echo_cmd,LDKERN,$@)$(ld_kern_cmd_base) -mkimage_cmd = $(call echo_cmd,MKIMAGE,$@)$(mkimage_cmd_base) - -all: depend kernel.img - -kernel.img: $(OBJS) $(IHKOBJ) - $(ld_kern_cmd) - $(mkimage_cmd) - -clean: - $(rm_cmd) $(OBJS) kernel.img kernel.img.elf Makefile.dep - @$(submake) -C $(IHKBASE) $(SUBCMD_OPTS) clean - -depend: Makefile.dep - -Makefile.dep: - $(call dep_cmd,$(DEPSRCS)) - -$(IHKOBJ): FORCE - @mkdir -p $(dir $(IHKOBJ)) - +$(call echo_cmd,BUILD IHK,$(TARGET))$(submake) -C $(IHKBASE) $(SUBCMD_OPTS) prepare - +$(call echo_cmd,BUILD IHK,$(TARGET))$(submake) -C $(IHKBASE) $(SUBCMD_OPTS) - -%.o: $(SRC)/%.c - $(cc_cmd) - -FORCE: - --include Makefile.dep diff --git a/kernel/Makefile.dcfa.in b/kernel/Makefile.dcfa.in deleted file mode 100644 index a7f04274..00000000 --- a/kernel/Makefile.dcfa.in +++ /dev/null @@ -1,97 +0,0 @@ -# Makefile.dcfa.in COPYRIGHT FUJITSU LIMITED 2013-2018 -BUILD_TARGET ?= @TARGET@ -INSTALL_KL_DIR ?= @KERNDIR@ -SRC = $(CURDIR) - -DCFA_MODE ?= umod -IHKBASE ?= $(SRC)/../../ihk/cokernel -O ?= $(CURDIR)/build -V ?= $(VERBOSE) - -N ?= kernel_obj.o -EXTRA_OBJS ?= - -## compile items - -KERNEL = kernel.img -KERNELS = $(addsuffix /$(KERNEL),$(addprefix $(O)/,$(BUILD_TARGET))) - -KERNEL_OBJ = $(addsuffix /$(N),$(addprefix $(O)/,$(BUILD_TARGET))) -KERNEL_MAKEFILE = $(addsuffix /Makefile,$(addprefix $(O)/,$(BUILD_TARGET))) - -## install items - -ifeq ("$(DCFA_MODE)", "kmod") -KERNEL_OBJ_PUB = $(INSTALL_KL_DIR)/$(N) -KERNEL_MAKEFILE_PUB = $(INSTALL_KL_DIR)/Makefile -else -KERNELS_PUB = $(INSTALL_KL_DIR)/$(KERNEL) -KERNEL_MAKEFILE_PUB = $(INSTALL_KL_DIR)/Makefile -endif - -SUBCMD_OPTS = V='$(V)' - -$(if $(O),,$(error Specify the compilation target directory)) -#$(if $(shell ls $(IHKBASE)/Makefile),,\ -# $(error IHK is not found in $(IHKBASE))) - - -.PHONY: all kmod umod clean depend -.SECONDARY: $(KERNEL_MAKEFILE) $(KERNEL_MAKEFILE_PUB) - -all: $(DCFA_MODE) - -install: $(DCFA_MODE)_install - -clean: - rm -rf $(O) - -kmod: $(KERNEL_OBJ) - -umod: $(KERNELS) - -umod_install: - @echo install $(KERNELS_PUB) - @rm -f $(KERNELS_PUB) - @mkdir -p $(dir $(KERNELS_PUB)) - @cp $(KERNELS) $(KERNELS_PUB) - -kmod_install: $(KERNEL_MAKEFILE_PUB) - @echo install $(KERNEL_OBJ_PUB) - @rm -f $(KERNEL_OBJ_PUB) - @cp $(KERNEL_OBJ) $(KERNEL_OBJ_PUB) - -%/kernel.img: %/Makefile - @echo 'Building for' $(dir $@) - @make --no-print-directory -C $(dir $@) $(SUBCMD_OPTS) - -%/$(N): %/Makefile - @echo 'Building for' $(dir $@) - @make kobj --no-print-directory -C $(dir $@) $(SUBCMD_OPTS) - -$(KERNEL_MAKEFILE): Makefile.build.dcfa - rm -f $@ - @mkdir -p $(dir $@) - @echo 'SRC = $(SRC)' > $@ - @echo 'IHKBASE = $(IHKBASE)' >> $@ - @echo 'TARGET = $(notdir $(patsubst %/,%,$(dir $@)))' >> $@ - @echo 'TARGETDIR = $$(shell echo $$(TARGET) | sed "s/-/\//")' >> $@ - @echo 'DCFA_MODE = $(DCFA_MODE)' >> $@ - @echo 'KERNEL_OBJ = $(KERNEL_OBJ)' >> $@ - @echo 'EXTRA_OBJS = $(EXTRA_OBJS)' >> $@ - @echo 'EXTRA_CFLAGS = $(EXTRA_CFLAGS)' >> $@ - @cat $^ >> $@ -# @rm -f $(dir $@)/Makefile.dep - -$(KERNEL_MAKEFILE_PUB): Makefile.build.dcfa.public - @echo install $@ - @rm -f $@ - @mkdir -p $(dir $@) - @echo 'SRC = $(SRC)' > $@ - @echo 'IHKBASE = $(IHKBASE)' >> $@ - @echo 'TARGET = $(BUILD_TARGET)' >> $@ - @echo 'TARGETDIR = $$(shell echo $$(TARGET) | sed "s/-/\//")' >> $@ - @echo 'KERNEL_OBJ = $(KERNEL_OBJ_PUB)' >> $@ - @cat $^ >> $@ - -FORCE: diff --git a/kernel/Makefile.in b/kernel/Makefile.in deleted file mode 100644 index 7bafb8ac..00000000 --- a/kernel/Makefile.in +++ /dev/null @@ -1,56 +0,0 @@ -# Makefile.in COPYRIGHT FUJITSU LIMITED 2013-2018 -BUILD_TARGET ?= @TARGET@ -KERNDIR=@KERNDIR@ -VPATH=@abs_srcdir@ -ARCH ?= @ARCH@ - -ifeq ($(ARCH), arm64) -vdsodir=@abs_builddir@/../arch/$(ARCH)/kernel/vdso -endif - -IHKBASE ?= $(VPATH)/../../ihk/cokernel -O ?= $(CURDIR)/build -V ?= $(VERBOSE) - -KERNEL = kernel.img -KERNELS = $(addsuffix /$(KERNEL),$(addprefix $(O)/,$(BUILD_TARGET))) - -SUBCMD_OPTS = V='$(V)' BUILD_IHK_COKERNEL=@abs_builddir@/../../ihk/cokernel - -$(if $(O),,$(error Specify the compilation target directory)) -#$(if $(shell ls $(IHKBASE)/Makefile),,\ -# $(error IHK is not found in $(IHKBASE))) - -.PHONY: all clean depend install - -all: $(O) $(KERNELS) - -$(O): - mkdir -p $(O) - -%/kernel.img: %/Makefile $(KERNELS) - @echo 'Building for' $(dir $@) - +@make --no-print-directory -C $(dir $@) $(SUBCMD_OPTS) - -%/Makefile: Makefile.build FORCE - @mkdir -p $(dir $@) - @echo 'SRC = $(SRC)' > $@ - @echo 'IHKBASE = $(IHKBASE)' >> $@ - @echo 'TARGET = $(notdir $(patsubst %/,%,$(dir $@)))' >> $@ - @echo 'TARGETDIR = smp/$(ARCH)' >> $@ - @cat Makefile.build >> $@ - @rm -f $(dir $@)/Makefile.dep - -clean: - rm -rf $(O) -ifeq ($(ARCH), arm64) - @rm -f $(vdsodir)/*.o $(vdsodir)/vdso.lds $(vdsodir)/vdso.so* $(vdsodir)/Makefile.dep - @rm -f $(vdsodir)/../include/vdso-offsets.h $(vdsodir)/../include/vdso-so-path.h - @if [ -d $(vdsodir)/../include ]; then rmdir --ignore-fail-on-non-empty $(vdsodir)/../include; fi -endif - -install: - mkdir -p -m 755 $(KERNDIR) - install -m 755 $(O)/$(BUILD_TARGET)/kernel.img $(KERNDIR)/mckernel.img - -FORCE: diff --git a/kernel/config/smp-arm64_type1.lds b/kernel/config/smp-arm64_type1.lds index 41e499dc..c2cd83bd 100644 --- a/kernel/config/smp-arm64_type1.lds +++ b/kernel/config/smp-arm64_type1.lds @@ -26,17 +26,9 @@ SECTIONS *(.rodata .rodata.*) } :data - .vdso : ALIGN(0x1000) { - vdso_page = .; - - . = vdso_page + 0x0000; - *(.vdso.data) - - . = vdso_page + 0x1000; - *(.vdso.text) - - . = ALIGN(0x1000); - } : data = 0xf4 + /* force build-id position somewhere not at start... */ + .note.gnu.build-id : { + } .bss : { *(.bss .bss.*) diff --git a/kernel/config/smp-arm64_type2.lds b/kernel/config/smp-arm64_type2.lds index 6d021d50..97182b3b 100644 --- a/kernel/config/smp-arm64_type2.lds +++ b/kernel/config/smp-arm64_type2.lds @@ -26,17 +26,9 @@ SECTIONS *(.rodata .rodata.*) } :data - .vdso : ALIGN(0x1000) { - vdso_page = .; - - . = vdso_page + 0x0000; - *(.vdso.data) - - . = vdso_page + 0x1000; - *(.vdso.text) - - . = ALIGN(0x1000); - } : data = 0xf4 + /* force build-id position somewhere not at start... */ + .note.gnu.build-id : { + } .bss : { *(.bss .bss.*) diff --git a/kernel/config/smp-arm64_type3.lds b/kernel/config/smp-arm64_type3.lds index c0ea34da..7add4e20 100644 --- a/kernel/config/smp-arm64_type3.lds +++ b/kernel/config/smp-arm64_type3.lds @@ -26,17 +26,9 @@ SECTIONS *(.rodata .rodata.*) } :data - .vdso : ALIGN(0x10000) { - vdso_page = .; - - . = vdso_page + 0x00000; - *(.vdso.data) - - . = vdso_page + 0x10000; - *(.vdso.text) - - . = ALIGN(0x10000); - } : data = 0xf4 + /* force build-id position somewhere not at start... */ + .note.gnu.build-id : { + } .bss : { *(.bss .bss.*) diff --git a/kernel/config/smp-arm64_type4.lds b/kernel/config/smp-arm64_type4.lds index bc166f30..85b97d60 100644 --- a/kernel/config/smp-arm64_type4.lds +++ b/kernel/config/smp-arm64_type4.lds @@ -26,17 +26,9 @@ SECTIONS *(.rodata .rodata.*) } :data - .vdso : ALIGN(0x10000) { - vdso_page = .; - - . = vdso_page + 0x00000; - *(.vdso.data) - - . = vdso_page + 0x10000; - *(.vdso.text) - - . = ALIGN(0x10000); - } : data = 0xf4 + /* force build-id position somewhere not at start... */ + .note.gnu.build-id : { + } .bss : { *(.bss .bss.*) diff --git a/kernel/config/smp-x86.lds b/kernel/config/smp-x86.lds index e03c5da4..a8cfdc0a 100644 --- a/kernel/config/smp-x86.lds +++ b/kernel/config/smp-x86.lds @@ -25,6 +25,10 @@ SECTIONS *(.rodata .rodata.*) } :data + /* force build-id position somewhere not at start... */ + .note.gnu.build-id : { + } + .vsyscall : ALIGN(0x1000) { vsyscall_page = .; diff --git a/scripts/mckernel.spec.in b/scripts/mckernel.spec.in new file mode 100644 index 00000000..6b8a29a0 --- /dev/null +++ b/scripts/mckernel.spec.in @@ -0,0 +1,138 @@ +# mckernel spec file usage: +# cmake /path/to/mckernel && make dist +# rpmbuild -ta mckernel-@MCKERNEL_VERSION@.tar.gz +# +# for cross compilation also pass the following to rpmbuild: +# --target aarch64 -D 'kernel_version ' +# you will need to install the target's kernel-devel package (rpm -i --ignorearch) +# and have your environment setup as per cmake/README.cross_compilation + + +%{!?kernel_version: %define kernel_version @UNAME_R@} +%define krequires %(echo %{kernel_version} | sed "s/.%{_target_cpu}$//") +%define ktag %(echo %{krequires} | tr '-' '_' | sed -e 's/\.el[0-9]*$//' | sed -e 's/\.\([a-zA-Z]\)/_\1/') + +Name: mckernel +Version: @MCKERNEL_VERSION@ +Release: 0_%{ktag}%{?dist} +Summary: IHK/McKernel +License: GPLv2 +Source0: mckernel-%{version}.tar.gz + +BuildRequires: systemd-devel numactl-devel binutils-devel kernel-devel +BuildRequires: %kernel_module_package_buildreqs = %{krequires} + +# kernel_module_package macro does not handle cross build... +%if "%{?_host_cpu}" == "x86_64" && "%{?_target_cpu}" == "aarch64" +%define cross_compile 1 +Requires: kernel = %{krequires} +Requires(post): /usr/sbin/depmod +Requires(postun): /usr/sbin/depmod +%else +%kernel_module_package %{?kmod_flavors} +%endif + +%description +Interface for Heterogeneous Kernels and McKernel. + +%prep +%setup -q + +%build +%if 0%{?cross_compile} +%{!?toolchain_file: %define toolchain_file cmake/cross-aarch64.cmake} +%{!?build_target: %define build_target smp-arm64} +%{!?cmake_libdir: %define cmake_libdir /usr/lib64} +%endif + +# We need to remove ld flags like relro for the final mckernel.img link, as well as remove cflags for mckernel +# ideally mckernel should use different environment variables for the user tools and the kernel tools altogether... +%define __global_ldflags "" +%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -grecord-gcc-switches -mtune=generic + +%cmake -DCMAKE_BUILD_TYPE=Release \ + %{?kernel_version:-DUNAME_R=%{kernel_version}} \ + %{?kernel_version:-DKERNEL_DIR=/usr/src/kernels/%{kernel_version}} \ + %{?cmake_libdir:-DCMAKE_INSTALL_LIBDIR=%{cmake_libdir}} \ + %{?build_target:-DBUILD_TARGET=%{build_target}} \ + %{?toolchain_file:-DCMAKE_TOOLCHAIN_FILE=%{toolchain_file}} \ + . +%make_build + +%install +%make_install + +%files +%ifarch x86_64 +%{_datadir}/mckernel/smp-x86/mckernel.img +%endif +%ifarch aarch64 +%{_datadir}/mckernel/smp-arm64/mckernel.img +%endif +%{_sbindir}/mcreboot.sh +%{_sbindir}/mcstop+release.sh +%{_sbindir}/ihkconfig +%{_sbindir}/ihkosctl +%{_sbindir}/ihkmond +%{_bindir}/mcexec +%{_bindir}/eclair +%{_bindir}/vmcore2mckdump +%{_bindir}/mcstat +%{_libdir}/libihk.so +%{_libdir}/libsched_yield.so.1.0.0 +%{_libdir}/libsched_yield.so +%{_libdir}/libldump2mcdump.so +%{_includedir}/ihklib.h +%{_includedir}/ihk/affinity.h +%{_includedir}/mckernel/ihklib_rusage.h +%{_sysconfdir}/irqbalance_mck.in +%{_sysconfdir}/irqbalance_mck.service +%{_mandir}/man1/mcreboot.1.gz +%{_mandir}/man1/ihkconfig.1.gz +%{_mandir}/man1/ihkosctl.1.gz +%{_mandir}/man1/mcexec.1.gz + +%if 0%{?cross_compile} +/lib/modules/%{kernel_version}/extra/mckernel/ihk.ko +/lib/modules/%{kernel_version}/extra/mckernel/mcctrl.ko +%ifarch x86_64 +/lib/modules/%{kernel_version}/extra/mckernel/ihk-smp-x86_64.ko +%endif +%ifarch aarch64 +/lib/modules/%{kernel_version}/extra/mckernel/ihk-smp-arm64.ko +%endif +%endif + + +%if 0%{?cross_compile} +# scripts from /usr/lib/rpm/redhat/kmodtool (kernel_module_package) as well +%post +if [ -e "/boot/System.map-%{kernel_version}" ]; then + /usr/sbin/depmod -aeF "/boot/System.map-%{kernel_version}" "%{kernel_version}" > /dev/null || : +fi + +modules=( $(find /lib/modules/%{kernel_version}/extra/%{name} | grep '\.ko$') ) +if [ -x "/sbin/weak-modules" ]; then + printf '%s\n' "${modules[@]}" \ + | /sbin/weak-modules --add-modules +fi + +%preun +rpm -ql %{name}-%{version} | grep '\.ko$' > /var/run/rpm-kmod-%{name}-modules + +%postun +if [ -e "/boot/System.map-%{kernel_version}" ]; then + /usr/sbin/depmod -aeF "/boot/System.map-%{kernel_version}" "%{kernel_version}" > /dev/null || : +fi + +modules=( $(cat /var/run/rpm-kmod-%{name}-modules) ) +rm /var/run/rpm-kmod-%{name}-modules +if [ -x "/sbin/weak-modules" ]; then + printf '%s\n' "${modules[@]}" \ + | /sbin/weak-modules --remove-modules +fi +%endif + +%changelog +* Tue Feb 12 2019 Dominique Martinet - 1.6.0-0 +- Initial package diff --git a/tools/mcstat/CMakeLists.txt b/tools/mcstat/CMakeLists.txt new file mode 100644 index 00000000..e4230676 --- /dev/null +++ b/tools/mcstat/CMakeLists.txt @@ -0,0 +1,15 @@ +include_directories( + "${CMAKE_CURRENT_BINARY_DIR}" + "${PROJECT_BINARY_DIR}" + "${PROJECT_BINARY_DIR}/ihk/linux/include/ihk" + "${IHK_FULL_SOURCE_DIR}/linux/include" + "${CMAKE_CURRENT_SOURCE_DIR}/../../executer/include" + "${CMAKE_CURRENT_SOURCE_DIR}" +) + + +add_executable(mcstat mcstat.c) +target_link_libraries(mcstat ihklib) + +install(TARGETS mcstat + DESTINATION "${CMAKE_INSTALL_BINDIR}") diff --git a/tools/mcstat/Makefile.in b/tools/mcstat/Makefile.in deleted file mode 100644 index 1e3414c1..00000000 --- a/tools/mcstat/Makefile.in +++ /dev/null @@ -1,30 +0,0 @@ -CC=@CC@ -MCC=mpicc -BINDIR=@BINDIR@ -SBINDIR=@SBINDIR@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -LIBDIR=@libdir@ -MANDIR=@MANDIR@ -KDIR ?= @KDIR@ -ARCH=@ARCH@ -VPATH=@abs_srcdir@ -IHKDIR ?= $(VPATH)/../../../ihk/linux/include/ -CFLAGS=-Wall -O -I. -I${IHKDIR} -I@abs_srcdir@/../../executer/include -I@abs_builddir@/../../../ihk/linux/include/ihk -LDFLAGS=-L@abs_builddir@/../../../ihk/linux/user -lihk -Wl,-rpath -Wl,$(prefix)/lib @LDFLAGS@ -TARGET=mcstat - -.PHONY: all clean install - -all: $(TARGET) - -mcstat: mcstat.c - $(CC) -I${KDIR} $(CFLAGS) $(EXTRA_CFLAGS) $(LDFLAGS) -o $@ $^ - -clean:: - $(RM) $(TARGET) *.o - -install:: - install -m 755 -d $(MANDIR)/man1 - install -m 644 mcstat.1 $(MANDIR)/man1/mcstat.1 - install -m 755 mcstat $(BINDIR)