From 157b3411dd123694ca29dd80fe9ecc683958ccab Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期四, 27 七月 2023 11:54:24 +0800
Subject: [PATCH] add epoll/poll/select sendmsg/recvmsg transmit fd

---
 build/sample2/CMakeFiles/srv_rcv.dir/cmake_clean.cmake       |   10 
 build/sample2/CMakeFiles/client.dir/depend.internal          |    9 
 build/sample2/CMakeFiles/client.dir/link.txt                 |    1 
 build/sample2/CMakeFiles/progress.marks                      |    1 
 CMakeLists.txt                                               |    7 
 build/CMakeFiles/cmake.check_cache                           |    1 
 sample2/server.cpp                                           |   52 
 build/CMakeFiles/feature_tests.cxx                           |  405 +++
 build/sample2/CMakeFiles/srv_rcv.dir/depend.internal         |    9 
 build/sample2/CMakeFiles/srv_rcv.dir/depend.make             |    9 
 build/sample2/CMakeFiles/srv_rcv.dir/build.make              |   99 
 build/sample2/CMakeFiles/cli_snd.dir/depend.internal         |    9 
 build/src2/CMakeFiles/memfd_shm.dir/link.txt                 |    1 
 build/CMakeFiles/3.13.3/CMakeSystem.cmake                    |   15 
 build/sample2/CMakeFiles/server.dir/CXX.includecache         |   36 
 build/sample2/CMakeFiles/client.dir/cmake_clean.cmake        |   10 
 build/sample2/CMakeFiles/cli_snd.dir/progress.make           |    3 
 build/sample2/CMakeFiles/srv_rcv.dir/CXX.includecache        |   36 
 build/sample2/CMakeFiles/client.dir/build.make               |   99 
 build/sample2/CMakeFiles/client.dir/depend.make              |    9 
 build/Makefile                                               |  204 +
 build/sample2/CMakeFiles/client.dir/CXX.includecache         |   38 
 build/CMakeFiles/3.13.3/CMakeDetermineCompilerABI_C.bin      |    0 
 build/sample2/Makefile                                       |  318 ++
 build/src2/CMakeFiles/memfd_shm.dir/depend.make              |   13 
 build/CMakeFiles/Makefile2                                   |  303 ++
 build/sample2/CMakeFiles/srv_rcv.dir/DependInfo.cmake        |   22 
 build/sample2/CMakeFiles/client.dir/DependInfo.cmake         |   22 
 build/src2/CMakeFiles/progress.marks                         |    1 
 build/sample2/CMakeFiles/srv_rcv.dir/progress.make           |    3 
 sample2/client.cpp                                           |   66 
 build/CMakeFiles/3.13.3/CompilerIdCXX/CMakeCXXCompilerId.cpp |  602 +++++
 build/src2/CMakeFiles/memfd_shm.dir/C.includecache           |   84 
 build/CMakeFiles/TargetDirectories.txt                       |   11 
 build/sample2/CMakeFiles/server.dir/C.includecache           |   28 
 build/sample2/cmake_install.cmake                            |   39 
 sample2/cli_snd.cpp                                          |   81 
 build/CMakeFiles/feature_tests.bin                           |    0 
 build/sample2/CMakeFiles/CMakeDirectoryInformation.cmake     |   16 
 build/sample2/CMakeFiles/cli_snd.dir/build.make              |   99 
 build/CMakeCache.txt                                         |  351 +++
 build/sample2/cli_snd                                        |    0 
 build/CMakeFiles/Makefile.cmake                              |   55 
 build/sample2/CMakeFiles/cli_snd.dir/link.txt                |    1 
 build/cmake_install.cmake                                    |   56 
 build/sample2/CMakeFiles/server.dir/depend.internal          |    9 
 build/sample2/CMakeFiles/client.dir/progress.make            |    3 
 build/CMakeFiles/3.13.3/CMakeCXXCompiler.cmake               |   76 
 build/CMakeFiles/CMakeDirectoryInformation.cmake             |   16 
 build/sample2/CMakeFiles/cli_snd.dir/depend.make             |    9 
 src2/epollfd_shm.h                                           |   46 
 build/CMakeFiles/3.13.3/CompilerIdC/CMakeCCompilerId.c       |  623 +++++
 build/CMakeFiles/3.13.3/CMakeDetermineCompilerABI_CXX.bin    |    0 
 build/sample2/CMakeFiles/srv_rcv.dir/link.txt                |    1 
 build/sample2/srv_rcv                                        |    0 
 build/CMakeFiles/3.13.3/CMakeCCompiler.cmake                 |   73 
 src2/epollfd_shm.c                                           |  604 +++++
 build/CMakeFiles/feature_tests.c                             |   34 
 build/sample2/CMakeFiles/server.dir/flags.make               |   10 
 build/sample2/CMakeFiles/server.dir/cmake_clean.cmake        |   10 
 build/sample2/CMakeFiles/server.dir/progress.make            |    3 
 build/CMakeFiles/CMakeOutput.log                             |  617 +++++
 build/sample2/CMakeFiles/server.dir/DependInfo.cmake         |   22 
 src2/shmh.h                                                  |    8 
 build/sample2/server                                         |    0 
 build/sample2/CMakeFiles/server.dir/link.txt                 |    1 
 build/src2/CMakeFiles/CMakeDirectoryInformation.cmake        |   16 
 build/src2/CMakeFiles/memfd_shm.dir/progress.make            |    5 
 build/src2/CMakeFiles/memfd_shm.dir/build.make               |  128 +
 build/sample2/CMakeFiles/cli_snd.dir/flags.make              |   10 
 build/sample2/CMakeFiles/server.dir/depend.make              |    9 
 sample2/srv_recv.cpp                                         |   53 
 src2/CMakeLists.txt                                          |   12 
 build/sample2/CMakeFiles/client.dir/flags.make               |   10 
 build/src2/Makefile                                          |  240 ++
 build/sample2/CMakeFiles/srv_rcv.dir/flags.make              |   10 
 build/sample2/client                                         |    0 
 build/src2/CMakeFiles/memfd_shm.dir/flags.make               |   10 
 build/sample2/CMakeFiles/cli_snd.dir/DependInfo.cmake        |   22 
 build/src2/cmake_install.cmake                               |   39 
 src2/transfd_shm.c                                           |   90 
 build/src2/CMakeFiles/memfd_shm.dir/depend.internal          |   13 
 build/src2/CMakeFiles/memfd_shm.dir/cmake_clean.cmake        |   12 
 build/src2/CMakeFiles/memfd_shm.dir/DependInfo.cmake         |   22 
 sample2/CMakeLists.txt                                       |   19 
 build/sample2/CMakeFiles/cli_snd.dir/CXX.includecache        |   36 
 src2/transfd_shm.h                                           |   21 
 src2/memfd_shm.c                                             |  103 
 build/sample2/CMakeFiles/cli_snd.dir/cmake_clean.cmake       |   10 
 build/CMakeFiles/progress.marks                              |    1 
 src2/memfd_shm.h                                             |   19 
 build/sample2/CMakeFiles/server.dir/build.make               |   99 
 92 files changed, 6,406 insertions(+), 2 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 25e6547..c0bc258 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,6 +1,9 @@
 cmake_minimum_required(VERSION 3.9)
 project(memfd)
 set(CMAKE_CFLAGS "${CMAKE_C_FLAGS} -fPIC")
-add_subdirectory(src)
-add_subdirectory(sample)
+# add_subdirectory(src)
+# add_subdirectory(sample)
 
+# add src2
+add_subdirectory(src2)
+add_subdirectory(sample2)
\ No newline at end of file
diff --git a/build/CMakeCache.txt b/build/CMakeCache.txt
new file mode 100644
index 0000000..800960f
--- /dev/null
+++ b/build/CMakeCache.txt
@@ -0,0 +1,351 @@
+# This is the CMakeCache file.
+# For build in directory: /home/basic/workspace/code/go/vaproc/repository/memfd/build
+# It was generated by CMake: /usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake
+# You can edit this file to change values found and used by cmake.
+# If you do not want to change any of the values, simply exit the editor.
+# If you do want to change a value, simply edit, save, and exit the editor.
+# The syntax for the file is as follows:
+# KEY:TYPE=VALUE
+# KEY is the name of a variable in the cache.
+# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
+# VALUE is the current value for the KEY.
+
+########################
+# EXTERNAL cache entries
+########################
+
+//Path to a program.
+CMAKE_AR:FILEPATH=/usr/bin/ar
+
+//Choose the type of build, options are: None Debug Release RelWithDebInfo
+// MinSizeRel ...
+CMAKE_BUILD_TYPE:STRING=
+
+//Enable/Disable color output during build.
+CMAKE_COLOR_MAKEFILE:BOOL=ON
+
+//CXX compiler
+CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++
+
+//A wrapper around 'ar' adding the appropriate '--plugin' option
+// for the GCC compiler
+CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-5
+
+//A wrapper around 'ranlib' adding the appropriate '--plugin' option
+// for the GCC compiler
+CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-5
+
+//Flags used by the CXX compiler during all build types.
+CMAKE_CXX_FLAGS:STRING=
+
+//Flags used by the CXX compiler during DEBUG builds.
+CMAKE_CXX_FLAGS_DEBUG:STRING=-g
+
+//Flags used by the CXX compiler during MINSIZEREL builds.
+CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
+
+//Flags used by the CXX compiler during RELEASE builds.
+CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
+
+//Flags used by the CXX compiler during RELWITHDEBINFO builds.
+CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
+
+//C compiler
+CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc
+
+//A wrapper around 'ar' adding the appropriate '--plugin' option
+// for the GCC compiler
+CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-5
+
+//A wrapper around 'ranlib' adding the appropriate '--plugin' option
+// for the GCC compiler
+CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-5
+
+//Flags used by the C compiler during all build types.
+CMAKE_C_FLAGS:STRING=
+
+//Flags used by the C compiler during DEBUG builds.
+CMAKE_C_FLAGS_DEBUG:STRING=-g
+
+//Flags used by the C compiler during MINSIZEREL builds.
+CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
+
+//Flags used by the C compiler during RELEASE builds.
+CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
+
+//Flags used by the C compiler during RELWITHDEBINFO builds.
+CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
+
+//Flags used by the linker during all build types.
+CMAKE_EXE_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during DEBUG builds.
+CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during MINSIZEREL builds.
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during RELEASE builds.
+CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during RELWITHDEBINFO builds.
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Enable/Disable output of compile commands during generation.
+CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF
+
+//Install path prefix, prepended onto install directories.
+CMAKE_INSTALL_PREFIX:PATH=/usr/local
+
+//Path to a program.
+CMAKE_LINKER:FILEPATH=/usr/bin/ld
+
+//Path to a program.
+CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make
+
+//Flags used by the linker during the creation of modules during
+// all build types.
+CMAKE_MODULE_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during the creation of modules during
+// DEBUG builds.
+CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during the creation of modules during
+// MINSIZEREL builds.
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during the creation of modules during
+// RELEASE builds.
+CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during the creation of modules during
+// RELWITHDEBINFO builds.
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Path to a program.
+CMAKE_NM:FILEPATH=/usr/bin/nm
+
+//Path to a program.
+CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy
+
+//Path to a program.
+CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump
+
+//Value Computed by CMake
+CMAKE_PROJECT_DESCRIPTION:STATIC=
+
+//Value Computed by CMake
+CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
+
+//Value Computed by CMake
+CMAKE_PROJECT_NAME:STATIC=memfd
+
+//Path to a program.
+CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib
+
+//Flags used by the linker during the creation of shared libraries
+// during all build types.
+CMAKE_SHARED_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during the creation of shared libraries
+// during DEBUG builds.
+CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during the creation of shared libraries
+// during MINSIZEREL builds.
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during the creation of shared libraries
+// during RELEASE builds.
+CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during the creation of shared libraries
+// during RELWITHDEBINFO builds.
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//If set, runtime paths are not added when installing shared libraries,
+// but are added when building.
+CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
+
+//If set, runtime paths are not added when using shared libraries.
+CMAKE_SKIP_RPATH:BOOL=NO
+
+//Flags used by the linker during the creation of static libraries
+// during all build types.
+CMAKE_STATIC_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during the creation of static libraries
+// during DEBUG builds.
+CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during the creation of static libraries
+// during MINSIZEREL builds.
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during the creation of static libraries
+// during RELEASE builds.
+CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during the creation of static libraries
+// during RELWITHDEBINFO builds.
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Path to a program.
+CMAKE_STRIP:FILEPATH=/usr/bin/strip
+
+//If this value is on, makefiles will be generated without the
+// .SILENT directive, and all commands will be echoed to the console
+// during the make.  This is useful for debugging only. With Visual
+// Studio IDE projects all commands are done without /nologo.
+CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
+
+//Value Computed by CMake
+memfd_BINARY_DIR:STATIC=/home/basic/workspace/code/go/vaproc/repository/memfd/build
+
+//Value Computed by CMake
+memfd_SOURCE_DIR:STATIC=/home/basic/workspace/code/go/vaproc/repository/memfd
+
+
+########################
+# INTERNAL cache entries
+########################
+
+//ADVANCED property for variable: CMAKE_AR
+CMAKE_AR-ADVANCED:INTERNAL=1
+//This is the directory where this CMakeCache.txt was created
+CMAKE_CACHEFILE_DIR:INTERNAL=/home/basic/workspace/code/go/vaproc/repository/memfd/build
+//Major version of cmake used to create the current loaded cache
+CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
+//Minor version of cmake used to create the current loaded cache
+CMAKE_CACHE_MINOR_VERSION:INTERNAL=13
+//Patch version of cmake used to create the current loaded cache
+CMAKE_CACHE_PATCH_VERSION:INTERNAL=3
+//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
+CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
+//Path to CMake executable.
+CMAKE_COMMAND:INTERNAL=/usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake
+//Path to cpack program executable.
+CMAKE_CPACK_COMMAND:INTERNAL=/usr/local/lib/python2.7/dist-packages/cmake/data/bin/cpack
+//Path to ctest program executable.
+CMAKE_CTEST_COMMAND:INTERNAL=/usr/local/lib/python2.7/dist-packages/cmake/data/bin/ctest
+//ADVANCED property for variable: CMAKE_CXX_COMPILER
+CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR
+CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB
+CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS
+CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
+CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
+CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
+CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
+CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_COMPILER
+CMAKE_C_COMPILER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_COMPILER_AR
+CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB
+CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS
+CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
+CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
+CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
+CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
+CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//Executable file format
+CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
+CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
+CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
+CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
+CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
+//Name of external makefile project generator.
+CMAKE_EXTRA_GENERATOR:INTERNAL=
+//Name of generator.
+CMAKE_GENERATOR:INTERNAL=Unix Makefiles
+//Generator instance identifier.
+CMAKE_GENERATOR_INSTANCE:INTERNAL=
+//Name of generator platform.
+CMAKE_GENERATOR_PLATFORM:INTERNAL=
+//Name of generator toolset.
+CMAKE_GENERATOR_TOOLSET:INTERNAL=
+//Source directory with the top level CMakeLists.txt file for this
+// project
+CMAKE_HOME_DIRECTORY:INTERNAL=/home/basic/workspace/code/go/vaproc/repository/memfd
+//Install .so files without execute permission.
+CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1
+//ADVANCED property for variable: CMAKE_LINKER
+CMAKE_LINKER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MAKE_PROGRAM
+CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
+CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
+CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
+CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_NM
+CMAKE_NM-ADVANCED:INTERNAL=1
+//number of local generators
+CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=3
+//ADVANCED property for variable: CMAKE_OBJCOPY
+CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_OBJDUMP
+CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
+//Platform information initialized
+CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_RANLIB
+CMAKE_RANLIB-ADVANCED:INTERNAL=1
+//Path to CMake installation.
+CMAKE_ROOT:INTERNAL=/usr/local/lib/python2.7/dist-packages/cmake/data/share/cmake-3.13
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
+CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
+CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
+CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
+CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_RPATH
+CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
+CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
+CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
+CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STRIP
+CMAKE_STRIP-ADVANCED:INTERNAL=1
+//uname command
+CMAKE_UNAME:INTERNAL=/bin/uname
+//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
+CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
+
diff --git a/build/CMakeFiles/3.13.3/CMakeCCompiler.cmake b/build/CMakeFiles/3.13.3/CMakeCCompiler.cmake
new file mode 100644
index 0000000..e033238
--- /dev/null
+++ b/build/CMakeFiles/3.13.3/CMakeCCompiler.cmake
@@ -0,0 +1,73 @@
+set(CMAKE_C_COMPILER "/usr/bin/cc")
+set(CMAKE_C_COMPILER_ARG1 "")
+set(CMAKE_C_COMPILER_ID "GNU")
+set(CMAKE_C_COMPILER_VERSION "5.4.0")
+set(CMAKE_C_COMPILER_VERSION_INTERNAL "")
+set(CMAKE_C_COMPILER_WRAPPER "")
+set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11")
+set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert")
+set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes")
+set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros")
+set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert")
+
+set(CMAKE_C_PLATFORM_ID "Linux")
+set(CMAKE_C_SIMULATE_ID "")
+set(CMAKE_C_SIMULATE_VERSION "")
+
+
+
+set(CMAKE_AR "/usr/bin/ar")
+set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-5")
+set(CMAKE_RANLIB "/usr/bin/ranlib")
+set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-5")
+set(CMAKE_LINKER "/usr/bin/ld")
+set(CMAKE_COMPILER_IS_GNUCC 1)
+set(CMAKE_C_COMPILER_LOADED 1)
+set(CMAKE_C_COMPILER_WORKS TRUE)
+set(CMAKE_C_ABI_COMPILED TRUE)
+set(CMAKE_COMPILER_IS_MINGW )
+set(CMAKE_COMPILER_IS_CYGWIN )
+if(CMAKE_COMPILER_IS_CYGWIN)
+  set(CYGWIN 1)
+  set(UNIX 1)
+endif()
+
+set(CMAKE_C_COMPILER_ENV_VAR "CC")
+
+if(CMAKE_COMPILER_IS_MINGW)
+  set(MINGW 1)
+endif()
+set(CMAKE_C_COMPILER_ID_RUN 1)
+set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
+set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
+set(CMAKE_C_LINKER_PREFERENCE 10)
+
+# Save compiler ABI information.
+set(CMAKE_C_SIZEOF_DATA_PTR "8")
+set(CMAKE_C_COMPILER_ABI "ELF")
+set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
+
+if(CMAKE_C_SIZEOF_DATA_PTR)
+  set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
+endif()
+
+if(CMAKE_C_COMPILER_ABI)
+  set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
+endif()
+
+if(CMAKE_C_LIBRARY_ARCHITECTURE)
+  set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
+endif()
+
+set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "")
+if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
+  set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
+endif()
+
+
+
+
+
+set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s")
+set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib")
+set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
diff --git a/build/CMakeFiles/3.13.3/CMakeCXXCompiler.cmake b/build/CMakeFiles/3.13.3/CMakeCXXCompiler.cmake
new file mode 100644
index 0000000..53b865d
--- /dev/null
+++ b/build/CMakeFiles/3.13.3/CMakeCXXCompiler.cmake
@@ -0,0 +1,76 @@
+set(CMAKE_CXX_COMPILER "/usr/bin/c++")
+set(CMAKE_CXX_COMPILER_ARG1 "")
+set(CMAKE_CXX_COMPILER_ID "GNU")
+set(CMAKE_CXX_COMPILER_VERSION "5.4.0")
+set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "")
+set(CMAKE_CXX_COMPILER_WRAPPER "")
+set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "98")
+set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17")
+set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters")
+set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")
+set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
+set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17")
+set(CMAKE_CXX20_COMPILE_FEATURES "")
+
+set(CMAKE_CXX_PLATFORM_ID "Linux")
+set(CMAKE_CXX_SIMULATE_ID "")
+set(CMAKE_CXX_SIMULATE_VERSION "")
+
+
+
+set(CMAKE_AR "/usr/bin/ar")
+set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-5")
+set(CMAKE_RANLIB "/usr/bin/ranlib")
+set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-5")
+set(CMAKE_LINKER "/usr/bin/ld")
+set(CMAKE_COMPILER_IS_GNUCXX 1)
+set(CMAKE_CXX_COMPILER_LOADED 1)
+set(CMAKE_CXX_COMPILER_WORKS TRUE)
+set(CMAKE_CXX_ABI_COMPILED TRUE)
+set(CMAKE_COMPILER_IS_MINGW )
+set(CMAKE_COMPILER_IS_CYGWIN )
+if(CMAKE_COMPILER_IS_CYGWIN)
+  set(CYGWIN 1)
+  set(UNIX 1)
+endif()
+
+set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
+
+if(CMAKE_COMPILER_IS_MINGW)
+  set(MINGW 1)
+endif()
+set(CMAKE_CXX_COMPILER_ID_RUN 1)
+set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
+set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP)
+set(CMAKE_CXX_LINKER_PREFERENCE 30)
+set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
+
+# Save compiler ABI information.
+set(CMAKE_CXX_SIZEOF_DATA_PTR "8")
+set(CMAKE_CXX_COMPILER_ABI "ELF")
+set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
+
+if(CMAKE_CXX_SIZEOF_DATA_PTR)
+  set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
+endif()
+
+if(CMAKE_CXX_COMPILER_ABI)
+  set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
+endif()
+
+if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
+  set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu")
+endif()
+
+set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "")
+if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)
+  set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")
+endif()
+
+
+
+
+
+set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc")
+set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib")
+set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
diff --git a/build/CMakeFiles/3.13.3/CMakeDetermineCompilerABI_C.bin b/build/CMakeFiles/3.13.3/CMakeDetermineCompilerABI_C.bin
new file mode 100755
index 0000000..dafdfa7
--- /dev/null
+++ b/build/CMakeFiles/3.13.3/CMakeDetermineCompilerABI_C.bin
Binary files differ
diff --git a/build/CMakeFiles/3.13.3/CMakeDetermineCompilerABI_CXX.bin b/build/CMakeFiles/3.13.3/CMakeDetermineCompilerABI_CXX.bin
new file mode 100755
index 0000000..f9e1b87
--- /dev/null
+++ b/build/CMakeFiles/3.13.3/CMakeDetermineCompilerABI_CXX.bin
Binary files differ
diff --git a/build/CMakeFiles/3.13.3/CMakeSystem.cmake b/build/CMakeFiles/3.13.3/CMakeSystem.cmake
new file mode 100644
index 0000000..c12c28b
--- /dev/null
+++ b/build/CMakeFiles/3.13.3/CMakeSystem.cmake
@@ -0,0 +1,15 @@
+set(CMAKE_HOST_SYSTEM "Linux-4.15.0-142-generic")
+set(CMAKE_HOST_SYSTEM_NAME "Linux")
+set(CMAKE_HOST_SYSTEM_VERSION "4.15.0-142-generic")
+set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
+
+
+
+set(CMAKE_SYSTEM "Linux-4.15.0-142-generic")
+set(CMAKE_SYSTEM_NAME "Linux")
+set(CMAKE_SYSTEM_VERSION "4.15.0-142-generic")
+set(CMAKE_SYSTEM_PROCESSOR "x86_64")
+
+set(CMAKE_CROSSCOMPILING "FALSE")
+
+set(CMAKE_SYSTEM_LOADED 1)
diff --git a/build/CMakeFiles/3.13.3/CompilerIdC/CMakeCCompilerId.c b/build/CMakeFiles/3.13.3/CompilerIdC/CMakeCCompilerId.c
new file mode 100644
index 0000000..bfc6ebb
--- /dev/null
+++ b/build/CMakeFiles/3.13.3/CompilerIdC/CMakeCCompilerId.c
@@ -0,0 +1,623 @@
+#ifdef __cplusplus
+# error "A C++ compiler has been selected for C."
+#endif
+
+#if defined(__18CXX)
+# define ID_VOID_MAIN
+#endif
+#if defined(__CLASSIC_C__)
+/* cv-qualifiers did not exist in K&R C */
+# define const
+# define volatile
+#endif
+
+
+/* Version number components: V=Version, R=Revision, P=Patch
+   Version date components:   YYYY=Year, MM=Month,   DD=Day  */
+
+#if defined(__INTEL_COMPILER) || defined(__ICC)
+# define COMPILER_ID "Intel"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+  /* __INTEL_COMPILER = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
+# if defined(__INTEL_COMPILER_UPDATE)
+#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
+# else
+#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER   % 10)
+# endif
+# if defined(__INTEL_COMPILER_BUILD_DATE)
+  /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
+#  define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
+# endif
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__PATHCC__)
+# define COMPILER_ID "PathScale"
+# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
+# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
+# if defined(__PATHCC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
+# endif
+
+#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
+# define COMPILER_ID "Embarcadero"
+# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
+# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
+# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__     & 0xFFFF)
+
+#elif defined(__BORLANDC__)
+# define COMPILER_ID "Borland"
+  /* __BORLANDC__ = 0xVRR */
+# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
+# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
+
+#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
+# define COMPILER_ID "Watcom"
+   /* __WATCOMC__ = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__WATCOMC__)
+# define COMPILER_ID "OpenWatcom"
+   /* __WATCOMC__ = VVRP + 1100 */
+# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__SUNPRO_C)
+# define COMPILER_ID "SunPro"
+# if __SUNPRO_C >= 0x5100
+   /* __SUNPRO_C = 0xVRRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_C    & 0xF)
+# else
+   /* __SUNPRO_CC = 0xVRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_C    & 0xF)
+# endif
+
+#elif defined(__HP_cc)
+# define COMPILER_ID "HP"
+  /* __HP_cc = VVRRPP */
+# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)
+# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__HP_cc     % 100)
+
+#elif defined(__DECC)
+# define COMPILER_ID "Compaq"
+  /* __DECC_VER = VVRRTPPPP */
+# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)
+# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000  % 100)
+# define COMPILER_VERSION_PATCH DEC(__DECC_VER         % 10000)
+
+#elif defined(__IBMC__) && defined(__COMPILER_VER__)
+# define COMPILER_ID "zOS"
+# if defined(__ibmxl__)
+#  define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
+#  define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
+#  define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
+#  define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
+# else
+   /* __IBMC__ = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+#  define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)
+# endif
+
+
+#elif defined(__ibmxl__) || (defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800)
+# define COMPILER_ID "XL"
+# if defined(__ibmxl__)
+#  define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
+#  define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
+#  define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
+#  define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
+# else
+   /* __IBMC__ = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+#  define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)
+# endif
+
+
+#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800
+# define COMPILER_ID "VisualAge"
+# if defined(__ibmxl__)
+#  define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
+#  define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
+#  define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
+#  define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
+# else
+   /* __IBMC__ = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+#  define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)
+# endif
+
+
+#elif defined(__PGI)
+# define COMPILER_ID "PGI"
+# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
+# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
+# if defined(__PGIC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
+# endif
+
+#elif defined(_CRAYC)
+# define COMPILER_ID "Cray"
+# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
+# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
+
+#elif defined(__TI_COMPILER_VERSION__)
+# define COMPILER_ID "TI"
+  /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
+# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
+# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000   % 1000)
+# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__        % 1000)
+
+#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
+# define COMPILER_ID "Fujitsu"
+
+#elif defined(__TINYC__)
+# define COMPILER_ID "TinyCC"
+
+#elif defined(__BCC__)
+# define COMPILER_ID "Bruce"
+
+#elif defined(__SCO_VERSION__)
+# define COMPILER_ID "SCO"
+
+#elif defined(__clang__) && defined(__apple_build_version__)
+# define COMPILER_ID "AppleClang"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
+
+#elif defined(__clang__)
+# define COMPILER_ID "Clang"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__GNUC__)
+# define COMPILER_ID "GNU"
+# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
+# if defined(__GNUC_MINOR__)
+#  define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif defined(_MSC_VER)
+# define COMPILER_ID "MSVC"
+  /* _MSC_VER = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
+# if defined(_MSC_FULL_VER)
+#  if _MSC_VER >= 1400
+    /* _MSC_FULL_VER = VVRRPPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
+#  else
+    /* _MSC_FULL_VER = VVRRPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
+#  endif
+# endif
+# if defined(_MSC_BUILD)
+#  define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
+# endif
+
+#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
+# define COMPILER_ID "ADSP"
+#if defined(__VISUALDSPVERSION__)
+  /* __VISUALDSPVERSION__ = 0xVVRRPP00 */
+# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
+# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8  & 0xFF)
+#endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# define COMPILER_ID "IAR"
+# if defined(__VER__)
+#  define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
+#  define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
+#  define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
+#  define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
+# endif
+
+#elif defined(__ARMCC_VERSION)
+# define COMPILER_ID "ARMCC"
+#if __ARMCC_VERSION >= 1000000
+  /* __ARMCC_VERSION = VRRPPPP */
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION     % 10000)
+#else
+  /* __ARMCC_VERSION = VRPPPP */
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION    % 10000)
+#endif
+
+
+#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC)
+# define COMPILER_ID "SDCC"
+# if defined(__SDCC_VERSION_MAJOR)
+#  define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR)
+#  define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR)
+#  define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH)
+# else
+  /* SDCC = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(SDCC/100)
+#  define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(SDCC    % 10)
+# endif
+
+#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION)
+# define COMPILER_ID "MIPSpro"
+# if defined(_SGI_COMPILER_VERSION)
+  /* _SGI_COMPILER_VERSION = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100)
+#  define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION    % 10)
+# else
+  /* _COMPILER_VERSION = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100)
+#  define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION    % 10)
+# endif
+
+
+/* These compilers are either not known or too old to define an
+  identification macro.  Try to identify the platform and guess that
+  it is the native compiler.  */
+#elif defined(__sgi)
+# define COMPILER_ID "MIPSpro"
+
+#elif defined(__hpux) || defined(__hpua)
+# define COMPILER_ID "HP"
+
+#else /* unknown compiler */
+# define COMPILER_ID ""
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
+#ifdef SIMULATE_ID
+char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
+#endif
+
+#ifdef __QNXNTO__
+char const* qnxnto = "INFO" ":" "qnxnto[]";
+#endif
+
+#if defined(__CRAYXE) || defined(__CRAYXC)
+char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
+#endif
+
+#define STRINGIFY_HELPER(X) #X
+#define STRINGIFY(X) STRINGIFY_HELPER(X)
+
+/* Identify known platforms by name.  */
+#if defined(__linux) || defined(__linux__) || defined(linux)
+# define PLATFORM_ID "Linux"
+
+#elif defined(__CYGWIN__)
+# define PLATFORM_ID "Cygwin"
+
+#elif defined(__MINGW32__)
+# define PLATFORM_ID "MinGW"
+
+#elif defined(__APPLE__)
+# define PLATFORM_ID "Darwin"
+
+#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+# define PLATFORM_ID "Windows"
+
+#elif defined(__FreeBSD__) || defined(__FreeBSD)
+# define PLATFORM_ID "FreeBSD"
+
+#elif defined(__NetBSD__) || defined(__NetBSD)
+# define PLATFORM_ID "NetBSD"
+
+#elif defined(__OpenBSD__) || defined(__OPENBSD)
+# define PLATFORM_ID "OpenBSD"
+
+#elif defined(__sun) || defined(sun)
+# define PLATFORM_ID "SunOS"
+
+#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
+# define PLATFORM_ID "AIX"
+
+#elif defined(__sgi) || defined(__sgi__) || defined(_SGI)
+# define PLATFORM_ID "IRIX"
+
+#elif defined(__hpux) || defined(__hpux__)
+# define PLATFORM_ID "HP-UX"
+
+#elif defined(__HAIKU__)
+# define PLATFORM_ID "Haiku"
+
+#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
+# define PLATFORM_ID "BeOS"
+
+#elif defined(__QNX__) || defined(__QNXNTO__)
+# define PLATFORM_ID "QNX"
+
+#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
+# define PLATFORM_ID "Tru64"
+
+#elif defined(__riscos) || defined(__riscos__)
+# define PLATFORM_ID "RISCos"
+
+#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
+# define PLATFORM_ID "SINIX"
+
+#elif defined(__UNIX_SV__)
+# define PLATFORM_ID "UNIX_SV"
+
+#elif defined(__bsdos__)
+# define PLATFORM_ID "BSDOS"
+
+#elif defined(_MPRAS) || defined(MPRAS)
+# define PLATFORM_ID "MP-RAS"
+
+#elif defined(__osf) || defined(__osf__)
+# define PLATFORM_ID "OSF1"
+
+#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
+# define PLATFORM_ID "SCO_SV"
+
+#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
+# define PLATFORM_ID "ULTRIX"
+
+#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
+# define PLATFORM_ID "Xenix"
+
+#elif defined(__WATCOMC__)
+# if defined(__LINUX__)
+#  define PLATFORM_ID "Linux"
+
+# elif defined(__DOS__)
+#  define PLATFORM_ID "DOS"
+
+# elif defined(__OS2__)
+#  define PLATFORM_ID "OS2"
+
+# elif defined(__WINDOWS__)
+#  define PLATFORM_ID "Windows3x"
+
+# else /* unknown platform */
+#  define PLATFORM_ID
+# endif
+
+#else /* unknown platform */
+# define PLATFORM_ID
+
+#endif
+
+/* For windows compilers MSVC and Intel we can determine
+   the architecture of the compiler being used.  This is because
+   the compilers do not have flags that can change the architecture,
+   but rather depend on which compiler is being used
+*/
+#if defined(_WIN32) && defined(_MSC_VER)
+# if defined(_M_IA64)
+#  define ARCHITECTURE_ID "IA64"
+
+# elif defined(_M_X64) || defined(_M_AMD64)
+#  define ARCHITECTURE_ID "x64"
+
+# elif defined(_M_IX86)
+#  define ARCHITECTURE_ID "X86"
+
+# elif defined(_M_ARM64)
+#  define ARCHITECTURE_ID "ARM64"
+
+# elif defined(_M_ARM)
+#  if _M_ARM == 4
+#   define ARCHITECTURE_ID "ARMV4I"
+#  elif _M_ARM == 5
+#   define ARCHITECTURE_ID "ARMV5I"
+#  else
+#   define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
+#  endif
+
+# elif defined(_M_MIPS)
+#  define ARCHITECTURE_ID "MIPS"
+
+# elif defined(_M_SH)
+#  define ARCHITECTURE_ID "SHx"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__WATCOMC__)
+# if defined(_M_I86)
+#  define ARCHITECTURE_ID "I86"
+
+# elif defined(_M_IX86)
+#  define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# if defined(__ICCARM__)
+#  define ARCHITECTURE_ID "ARM"
+
+# elif defined(__ICCAVR__)
+#  define ARCHITECTURE_ID "AVR"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+#else
+#  define ARCHITECTURE_ID
+#endif
+
+/* Convert integer to decimal digit literals.  */
+#define DEC(n)                   \
+  ('0' + (((n) / 10000000)%10)), \
+  ('0' + (((n) / 1000000)%10)),  \
+  ('0' + (((n) / 100000)%10)),   \
+  ('0' + (((n) / 10000)%10)),    \
+  ('0' + (((n) / 1000)%10)),     \
+  ('0' + (((n) / 100)%10)),      \
+  ('0' + (((n) / 10)%10)),       \
+  ('0' +  ((n) % 10))
+
+/* Convert integer to hex digit literals.  */
+#define HEX(n)             \
+  ('0' + ((n)>>28 & 0xF)), \
+  ('0' + ((n)>>24 & 0xF)), \
+  ('0' + ((n)>>20 & 0xF)), \
+  ('0' + ((n)>>16 & 0xF)), \
+  ('0' + ((n)>>12 & 0xF)), \
+  ('0' + ((n)>>8  & 0xF)), \
+  ('0' + ((n)>>4  & 0xF)), \
+  ('0' + ((n)     & 0xF))
+
+/* Construct a string literal encoding the version number components. */
+#ifdef COMPILER_VERSION_MAJOR
+char const info_version[] = {
+  'I', 'N', 'F', 'O', ':',
+  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
+  COMPILER_VERSION_MAJOR,
+# ifdef COMPILER_VERSION_MINOR
+  '.', COMPILER_VERSION_MINOR,
+#  ifdef COMPILER_VERSION_PATCH
+   '.', COMPILER_VERSION_PATCH,
+#   ifdef COMPILER_VERSION_TWEAK
+    '.', COMPILER_VERSION_TWEAK,
+#   endif
+#  endif
+# endif
+  ']','\0'};
+#endif
+
+/* Construct a string literal encoding the internal version number. */
+#ifdef COMPILER_VERSION_INTERNAL
+char const info_version_internal[] = {
+  'I', 'N', 'F', 'O', ':',
+  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
+  'i','n','t','e','r','n','a','l','[',
+  COMPILER_VERSION_INTERNAL,']','\0'};
+#endif
+
+/* Construct a string literal encoding the version number components. */
+#ifdef SIMULATE_VERSION_MAJOR
+char const info_simulate_version[] = {
+  'I', 'N', 'F', 'O', ':',
+  's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
+  SIMULATE_VERSION_MAJOR,
+# ifdef SIMULATE_VERSION_MINOR
+  '.', SIMULATE_VERSION_MINOR,
+#  ifdef SIMULATE_VERSION_PATCH
+   '.', SIMULATE_VERSION_PATCH,
+#   ifdef SIMULATE_VERSION_TWEAK
+    '.', SIMULATE_VERSION_TWEAK,
+#   endif
+#  endif
+# endif
+  ']','\0'};
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
+char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
+
+
+
+
+#if !defined(__STDC__)
+# if (defined(_MSC_VER) && !defined(__clang__)) \
+  || (defined(__ibmxl__) || defined(__IBMC__))
+#  define C_DIALECT "90"
+# else
+#  define C_DIALECT
+# endif
+#elif __STDC_VERSION__ >= 201000L
+# define C_DIALECT "11"
+#elif __STDC_VERSION__ >= 199901L
+# define C_DIALECT "99"
+#else
+# define C_DIALECT "90"
+#endif
+const char* info_language_dialect_default =
+  "INFO" ":" "dialect_default[" C_DIALECT "]";
+
+/*--------------------------------------------------------------------------*/
+
+#ifdef ID_VOID_MAIN
+void main() {}
+#else
+# if defined(__CLASSIC_C__)
+int main(argc, argv) int argc; char *argv[];
+# else
+int main(int argc, char* argv[])
+# endif
+{
+  int require = 0;
+  require += info_compiler[argc];
+  require += info_platform[argc];
+  require += info_arch[argc];
+#ifdef COMPILER_VERSION_MAJOR
+  require += info_version[argc];
+#endif
+#ifdef COMPILER_VERSION_INTERNAL
+  require += info_version_internal[argc];
+#endif
+#ifdef SIMULATE_ID
+  require += info_simulate[argc];
+#endif
+#ifdef SIMULATE_VERSION_MAJOR
+  require += info_simulate_version[argc];
+#endif
+#if defined(__CRAYXE) || defined(__CRAYXC)
+  require += info_cray[argc];
+#endif
+  require += info_language_dialect_default[argc];
+  (void)argv;
+  return require;
+}
+#endif
diff --git a/build/CMakeFiles/3.13.3/CompilerIdCXX/CMakeCXXCompilerId.cpp b/build/CMakeFiles/3.13.3/CompilerIdCXX/CMakeCXXCompilerId.cpp
new file mode 100644
index 0000000..b728b63
--- /dev/null
+++ b/build/CMakeFiles/3.13.3/CompilerIdCXX/CMakeCXXCompilerId.cpp
@@ -0,0 +1,602 @@
+/* This source file must have a .cpp extension so that all C++ compilers
+   recognize the extension without flags.  Borland does not know .cxx for
+   example.  */
+#ifndef __cplusplus
+# error "A C compiler has been selected for C++."
+#endif
+
+
+/* Version number components: V=Version, R=Revision, P=Patch
+   Version date components:   YYYY=Year, MM=Month,   DD=Day  */
+
+#if defined(__COMO__)
+# define COMPILER_ID "Comeau"
+  /* __COMO_VERSION__ = VRR */
+# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100)
+# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100)
+
+#elif defined(__INTEL_COMPILER) || defined(__ICC)
+# define COMPILER_ID "Intel"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+  /* __INTEL_COMPILER = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
+# if defined(__INTEL_COMPILER_UPDATE)
+#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
+# else
+#  define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER   % 10)
+# endif
+# if defined(__INTEL_COMPILER_BUILD_DATE)
+  /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
+#  define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
+# endif
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__PATHCC__)
+# define COMPILER_ID "PathScale"
+# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
+# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
+# if defined(__PATHCC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
+# endif
+
+#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
+# define COMPILER_ID "Embarcadero"
+# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
+# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
+# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__     & 0xFFFF)
+
+#elif defined(__BORLANDC__)
+# define COMPILER_ID "Borland"
+  /* __BORLANDC__ = 0xVRR */
+# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
+# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
+
+#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
+# define COMPILER_ID "Watcom"
+   /* __WATCOMC__ = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__WATCOMC__)
+# define COMPILER_ID "OpenWatcom"
+   /* __WATCOMC__ = VVRP + 1100 */
+# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__SUNPRO_CC)
+# define COMPILER_ID "SunPro"
+# if __SUNPRO_CC >= 0x5100
+   /* __SUNPRO_CC = 0xVRRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC    & 0xF)
+# else
+   /* __SUNPRO_CC = 0xVRP */
+#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
+#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
+#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC    & 0xF)
+# endif
+
+#elif defined(__HP_aCC)
+# define COMPILER_ID "HP"
+  /* __HP_aCC = VVRRPP */
+# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
+# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__HP_aCC     % 100)
+
+#elif defined(__DECCXX)
+# define COMPILER_ID "Compaq"
+  /* __DECCXX_VER = VVRRTPPPP */
+# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
+# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000  % 100)
+# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER         % 10000)
+
+#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)
+# define COMPILER_ID "zOS"
+# if defined(__ibmxl__)
+#  define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
+#  define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
+#  define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
+#  define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
+# else
+   /* __IBMCPP__ = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+#  define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
+# endif
+
+
+#elif defined(__ibmxl__) || (defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800)
+# define COMPILER_ID "XL"
+# if defined(__ibmxl__)
+#  define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
+#  define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
+#  define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
+#  define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
+# else
+   /* __IBMCPP__ = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+#  define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
+# endif
+
+
+#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800
+# define COMPILER_ID "VisualAge"
+# if defined(__ibmxl__)
+#  define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
+#  define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
+#  define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
+#  define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
+# else
+   /* __IBMCPP__ = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+#  define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
+# endif
+
+
+#elif defined(__PGI)
+# define COMPILER_ID "PGI"
+# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
+# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
+# if defined(__PGIC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
+# endif
+
+#elif defined(_CRAYC)
+# define COMPILER_ID "Cray"
+# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
+# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
+
+#elif defined(__TI_COMPILER_VERSION__)
+# define COMPILER_ID "TI"
+  /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
+# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
+# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000   % 1000)
+# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__        % 1000)
+
+#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
+# define COMPILER_ID "Fujitsu"
+
+#elif defined(__SCO_VERSION__)
+# define COMPILER_ID "SCO"
+
+#elif defined(__clang__) && defined(__apple_build_version__)
+# define COMPILER_ID "AppleClang"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
+
+#elif defined(__clang__)
+# define COMPILER_ID "Clang"
+# if defined(_MSC_VER)
+#  define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+   /* _MSC_VER = VVRR */
+#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__GNUC__) || defined(__GNUG__)
+# define COMPILER_ID "GNU"
+# if defined(__GNUC__)
+#  define COMPILER_VERSION_MAJOR DEC(__GNUC__)
+# else
+#  define COMPILER_VERSION_MAJOR DEC(__GNUG__)
+# endif
+# if defined(__GNUC_MINOR__)
+#  define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+#  define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif defined(_MSC_VER)
+# define COMPILER_ID "MSVC"
+  /* _MSC_VER = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
+# if defined(_MSC_FULL_VER)
+#  if _MSC_VER >= 1400
+    /* _MSC_FULL_VER = VVRRPPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
+#  else
+    /* _MSC_FULL_VER = VVRRPPPP */
+#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
+#  endif
+# endif
+# if defined(_MSC_BUILD)
+#  define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
+# endif
+
+#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
+# define COMPILER_ID "ADSP"
+#if defined(__VISUALDSPVERSION__)
+  /* __VISUALDSPVERSION__ = 0xVVRRPP00 */
+# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24)
+# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8  & 0xFF)
+#endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# define COMPILER_ID "IAR"
+# if defined(__VER__)
+#  define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
+#  define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
+#  define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
+#  define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
+# endif
+
+#elif defined(__ARMCC_VERSION)
+# define COMPILER_ID "ARMCC"
+#if __ARMCC_VERSION >= 1000000
+  /* __ARMCC_VERSION = VRRPPPP */
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION     % 10000)
+#else
+  /* __ARMCC_VERSION = VRPPPP */
+  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
+  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
+  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION    % 10000)
+#endif
+
+
+#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION)
+# define COMPILER_ID "MIPSpro"
+# if defined(_SGI_COMPILER_VERSION)
+  /* _SGI_COMPILER_VERSION = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100)
+#  define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION    % 10)
+# else
+  /* _COMPILER_VERSION = VRP */
+#  define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100)
+#  define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10)
+#  define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION    % 10)
+# endif
+
+
+/* These compilers are either not known or too old to define an
+  identification macro.  Try to identify the platform and guess that
+  it is the native compiler.  */
+#elif defined(__sgi)
+# define COMPILER_ID "MIPSpro"
+
+#elif defined(__hpux) || defined(__hpua)
+# define COMPILER_ID "HP"
+
+#else /* unknown compiler */
+# define COMPILER_ID ""
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
+#ifdef SIMULATE_ID
+char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
+#endif
+
+#ifdef __QNXNTO__
+char const* qnxnto = "INFO" ":" "qnxnto[]";
+#endif
+
+#if defined(__CRAYXE) || defined(__CRAYXC)
+char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
+#endif
+
+#define STRINGIFY_HELPER(X) #X
+#define STRINGIFY(X) STRINGIFY_HELPER(X)
+
+/* Identify known platforms by name.  */
+#if defined(__linux) || defined(__linux__) || defined(linux)
+# define PLATFORM_ID "Linux"
+
+#elif defined(__CYGWIN__)
+# define PLATFORM_ID "Cygwin"
+
+#elif defined(__MINGW32__)
+# define PLATFORM_ID "MinGW"
+
+#elif defined(__APPLE__)
+# define PLATFORM_ID "Darwin"
+
+#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+# define PLATFORM_ID "Windows"
+
+#elif defined(__FreeBSD__) || defined(__FreeBSD)
+# define PLATFORM_ID "FreeBSD"
+
+#elif defined(__NetBSD__) || defined(__NetBSD)
+# define PLATFORM_ID "NetBSD"
+
+#elif defined(__OpenBSD__) || defined(__OPENBSD)
+# define PLATFORM_ID "OpenBSD"
+
+#elif defined(__sun) || defined(sun)
+# define PLATFORM_ID "SunOS"
+
+#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
+# define PLATFORM_ID "AIX"
+
+#elif defined(__sgi) || defined(__sgi__) || defined(_SGI)
+# define PLATFORM_ID "IRIX"
+
+#elif defined(__hpux) || defined(__hpux__)
+# define PLATFORM_ID "HP-UX"
+
+#elif defined(__HAIKU__)
+# define PLATFORM_ID "Haiku"
+
+#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
+# define PLATFORM_ID "BeOS"
+
+#elif defined(__QNX__) || defined(__QNXNTO__)
+# define PLATFORM_ID "QNX"
+
+#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
+# define PLATFORM_ID "Tru64"
+
+#elif defined(__riscos) || defined(__riscos__)
+# define PLATFORM_ID "RISCos"
+
+#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
+# define PLATFORM_ID "SINIX"
+
+#elif defined(__UNIX_SV__)
+# define PLATFORM_ID "UNIX_SV"
+
+#elif defined(__bsdos__)
+# define PLATFORM_ID "BSDOS"
+
+#elif defined(_MPRAS) || defined(MPRAS)
+# define PLATFORM_ID "MP-RAS"
+
+#elif defined(__osf) || defined(__osf__)
+# define PLATFORM_ID "OSF1"
+
+#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
+# define PLATFORM_ID "SCO_SV"
+
+#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
+# define PLATFORM_ID "ULTRIX"
+
+#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
+# define PLATFORM_ID "Xenix"
+
+#elif defined(__WATCOMC__)
+# if defined(__LINUX__)
+#  define PLATFORM_ID "Linux"
+
+# elif defined(__DOS__)
+#  define PLATFORM_ID "DOS"
+
+# elif defined(__OS2__)
+#  define PLATFORM_ID "OS2"
+
+# elif defined(__WINDOWS__)
+#  define PLATFORM_ID "Windows3x"
+
+# else /* unknown platform */
+#  define PLATFORM_ID
+# endif
+
+#else /* unknown platform */
+# define PLATFORM_ID
+
+#endif
+
+/* For windows compilers MSVC and Intel we can determine
+   the architecture of the compiler being used.  This is because
+   the compilers do not have flags that can change the architecture,
+   but rather depend on which compiler is being used
+*/
+#if defined(_WIN32) && defined(_MSC_VER)
+# if defined(_M_IA64)
+#  define ARCHITECTURE_ID "IA64"
+
+# elif defined(_M_X64) || defined(_M_AMD64)
+#  define ARCHITECTURE_ID "x64"
+
+# elif defined(_M_IX86)
+#  define ARCHITECTURE_ID "X86"
+
+# elif defined(_M_ARM64)
+#  define ARCHITECTURE_ID "ARM64"
+
+# elif defined(_M_ARM)
+#  if _M_ARM == 4
+#   define ARCHITECTURE_ID "ARMV4I"
+#  elif _M_ARM == 5
+#   define ARCHITECTURE_ID "ARMV5I"
+#  else
+#   define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
+#  endif
+
+# elif defined(_M_MIPS)
+#  define ARCHITECTURE_ID "MIPS"
+
+# elif defined(_M_SH)
+#  define ARCHITECTURE_ID "SHx"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__WATCOMC__)
+# if defined(_M_I86)
+#  define ARCHITECTURE_ID "I86"
+
+# elif defined(_M_IX86)
+#  define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# if defined(__ICCARM__)
+#  define ARCHITECTURE_ID "ARM"
+
+# elif defined(__ICCAVR__)
+#  define ARCHITECTURE_ID "AVR"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
+#else
+#  define ARCHITECTURE_ID
+#endif
+
+/* Convert integer to decimal digit literals.  */
+#define DEC(n)                   \
+  ('0' + (((n) / 10000000)%10)), \
+  ('0' + (((n) / 1000000)%10)),  \
+  ('0' + (((n) / 100000)%10)),   \
+  ('0' + (((n) / 10000)%10)),    \
+  ('0' + (((n) / 1000)%10)),     \
+  ('0' + (((n) / 100)%10)),      \
+  ('0' + (((n) / 10)%10)),       \
+  ('0' +  ((n) % 10))
+
+/* Convert integer to hex digit literals.  */
+#define HEX(n)             \
+  ('0' + ((n)>>28 & 0xF)), \
+  ('0' + ((n)>>24 & 0xF)), \
+  ('0' + ((n)>>20 & 0xF)), \
+  ('0' + ((n)>>16 & 0xF)), \
+  ('0' + ((n)>>12 & 0xF)), \
+  ('0' + ((n)>>8  & 0xF)), \
+  ('0' + ((n)>>4  & 0xF)), \
+  ('0' + ((n)     & 0xF))
+
+/* Construct a string literal encoding the version number components. */
+#ifdef COMPILER_VERSION_MAJOR
+char const info_version[] = {
+  'I', 'N', 'F', 'O', ':',
+  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
+  COMPILER_VERSION_MAJOR,
+# ifdef COMPILER_VERSION_MINOR
+  '.', COMPILER_VERSION_MINOR,
+#  ifdef COMPILER_VERSION_PATCH
+   '.', COMPILER_VERSION_PATCH,
+#   ifdef COMPILER_VERSION_TWEAK
+    '.', COMPILER_VERSION_TWEAK,
+#   endif
+#  endif
+# endif
+  ']','\0'};
+#endif
+
+/* Construct a string literal encoding the internal version number. */
+#ifdef COMPILER_VERSION_INTERNAL
+char const info_version_internal[] = {
+  'I', 'N', 'F', 'O', ':',
+  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
+  'i','n','t','e','r','n','a','l','[',
+  COMPILER_VERSION_INTERNAL,']','\0'};
+#endif
+
+/* Construct a string literal encoding the version number components. */
+#ifdef SIMULATE_VERSION_MAJOR
+char const info_simulate_version[] = {
+  'I', 'N', 'F', 'O', ':',
+  's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
+  SIMULATE_VERSION_MAJOR,
+# ifdef SIMULATE_VERSION_MINOR
+  '.', SIMULATE_VERSION_MINOR,
+#  ifdef SIMULATE_VERSION_PATCH
+   '.', SIMULATE_VERSION_PATCH,
+#   ifdef SIMULATE_VERSION_TWEAK
+    '.', SIMULATE_VERSION_TWEAK,
+#   endif
+#  endif
+# endif
+  ']','\0'};
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+   getting matched.  Store it in a pointer rather than an array
+   because some compilers will just produce instructions to fill the
+   array rather than assigning a pointer to a static array.  */
+char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
+char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
+
+
+
+
+#if defined(_MSC_VER) && defined(_MSVC_LANG)
+#define CXX_STD _MSVC_LANG
+#else
+#define CXX_STD __cplusplus
+#endif
+
+const char* info_language_dialect_default = "INFO" ":" "dialect_default["
+#if CXX_STD > 201703L
+  "20"
+#elif CXX_STD >= 201703L
+  "17"
+#elif CXX_STD >= 201402L
+  "14"
+#elif CXX_STD >= 201103L
+  "11"
+#else
+  "98"
+#endif
+"]";
+
+/*--------------------------------------------------------------------------*/
+
+int main(int argc, char* argv[])
+{
+  int require = 0;
+  require += info_compiler[argc];
+  require += info_platform[argc];
+#ifdef COMPILER_VERSION_MAJOR
+  require += info_version[argc];
+#endif
+#ifdef COMPILER_VERSION_INTERNAL
+  require += info_version_internal[argc];
+#endif
+#ifdef SIMULATE_ID
+  require += info_simulate[argc];
+#endif
+#ifdef SIMULATE_VERSION_MAJOR
+  require += info_simulate_version[argc];
+#endif
+#if defined(__CRAYXE) || defined(__CRAYXC)
+  require += info_cray[argc];
+#endif
+  require += info_language_dialect_default[argc];
+  (void)argv;
+  return require;
+}
diff --git a/build/CMakeFiles/CMakeDirectoryInformation.cmake b/build/CMakeFiles/CMakeDirectoryInformation.cmake
new file mode 100644
index 0000000..00d2501
--- /dev/null
+++ b/build/CMakeFiles/CMakeDirectoryInformation.cmake
@@ -0,0 +1,16 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.13
+
+# Relative path conversion top directories.
+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/basic/workspace/code/go/vaproc/repository/memfd")
+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/basic/workspace/code/go/vaproc/repository/memfd/build")
+
+# Force unix paths in dependencies.
+set(CMAKE_FORCE_UNIX_PATHS 1)
+
+
+# The C and CXX include file regular expressions for this directory.
+set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
+set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
+set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
+set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
diff --git a/build/CMakeFiles/CMakeOutput.log b/build/CMakeFiles/CMakeOutput.log
new file mode 100644
index 0000000..0450476
--- /dev/null
+++ b/build/CMakeFiles/CMakeOutput.log
@@ -0,0 +1,617 @@
+The system is: Linux - 4.15.0-142-generic - x86_64
+Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
+Compiler: /usr/bin/cc 
+Build flags: 
+Id flags:  
+
+The output was:
+0
+
+
+Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out"
+
+The C compiler identification is GNU, found in "/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/3.13.3/CompilerIdC/a.out"
+
+Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
+Compiler: /usr/bin/c++ 
+Build flags: 
+Id flags:  
+
+The output was:
+0
+
+
+Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out"
+
+The CXX compiler identification is GNU, found in "/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/3.13.3/CompilerIdCXX/a.out"
+
+Determining if the C compiler works passed with the following output:
+Change Dir: /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_8efd4/fast"
+/usr/bin/make -f CMakeFiles/cmTC_8efd4.dir/build.make CMakeFiles/cmTC_8efd4.dir/build
+make[1]: Entering directory '/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_8efd4.dir/testCCompiler.c.o
+/usr/bin/cc    -o CMakeFiles/cmTC_8efd4.dir/testCCompiler.c.o   -c /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp/testCCompiler.c
+Linking C executable cmTC_8efd4
+/usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake -E cmake_link_script CMakeFiles/cmTC_8efd4.dir/link.txt --verbose=1
+/usr/bin/cc      CMakeFiles/cmTC_8efd4.dir/testCCompiler.c.o  -o cmTC_8efd4 
+make[1]: Leaving directory '/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp'
+
+
+Detecting C compiler ABI info compiled with the following output:
+Change Dir: /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_fefc0/fast"
+/usr/bin/make -f CMakeFiles/cmTC_fefc0.dir/build.make CMakeFiles/cmTC_fefc0.dir/build
+make[1]: Entering directory '/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_fefc0.dir/CMakeCCompilerABI.c.o
+/usr/bin/cc    -o CMakeFiles/cmTC_fefc0.dir/CMakeCCompilerABI.c.o   -c /usr/local/lib/python2.7/dist-packages/cmake/data/share/cmake-3.13/Modules/CMakeCCompilerABI.c
+Linking C executable cmTC_fefc0
+/usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake -E cmake_link_script CMakeFiles/cmTC_fefc0.dir/link.txt --verbose=1
+/usr/bin/cc     -v CMakeFiles/cmTC_fefc0.dir/CMakeCCompilerABI.c.o  -o cmTC_fefc0 
+Using built-in specs.
+COLLECT_GCC=/usr/bin/cc
+COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper
+Target: x86_64-linux-gnu
+Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.4.0-6ubuntu1~16.04.12' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
+Thread model: posix
+gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12) 
+COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/
+LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_fefc0' '-mtune=generic' '-march=x86-64'
+ /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/ccy7znVL.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro -o cmTC_fefc0 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_fefc0.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o
+make[1]: Leaving directory '/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp'
+
+
+Parsed C implicit link information from above output:
+  link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)]
+  ignore line: [Change Dir: /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp]
+  ignore line: []
+  ignore line: [Run Build Command:"/usr/bin/make" "cmTC_fefc0/fast"]
+  ignore line: [/usr/bin/make -f CMakeFiles/cmTC_fefc0.dir/build.make CMakeFiles/cmTC_fefc0.dir/build]
+  ignore line: [make[1]: Entering directory '/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp']
+  ignore line: [Building C object CMakeFiles/cmTC_fefc0.dir/CMakeCCompilerABI.c.o]
+  ignore line: [/usr/bin/cc    -o CMakeFiles/cmTC_fefc0.dir/CMakeCCompilerABI.c.o   -c /usr/local/lib/python2.7/dist-packages/cmake/data/share/cmake-3.13/Modules/CMakeCCompilerABI.c]
+  ignore line: [Linking C executable cmTC_fefc0]
+  ignore line: [/usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake -E cmake_link_script CMakeFiles/cmTC_fefc0.dir/link.txt --verbose=1]
+  ignore line: [/usr/bin/cc     -v CMakeFiles/cmTC_fefc0.dir/CMakeCCompilerABI.c.o  -o cmTC_fefc0 ]
+  ignore line: [Using built-in specs.]
+  ignore line: [COLLECT_GCC=/usr/bin/cc]
+  ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper]
+  ignore line: [Target: x86_64-linux-gnu]
+  ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.4.0-6ubuntu1~16.04.12' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu]
+  ignore line: [Thread model: posix]
+  ignore line: [gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12) ]
+  ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/]
+  ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_fefc0' '-mtune=generic' '-march=x86-64']
+  link line: [ /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/ccy7znVL.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro -o cmTC_fefc0 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_fefc0.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o]
+    arg [/usr/lib/gcc/x86_64-linux-gnu/5/collect2] ==> ignore
+    arg [-plugin] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so] ==> ignore
+    arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] ==> ignore
+    arg [-plugin-opt=-fresolution=/tmp/ccy7znVL.res] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [-plugin-opt=-pass-through=-lc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [--sysroot=/] ==> ignore
+    arg [--build-id] ==> ignore
+    arg [--eh-frame-hdr] ==> ignore
+    arg [-m] ==> ignore
+    arg [elf_x86_64] ==> ignore
+    arg [--hash-style=gnu] ==> ignore
+    arg [--as-needed] ==> ignore
+    arg [-dynamic-linker] ==> ignore
+    arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
+    arg [-zrelro] ==> ignore
+    arg [-o] ==> ignore
+    arg [cmTC_fefc0] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtbegin.o] ==> ignore
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/5] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib]
+    arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
+    arg [-L/lib/../lib] ==> dir [/lib/../lib]
+    arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
+    arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..]
+    arg [CMakeFiles/cmTC_fefc0.dir/CMakeCCompilerABI.c.o] ==> ignore
+    arg [-lgcc] ==> lib [gcc]
+    arg [--as-needed] ==> ignore
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [--no-as-needed] ==> ignore
+    arg [-lc] ==> lib [c]
+    arg [-lgcc] ==> lib [gcc]
+    arg [--as-needed] ==> ignore
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [--no-as-needed] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtend.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] ==> ignore
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5] ==> [/usr/lib/gcc/x86_64-linux-gnu/5]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> [/usr/lib]
+  collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
+  collapse library dir [/lib/../lib] ==> [/lib]
+  collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
+  collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> [/usr/lib]
+  implicit libs: [gcc;gcc_s;c;gcc;gcc_s]
+  implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
+  implicit fwks: []
+
+
+
+
+Detecting C [-std=c11] compiler features compiled with the following output:
+Change Dir: /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_1d590/fast"
+/usr/bin/make -f CMakeFiles/cmTC_1d590.dir/build.make CMakeFiles/cmTC_1d590.dir/build
+make[1]: Entering directory '/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_1d590.dir/feature_tests.c.o
+/usr/bin/cc   -std=c11 -o CMakeFiles/cmTC_1d590.dir/feature_tests.c.o   -c /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/feature_tests.c
+Linking C executable cmTC_1d590
+/usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake -E cmake_link_script CMakeFiles/cmTC_1d590.dir/link.txt --verbose=1
+/usr/bin/cc      CMakeFiles/cmTC_1d590.dir/feature_tests.c.o  -o cmTC_1d590 
+make[1]: Leaving directory '/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp'
+
+
+    Feature record: C_FEATURE:1c_function_prototypes
+    Feature record: C_FEATURE:1c_restrict
+    Feature record: C_FEATURE:1c_static_assert
+    Feature record: C_FEATURE:1c_variadic_macros
+
+
+Detecting C [-std=c99] compiler features compiled with the following output:
+Change Dir: /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_9b8b2/fast"
+/usr/bin/make -f CMakeFiles/cmTC_9b8b2.dir/build.make CMakeFiles/cmTC_9b8b2.dir/build
+make[1]: Entering directory '/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_9b8b2.dir/feature_tests.c.o
+/usr/bin/cc   -std=c99 -o CMakeFiles/cmTC_9b8b2.dir/feature_tests.c.o   -c /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/feature_tests.c
+Linking C executable cmTC_9b8b2
+/usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake -E cmake_link_script CMakeFiles/cmTC_9b8b2.dir/link.txt --verbose=1
+/usr/bin/cc      CMakeFiles/cmTC_9b8b2.dir/feature_tests.c.o  -o cmTC_9b8b2 
+make[1]: Leaving directory '/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp'
+
+
+    Feature record: C_FEATURE:1c_function_prototypes
+    Feature record: C_FEATURE:1c_restrict
+    Feature record: C_FEATURE:0c_static_assert
+    Feature record: C_FEATURE:1c_variadic_macros
+
+
+Detecting C [-std=c90] compiler features compiled with the following output:
+Change Dir: /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_23f02/fast"
+/usr/bin/make -f CMakeFiles/cmTC_23f02.dir/build.make CMakeFiles/cmTC_23f02.dir/build
+make[1]: Entering directory '/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp'
+Building C object CMakeFiles/cmTC_23f02.dir/feature_tests.c.o
+/usr/bin/cc   -std=c90 -o CMakeFiles/cmTC_23f02.dir/feature_tests.c.o   -c /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/feature_tests.c
+Linking C executable cmTC_23f02
+/usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake -E cmake_link_script CMakeFiles/cmTC_23f02.dir/link.txt --verbose=1
+/usr/bin/cc      CMakeFiles/cmTC_23f02.dir/feature_tests.c.o  -o cmTC_23f02 
+make[1]: Leaving directory '/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp'
+
+
+    Feature record: C_FEATURE:1c_function_prototypes
+    Feature record: C_FEATURE:0c_restrict
+    Feature record: C_FEATURE:0c_static_assert
+    Feature record: C_FEATURE:0c_variadic_macros
+Determining if the CXX compiler works passed with the following output:
+Change Dir: /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_f3593/fast"
+/usr/bin/make -f CMakeFiles/cmTC_f3593.dir/build.make CMakeFiles/cmTC_f3593.dir/build
+make[1]: Entering directory '/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_f3593.dir/testCXXCompiler.cxx.o
+/usr/bin/c++     -o CMakeFiles/cmTC_f3593.dir/testCXXCompiler.cxx.o -c /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp/testCXXCompiler.cxx
+Linking CXX executable cmTC_f3593
+/usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake -E cmake_link_script CMakeFiles/cmTC_f3593.dir/link.txt --verbose=1
+/usr/bin/c++       CMakeFiles/cmTC_f3593.dir/testCXXCompiler.cxx.o  -o cmTC_f3593 
+make[1]: Leaving directory '/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp'
+
+
+Detecting CXX compiler ABI info compiled with the following output:
+Change Dir: /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_bce17/fast"
+/usr/bin/make -f CMakeFiles/cmTC_bce17.dir/build.make CMakeFiles/cmTC_bce17.dir/build
+make[1]: Entering directory '/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_bce17.dir/CMakeCXXCompilerABI.cpp.o
+/usr/bin/c++     -o CMakeFiles/cmTC_bce17.dir/CMakeCXXCompilerABI.cpp.o -c /usr/local/lib/python2.7/dist-packages/cmake/data/share/cmake-3.13/Modules/CMakeCXXCompilerABI.cpp
+Linking CXX executable cmTC_bce17
+/usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake -E cmake_link_script CMakeFiles/cmTC_bce17.dir/link.txt --verbose=1
+/usr/bin/c++      -v CMakeFiles/cmTC_bce17.dir/CMakeCXXCompilerABI.cpp.o  -o cmTC_bce17 
+Using built-in specs.
+COLLECT_GCC=/usr/bin/c++
+COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper
+Target: x86_64-linux-gnu
+Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.4.0-6ubuntu1~16.04.12' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
+Thread model: posix
+gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12) 
+COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/
+LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/
+COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_bce17' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
+ /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/ccOHsGbl.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro -o cmTC_bce17 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_bce17.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o
+make[1]: Leaving directory '/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp'
+
+
+Parsed CXX implicit link information from above output:
+  link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)]
+  ignore line: [Change Dir: /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp]
+  ignore line: []
+  ignore line: [Run Build Command:"/usr/bin/make" "cmTC_bce17/fast"]
+  ignore line: [/usr/bin/make -f CMakeFiles/cmTC_bce17.dir/build.make CMakeFiles/cmTC_bce17.dir/build]
+  ignore line: [make[1]: Entering directory '/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp']
+  ignore line: [Building CXX object CMakeFiles/cmTC_bce17.dir/CMakeCXXCompilerABI.cpp.o]
+  ignore line: [/usr/bin/c++     -o CMakeFiles/cmTC_bce17.dir/CMakeCXXCompilerABI.cpp.o -c /usr/local/lib/python2.7/dist-packages/cmake/data/share/cmake-3.13/Modules/CMakeCXXCompilerABI.cpp]
+  ignore line: [Linking CXX executable cmTC_bce17]
+  ignore line: [/usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake -E cmake_link_script CMakeFiles/cmTC_bce17.dir/link.txt --verbose=1]
+  ignore line: [/usr/bin/c++      -v CMakeFiles/cmTC_bce17.dir/CMakeCXXCompilerABI.cpp.o  -o cmTC_bce17 ]
+  ignore line: [Using built-in specs.]
+  ignore line: [COLLECT_GCC=/usr/bin/c++]
+  ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper]
+  ignore line: [Target: x86_64-linux-gnu]
+  ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.4.0-6ubuntu1~16.04.12' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu]
+  ignore line: [Thread model: posix]
+  ignore line: [gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12) ]
+  ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/]
+  ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/]
+  ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_bce17' '-shared-libgcc' '-mtune=generic' '-march=x86-64']
+  link line: [ /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/ccOHsGbl.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro -o cmTC_bce17 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_bce17.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o]
+    arg [/usr/lib/gcc/x86_64-linux-gnu/5/collect2] ==> ignore
+    arg [-plugin] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so] ==> ignore
+    arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] ==> ignore
+    arg [-plugin-opt=-fresolution=/tmp/ccOHsGbl.res] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lc] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+    arg [--sysroot=/] ==> ignore
+    arg [--build-id] ==> ignore
+    arg [--eh-frame-hdr] ==> ignore
+    arg [-m] ==> ignore
+    arg [elf_x86_64] ==> ignore
+    arg [--hash-style=gnu] ==> ignore
+    arg [--as-needed] ==> ignore
+    arg [-dynamic-linker] ==> ignore
+    arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
+    arg [-zrelro] ==> ignore
+    arg [-o] ==> ignore
+    arg [cmTC_bce17] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtbegin.o] ==> ignore
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/5] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib]
+    arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
+    arg [-L/lib/../lib] ==> dir [/lib/../lib]
+    arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
+    arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
+    arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..]
+    arg [CMakeFiles/cmTC_bce17.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
+    arg [-lstdc++] ==> lib [stdc++]
+    arg [-lm] ==> lib [m]
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [-lgcc] ==> lib [gcc]
+    arg [-lc] ==> lib [c]
+    arg [-lgcc_s] ==> lib [gcc_s]
+    arg [-lgcc] ==> lib [gcc]
+    arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtend.o] ==> ignore
+    arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] ==> ignore
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5] ==> [/usr/lib/gcc/x86_64-linux-gnu/5]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> [/usr/lib]
+  collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
+  collapse library dir [/lib/../lib] ==> [/lib]
+  collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
+  collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
+  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> [/usr/lib]
+  implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc]
+  implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
+  implicit fwks: []
+
+
+
+
+Detecting CXX [-std=c++1z] compiler features compiled with the following output:
+Change Dir: /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_fba2e/fast"
+/usr/bin/make -f CMakeFiles/cmTC_fba2e.dir/build.make CMakeFiles/cmTC_fba2e.dir/build
+make[1]: Entering directory '/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_fba2e.dir/feature_tests.cxx.o
+/usr/bin/c++    -std=c++1z -o CMakeFiles/cmTC_fba2e.dir/feature_tests.cxx.o -c /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/feature_tests.cxx
+Linking CXX executable cmTC_fba2e
+/usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake -E cmake_link_script CMakeFiles/cmTC_fba2e.dir/link.txt --verbose=1
+/usr/bin/c++       CMakeFiles/cmTC_fba2e.dir/feature_tests.cxx.o  -o cmTC_fba2e 
+make[1]: Leaving directory '/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp'
+
+
+    Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers
+    Feature record: CXX_FEATURE:1cxx_alias_templates
+    Feature record: CXX_FEATURE:1cxx_alignas
+    Feature record: CXX_FEATURE:1cxx_alignof
+    Feature record: CXX_FEATURE:1cxx_attributes
+    Feature record: CXX_FEATURE:1cxx_attribute_deprecated
+    Feature record: CXX_FEATURE:1cxx_auto_type
+    Feature record: CXX_FEATURE:1cxx_binary_literals
+    Feature record: CXX_FEATURE:1cxx_constexpr
+    Feature record: CXX_FEATURE:1cxx_contextual_conversions
+    Feature record: CXX_FEATURE:1cxx_decltype
+    Feature record: CXX_FEATURE:1cxx_decltype_auto
+    Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types
+    Feature record: CXX_FEATURE:1cxx_default_function_template_args
+    Feature record: CXX_FEATURE:1cxx_defaulted_functions
+    Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers
+    Feature record: CXX_FEATURE:1cxx_delegating_constructors
+    Feature record: CXX_FEATURE:1cxx_deleted_functions
+    Feature record: CXX_FEATURE:1cxx_digit_separators
+    Feature record: CXX_FEATURE:1cxx_enum_forward_declarations
+    Feature record: CXX_FEATURE:1cxx_explicit_conversions
+    Feature record: CXX_FEATURE:1cxx_extended_friend_declarations
+    Feature record: CXX_FEATURE:1cxx_extern_templates
+    Feature record: CXX_FEATURE:1cxx_final
+    Feature record: CXX_FEATURE:1cxx_func_identifier
+    Feature record: CXX_FEATURE:1cxx_generalized_initializers
+    Feature record: CXX_FEATURE:1cxx_generic_lambdas
+    Feature record: CXX_FEATURE:1cxx_inheriting_constructors
+    Feature record: CXX_FEATURE:1cxx_inline_namespaces
+    Feature record: CXX_FEATURE:1cxx_lambdas
+    Feature record: CXX_FEATURE:1cxx_lambda_init_captures
+    Feature record: CXX_FEATURE:1cxx_local_type_template_args
+    Feature record: CXX_FEATURE:1cxx_long_long_type
+    Feature record: CXX_FEATURE:1cxx_noexcept
+    Feature record: CXX_FEATURE:1cxx_nonstatic_member_init
+    Feature record: CXX_FEATURE:1cxx_nullptr
+    Feature record: CXX_FEATURE:1cxx_override
+    Feature record: CXX_FEATURE:1cxx_range_for
+    Feature record: CXX_FEATURE:1cxx_raw_string_literals
+    Feature record: CXX_FEATURE:1cxx_reference_qualified_functions
+    Feature record: CXX_FEATURE:1cxx_relaxed_constexpr
+    Feature record: CXX_FEATURE:1cxx_return_type_deduction
+    Feature record: CXX_FEATURE:1cxx_right_angle_brackets
+    Feature record: CXX_FEATURE:1cxx_rvalue_references
+    Feature record: CXX_FEATURE:1cxx_sizeof_member
+    Feature record: CXX_FEATURE:1cxx_static_assert
+    Feature record: CXX_FEATURE:1cxx_strong_enums
+    Feature record: CXX_FEATURE:1cxx_template_template_parameters
+    Feature record: CXX_FEATURE:1cxx_thread_local
+    Feature record: CXX_FEATURE:1cxx_trailing_return_types
+    Feature record: CXX_FEATURE:1cxx_unicode_literals
+    Feature record: CXX_FEATURE:1cxx_uniform_initialization
+    Feature record: CXX_FEATURE:1cxx_unrestricted_unions
+    Feature record: CXX_FEATURE:1cxx_user_literals
+    Feature record: CXX_FEATURE:1cxx_variable_templates
+    Feature record: CXX_FEATURE:1cxx_variadic_macros
+    Feature record: CXX_FEATURE:1cxx_variadic_templates
+
+
+Detecting CXX [-std=c++14] compiler features compiled with the following output:
+Change Dir: /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_dd03b/fast"
+/usr/bin/make -f CMakeFiles/cmTC_dd03b.dir/build.make CMakeFiles/cmTC_dd03b.dir/build
+make[1]: Entering directory '/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_dd03b.dir/feature_tests.cxx.o
+/usr/bin/c++    -std=c++14 -o CMakeFiles/cmTC_dd03b.dir/feature_tests.cxx.o -c /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/feature_tests.cxx
+Linking CXX executable cmTC_dd03b
+/usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake -E cmake_link_script CMakeFiles/cmTC_dd03b.dir/link.txt --verbose=1
+/usr/bin/c++       CMakeFiles/cmTC_dd03b.dir/feature_tests.cxx.o  -o cmTC_dd03b 
+make[1]: Leaving directory '/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp'
+
+
+    Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers
+    Feature record: CXX_FEATURE:1cxx_alias_templates
+    Feature record: CXX_FEATURE:1cxx_alignas
+    Feature record: CXX_FEATURE:1cxx_alignof
+    Feature record: CXX_FEATURE:1cxx_attributes
+    Feature record: CXX_FEATURE:1cxx_attribute_deprecated
+    Feature record: CXX_FEATURE:1cxx_auto_type
+    Feature record: CXX_FEATURE:1cxx_binary_literals
+    Feature record: CXX_FEATURE:1cxx_constexpr
+    Feature record: CXX_FEATURE:1cxx_contextual_conversions
+    Feature record: CXX_FEATURE:1cxx_decltype
+    Feature record: CXX_FEATURE:1cxx_decltype_auto
+    Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types
+    Feature record: CXX_FEATURE:1cxx_default_function_template_args
+    Feature record: CXX_FEATURE:1cxx_defaulted_functions
+    Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers
+    Feature record: CXX_FEATURE:1cxx_delegating_constructors
+    Feature record: CXX_FEATURE:1cxx_deleted_functions
+    Feature record: CXX_FEATURE:1cxx_digit_separators
+    Feature record: CXX_FEATURE:1cxx_enum_forward_declarations
+    Feature record: CXX_FEATURE:1cxx_explicit_conversions
+    Feature record: CXX_FEATURE:1cxx_extended_friend_declarations
+    Feature record: CXX_FEATURE:1cxx_extern_templates
+    Feature record: CXX_FEATURE:1cxx_final
+    Feature record: CXX_FEATURE:1cxx_func_identifier
+    Feature record: CXX_FEATURE:1cxx_generalized_initializers
+    Feature record: CXX_FEATURE:1cxx_generic_lambdas
+    Feature record: CXX_FEATURE:1cxx_inheriting_constructors
+    Feature record: CXX_FEATURE:1cxx_inline_namespaces
+    Feature record: CXX_FEATURE:1cxx_lambdas
+    Feature record: CXX_FEATURE:1cxx_lambda_init_captures
+    Feature record: CXX_FEATURE:1cxx_local_type_template_args
+    Feature record: CXX_FEATURE:1cxx_long_long_type
+    Feature record: CXX_FEATURE:1cxx_noexcept
+    Feature record: CXX_FEATURE:1cxx_nonstatic_member_init
+    Feature record: CXX_FEATURE:1cxx_nullptr
+    Feature record: CXX_FEATURE:1cxx_override
+    Feature record: CXX_FEATURE:1cxx_range_for
+    Feature record: CXX_FEATURE:1cxx_raw_string_literals
+    Feature record: CXX_FEATURE:1cxx_reference_qualified_functions
+    Feature record: CXX_FEATURE:1cxx_relaxed_constexpr
+    Feature record: CXX_FEATURE:1cxx_return_type_deduction
+    Feature record: CXX_FEATURE:1cxx_right_angle_brackets
+    Feature record: CXX_FEATURE:1cxx_rvalue_references
+    Feature record: CXX_FEATURE:1cxx_sizeof_member
+    Feature record: CXX_FEATURE:1cxx_static_assert
+    Feature record: CXX_FEATURE:1cxx_strong_enums
+    Feature record: CXX_FEATURE:1cxx_template_template_parameters
+    Feature record: CXX_FEATURE:1cxx_thread_local
+    Feature record: CXX_FEATURE:1cxx_trailing_return_types
+    Feature record: CXX_FEATURE:1cxx_unicode_literals
+    Feature record: CXX_FEATURE:1cxx_uniform_initialization
+    Feature record: CXX_FEATURE:1cxx_unrestricted_unions
+    Feature record: CXX_FEATURE:1cxx_user_literals
+    Feature record: CXX_FEATURE:1cxx_variable_templates
+    Feature record: CXX_FEATURE:1cxx_variadic_macros
+    Feature record: CXX_FEATURE:1cxx_variadic_templates
+
+
+Detecting CXX [-std=c++11] compiler features compiled with the following output:
+Change Dir: /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_828cc/fast"
+/usr/bin/make -f CMakeFiles/cmTC_828cc.dir/build.make CMakeFiles/cmTC_828cc.dir/build
+make[1]: Entering directory '/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_828cc.dir/feature_tests.cxx.o
+/usr/bin/c++    -std=c++11 -o CMakeFiles/cmTC_828cc.dir/feature_tests.cxx.o -c /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/feature_tests.cxx
+Linking CXX executable cmTC_828cc
+/usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake -E cmake_link_script CMakeFiles/cmTC_828cc.dir/link.txt --verbose=1
+/usr/bin/c++       CMakeFiles/cmTC_828cc.dir/feature_tests.cxx.o  -o cmTC_828cc 
+make[1]: Leaving directory '/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp'
+
+
+    Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers
+    Feature record: CXX_FEATURE:1cxx_alias_templates
+    Feature record: CXX_FEATURE:1cxx_alignas
+    Feature record: CXX_FEATURE:1cxx_alignof
+    Feature record: CXX_FEATURE:1cxx_attributes
+    Feature record: CXX_FEATURE:0cxx_attribute_deprecated
+    Feature record: CXX_FEATURE:1cxx_auto_type
+    Feature record: CXX_FEATURE:0cxx_binary_literals
+    Feature record: CXX_FEATURE:1cxx_constexpr
+    Feature record: CXX_FEATURE:0cxx_contextual_conversions
+    Feature record: CXX_FEATURE:1cxx_decltype
+    Feature record: CXX_FEATURE:0cxx_decltype_auto
+    Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types
+    Feature record: CXX_FEATURE:1cxx_default_function_template_args
+    Feature record: CXX_FEATURE:1cxx_defaulted_functions
+    Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers
+    Feature record: CXX_FEATURE:1cxx_delegating_constructors
+    Feature record: CXX_FEATURE:1cxx_deleted_functions
+    Feature record: CXX_FEATURE:0cxx_digit_separators
+    Feature record: CXX_FEATURE:1cxx_enum_forward_declarations
+    Feature record: CXX_FEATURE:1cxx_explicit_conversions
+    Feature record: CXX_FEATURE:1cxx_extended_friend_declarations
+    Feature record: CXX_FEATURE:1cxx_extern_templates
+    Feature record: CXX_FEATURE:1cxx_final
+    Feature record: CXX_FEATURE:1cxx_func_identifier
+    Feature record: CXX_FEATURE:1cxx_generalized_initializers
+    Feature record: CXX_FEATURE:0cxx_generic_lambdas
+    Feature record: CXX_FEATURE:1cxx_inheriting_constructors
+    Feature record: CXX_FEATURE:1cxx_inline_namespaces
+    Feature record: CXX_FEATURE:1cxx_lambdas
+    Feature record: CXX_FEATURE:0cxx_lambda_init_captures
+    Feature record: CXX_FEATURE:1cxx_local_type_template_args
+    Feature record: CXX_FEATURE:1cxx_long_long_type
+    Feature record: CXX_FEATURE:1cxx_noexcept
+    Feature record: CXX_FEATURE:1cxx_nonstatic_member_init
+    Feature record: CXX_FEATURE:1cxx_nullptr
+    Feature record: CXX_FEATURE:1cxx_override
+    Feature record: CXX_FEATURE:1cxx_range_for
+    Feature record: CXX_FEATURE:1cxx_raw_string_literals
+    Feature record: CXX_FEATURE:1cxx_reference_qualified_functions
+    Feature record: CXX_FEATURE:0cxx_relaxed_constexpr
+    Feature record: CXX_FEATURE:0cxx_return_type_deduction
+    Feature record: CXX_FEATURE:1cxx_right_angle_brackets
+    Feature record: CXX_FEATURE:1cxx_rvalue_references
+    Feature record: CXX_FEATURE:1cxx_sizeof_member
+    Feature record: CXX_FEATURE:1cxx_static_assert
+    Feature record: CXX_FEATURE:1cxx_strong_enums
+    Feature record: CXX_FEATURE:1cxx_template_template_parameters
+    Feature record: CXX_FEATURE:1cxx_thread_local
+    Feature record: CXX_FEATURE:1cxx_trailing_return_types
+    Feature record: CXX_FEATURE:1cxx_unicode_literals
+    Feature record: CXX_FEATURE:1cxx_uniform_initialization
+    Feature record: CXX_FEATURE:1cxx_unrestricted_unions
+    Feature record: CXX_FEATURE:1cxx_user_literals
+    Feature record: CXX_FEATURE:0cxx_variable_templates
+    Feature record: CXX_FEATURE:1cxx_variadic_macros
+    Feature record: CXX_FEATURE:1cxx_variadic_templates
+
+
+Detecting CXX [-std=c++98] compiler features compiled with the following output:
+Change Dir: /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp
+
+Run Build Command:"/usr/bin/make" "cmTC_26558/fast"
+/usr/bin/make -f CMakeFiles/cmTC_26558.dir/build.make CMakeFiles/cmTC_26558.dir/build
+make[1]: Entering directory '/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp'
+Building CXX object CMakeFiles/cmTC_26558.dir/feature_tests.cxx.o
+/usr/bin/c++    -std=c++98 -o CMakeFiles/cmTC_26558.dir/feature_tests.cxx.o -c /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/feature_tests.cxx
+Linking CXX executable cmTC_26558
+/usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake -E cmake_link_script CMakeFiles/cmTC_26558.dir/link.txt --verbose=1
+/usr/bin/c++       CMakeFiles/cmTC_26558.dir/feature_tests.cxx.o  -o cmTC_26558 
+make[1]: Leaving directory '/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/CMakeTmp'
+
+
+    Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers
+    Feature record: CXX_FEATURE:0cxx_alias_templates
+    Feature record: CXX_FEATURE:0cxx_alignas
+    Feature record: CXX_FEATURE:0cxx_alignof
+    Feature record: CXX_FEATURE:0cxx_attributes
+    Feature record: CXX_FEATURE:0cxx_attribute_deprecated
+    Feature record: CXX_FEATURE:0cxx_auto_type
+    Feature record: CXX_FEATURE:0cxx_binary_literals
+    Feature record: CXX_FEATURE:0cxx_constexpr
+    Feature record: CXX_FEATURE:0cxx_contextual_conversions
+    Feature record: CXX_FEATURE:0cxx_decltype
+    Feature record: CXX_FEATURE:0cxx_decltype_auto
+    Feature record: CXX_FEATURE:0cxx_decltype_incomplete_return_types
+    Feature record: CXX_FEATURE:0cxx_default_function_template_args
+    Feature record: CXX_FEATURE:0cxx_defaulted_functions
+    Feature record: CXX_FEATURE:0cxx_defaulted_move_initializers
+    Feature record: CXX_FEATURE:0cxx_delegating_constructors
+    Feature record: CXX_FEATURE:0cxx_deleted_functions
+    Feature record: CXX_FEATURE:0cxx_digit_separators
+    Feature record: CXX_FEATURE:0cxx_enum_forward_declarations
+    Feature record: CXX_FEATURE:0cxx_explicit_conversions
+    Feature record: CXX_FEATURE:0cxx_extended_friend_declarations
+    Feature record: CXX_FEATURE:0cxx_extern_templates
+    Feature record: CXX_FEATURE:0cxx_final
+    Feature record: CXX_FEATURE:0cxx_func_identifier
+    Feature record: CXX_FEATURE:0cxx_generalized_initializers
+    Feature record: CXX_FEATURE:0cxx_generic_lambdas
+    Feature record: CXX_FEATURE:0cxx_inheriting_constructors
+    Feature record: CXX_FEATURE:0cxx_inline_namespaces
+    Feature record: CXX_FEATURE:0cxx_lambdas
+    Feature record: CXX_FEATURE:0cxx_lambda_init_captures
+    Feature record: CXX_FEATURE:0cxx_local_type_template_args
+    Feature record: CXX_FEATURE:0cxx_long_long_type
+    Feature record: CXX_FEATURE:0cxx_noexcept
+    Feature record: CXX_FEATURE:0cxx_nonstatic_member_init
+    Feature record: CXX_FEATURE:0cxx_nullptr
+    Feature record: CXX_FEATURE:0cxx_override
+    Feature record: CXX_FEATURE:0cxx_range_for
+    Feature record: CXX_FEATURE:0cxx_raw_string_literals
+    Feature record: CXX_FEATURE:0cxx_reference_qualified_functions
+    Feature record: CXX_FEATURE:0cxx_relaxed_constexpr
+    Feature record: CXX_FEATURE:0cxx_return_type_deduction
+    Feature record: CXX_FEATURE:0cxx_right_angle_brackets
+    Feature record: CXX_FEATURE:0cxx_rvalue_references
+    Feature record: CXX_FEATURE:0cxx_sizeof_member
+    Feature record: CXX_FEATURE:0cxx_static_assert
+    Feature record: CXX_FEATURE:0cxx_strong_enums
+    Feature record: CXX_FEATURE:1cxx_template_template_parameters
+    Feature record: CXX_FEATURE:0cxx_thread_local
+    Feature record: CXX_FEATURE:0cxx_trailing_return_types
+    Feature record: CXX_FEATURE:0cxx_unicode_literals
+    Feature record: CXX_FEATURE:0cxx_uniform_initialization
+    Feature record: CXX_FEATURE:0cxx_unrestricted_unions
+    Feature record: CXX_FEATURE:0cxx_user_literals
+    Feature record: CXX_FEATURE:0cxx_variable_templates
+    Feature record: CXX_FEATURE:0cxx_variadic_macros
+    Feature record: CXX_FEATURE:0cxx_variadic_templates
diff --git a/build/CMakeFiles/Makefile.cmake b/build/CMakeFiles/Makefile.cmake
new file mode 100644
index 0000000..2aa38d0
--- /dev/null
+++ b/build/CMakeFiles/Makefile.cmake
@@ -0,0 +1,55 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.13
+
+# The generator used is:
+set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles")
+
+# The top level Makefile was generated from the following files:
+set(CMAKE_MAKEFILE_DEPENDS
+  "CMakeCache.txt"
+  "../CMakeLists.txt"
+  "CMakeFiles/3.13.3/CMakeCCompiler.cmake"
+  "CMakeFiles/3.13.3/CMakeCXXCompiler.cmake"
+  "CMakeFiles/3.13.3/CMakeSystem.cmake"
+  "../sample2/CMakeLists.txt"
+  "../src2/CMakeLists.txt"
+  "/usr/local/lib/python2.7/dist-packages/cmake/data/share/cmake-3.13/Modules/CMakeCInformation.cmake"
+  "/usr/local/lib/python2.7/dist-packages/cmake/data/share/cmake-3.13/Modules/CMakeCXXInformation.cmake"
+  "/usr/local/lib/python2.7/dist-packages/cmake/data/share/cmake-3.13/Modules/CMakeCommonLanguageInclude.cmake"
+  "/usr/local/lib/python2.7/dist-packages/cmake/data/share/cmake-3.13/Modules/CMakeGenericSystem.cmake"
+  "/usr/local/lib/python2.7/dist-packages/cmake/data/share/cmake-3.13/Modules/CMakeInitializeConfigs.cmake"
+  "/usr/local/lib/python2.7/dist-packages/cmake/data/share/cmake-3.13/Modules/CMakeLanguageInformation.cmake"
+  "/usr/local/lib/python2.7/dist-packages/cmake/data/share/cmake-3.13/Modules/CMakeSystemSpecificInformation.cmake"
+  "/usr/local/lib/python2.7/dist-packages/cmake/data/share/cmake-3.13/Modules/CMakeSystemSpecificInitialize.cmake"
+  "/usr/local/lib/python2.7/dist-packages/cmake/data/share/cmake-3.13/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
+  "/usr/local/lib/python2.7/dist-packages/cmake/data/share/cmake-3.13/Modules/Compiler/GNU-C.cmake"
+  "/usr/local/lib/python2.7/dist-packages/cmake/data/share/cmake-3.13/Modules/Compiler/GNU-CXX.cmake"
+  "/usr/local/lib/python2.7/dist-packages/cmake/data/share/cmake-3.13/Modules/Compiler/GNU.cmake"
+  "/usr/local/lib/python2.7/dist-packages/cmake/data/share/cmake-3.13/Modules/Platform/Linux-GNU-C.cmake"
+  "/usr/local/lib/python2.7/dist-packages/cmake/data/share/cmake-3.13/Modules/Platform/Linux-GNU-CXX.cmake"
+  "/usr/local/lib/python2.7/dist-packages/cmake/data/share/cmake-3.13/Modules/Platform/Linux-GNU.cmake"
+  "/usr/local/lib/python2.7/dist-packages/cmake/data/share/cmake-3.13/Modules/Platform/Linux.cmake"
+  "/usr/local/lib/python2.7/dist-packages/cmake/data/share/cmake-3.13/Modules/Platform/UnixPaths.cmake"
+  )
+
+# The corresponding makefile is:
+set(CMAKE_MAKEFILE_OUTPUTS
+  "Makefile"
+  "CMakeFiles/cmake.check_cache"
+  )
+
+# Byproducts of CMake generate step:
+set(CMAKE_MAKEFILE_PRODUCTS
+  "CMakeFiles/CMakeDirectoryInformation.cmake"
+  "src2/CMakeFiles/CMakeDirectoryInformation.cmake"
+  "sample2/CMakeFiles/CMakeDirectoryInformation.cmake"
+  )
+
+# Dependency information for all targets:
+set(CMAKE_DEPEND_INFO_FILES
+  "src2/CMakeFiles/memfd_shm.dir/DependInfo.cmake"
+  "sample2/CMakeFiles/cli_snd.dir/DependInfo.cmake"
+  "sample2/CMakeFiles/srv_rcv.dir/DependInfo.cmake"
+  "sample2/CMakeFiles/client.dir/DependInfo.cmake"
+  "sample2/CMakeFiles/server.dir/DependInfo.cmake"
+  )
diff --git a/build/CMakeFiles/Makefile2 b/build/CMakeFiles/Makefile2
new file mode 100644
index 0000000..f04ac20
--- /dev/null
+++ b/build/CMakeFiles/Makefile2
@@ -0,0 +1,303 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.13
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# The main recursive all target
+all:
+
+.PHONY : all
+
+# The main recursive preinstall target
+preinstall:
+
+.PHONY : preinstall
+
+# The main recursive clean target
+clean:
+
+.PHONY : clean
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake
+
+# The command to remove a file.
+RM = /usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/basic/workspace/code/go/vaproc/repository/memfd
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/basic/workspace/code/go/vaproc/repository/memfd/build
+
+#=============================================================================
+# Directory level rules for directory src2
+
+# Convenience name for "all" pass in the directory.
+src2/all: src2/CMakeFiles/memfd_shm.dir/all
+
+.PHONY : src2/all
+
+# Convenience name for "clean" pass in the directory.
+src2/clean: src2/CMakeFiles/memfd_shm.dir/clean
+
+.PHONY : src2/clean
+
+# Convenience name for "preinstall" pass in the directory.
+src2/preinstall:
+
+.PHONY : src2/preinstall
+
+#=============================================================================
+# Target rules for target src2/CMakeFiles/memfd_shm.dir
+
+# All Build rule for target.
+src2/CMakeFiles/memfd_shm.dir/all:
+	$(MAKE) -f src2/CMakeFiles/memfd_shm.dir/build.make src2/CMakeFiles/memfd_shm.dir/depend
+	$(MAKE) -f src2/CMakeFiles/memfd_shm.dir/build.make src2/CMakeFiles/memfd_shm.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles --progress-num=5,6,7,8 "Built target memfd_shm"
+.PHONY : src2/CMakeFiles/memfd_shm.dir/all
+
+# Include target in all.
+all: src2/CMakeFiles/memfd_shm.dir/all
+
+.PHONY : all
+
+# Build rule for subdir invocation for target.
+src2/CMakeFiles/memfd_shm.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles 4
+	$(MAKE) -f CMakeFiles/Makefile2 src2/CMakeFiles/memfd_shm.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles 0
+.PHONY : src2/CMakeFiles/memfd_shm.dir/rule
+
+# Convenience name for target.
+memfd_shm: src2/CMakeFiles/memfd_shm.dir/rule
+
+.PHONY : memfd_shm
+
+# clean rule for target.
+src2/CMakeFiles/memfd_shm.dir/clean:
+	$(MAKE) -f src2/CMakeFiles/memfd_shm.dir/build.make src2/CMakeFiles/memfd_shm.dir/clean
+.PHONY : src2/CMakeFiles/memfd_shm.dir/clean
+
+# clean rule for target.
+clean: src2/CMakeFiles/memfd_shm.dir/clean
+
+.PHONY : clean
+
+#=============================================================================
+# Directory level rules for directory sample2
+
+# Convenience name for "all" pass in the directory.
+sample2/all: sample2/CMakeFiles/cli_snd.dir/all
+sample2/all: sample2/CMakeFiles/srv_rcv.dir/all
+sample2/all: sample2/CMakeFiles/client.dir/all
+sample2/all: sample2/CMakeFiles/server.dir/all
+
+.PHONY : sample2/all
+
+# Convenience name for "clean" pass in the directory.
+sample2/clean: sample2/CMakeFiles/cli_snd.dir/clean
+sample2/clean: sample2/CMakeFiles/srv_rcv.dir/clean
+sample2/clean: sample2/CMakeFiles/client.dir/clean
+sample2/clean: sample2/CMakeFiles/server.dir/clean
+
+.PHONY : sample2/clean
+
+# Convenience name for "preinstall" pass in the directory.
+sample2/preinstall:
+
+.PHONY : sample2/preinstall
+
+#=============================================================================
+# Target rules for target sample2/CMakeFiles/cli_snd.dir
+
+# All Build rule for target.
+sample2/CMakeFiles/cli_snd.dir/all: src2/CMakeFiles/memfd_shm.dir/all
+	$(MAKE) -f sample2/CMakeFiles/cli_snd.dir/build.make sample2/CMakeFiles/cli_snd.dir/depend
+	$(MAKE) -f sample2/CMakeFiles/cli_snd.dir/build.make sample2/CMakeFiles/cli_snd.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles --progress-num=1,2 "Built target cli_snd"
+.PHONY : sample2/CMakeFiles/cli_snd.dir/all
+
+# Include target in all.
+all: sample2/CMakeFiles/cli_snd.dir/all
+
+.PHONY : all
+
+# Build rule for subdir invocation for target.
+sample2/CMakeFiles/cli_snd.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles 6
+	$(MAKE) -f CMakeFiles/Makefile2 sample2/CMakeFiles/cli_snd.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles 0
+.PHONY : sample2/CMakeFiles/cli_snd.dir/rule
+
+# Convenience name for target.
+cli_snd: sample2/CMakeFiles/cli_snd.dir/rule
+
+.PHONY : cli_snd
+
+# clean rule for target.
+sample2/CMakeFiles/cli_snd.dir/clean:
+	$(MAKE) -f sample2/CMakeFiles/cli_snd.dir/build.make sample2/CMakeFiles/cli_snd.dir/clean
+.PHONY : sample2/CMakeFiles/cli_snd.dir/clean
+
+# clean rule for target.
+clean: sample2/CMakeFiles/cli_snd.dir/clean
+
+.PHONY : clean
+
+#=============================================================================
+# Target rules for target sample2/CMakeFiles/srv_rcv.dir
+
+# All Build rule for target.
+sample2/CMakeFiles/srv_rcv.dir/all: src2/CMakeFiles/memfd_shm.dir/all
+	$(MAKE) -f sample2/CMakeFiles/srv_rcv.dir/build.make sample2/CMakeFiles/srv_rcv.dir/depend
+	$(MAKE) -f sample2/CMakeFiles/srv_rcv.dir/build.make sample2/CMakeFiles/srv_rcv.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles --progress-num=11,12 "Built target srv_rcv"
+.PHONY : sample2/CMakeFiles/srv_rcv.dir/all
+
+# Include target in all.
+all: sample2/CMakeFiles/srv_rcv.dir/all
+
+.PHONY : all
+
+# Build rule for subdir invocation for target.
+sample2/CMakeFiles/srv_rcv.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles 6
+	$(MAKE) -f CMakeFiles/Makefile2 sample2/CMakeFiles/srv_rcv.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles 0
+.PHONY : sample2/CMakeFiles/srv_rcv.dir/rule
+
+# Convenience name for target.
+srv_rcv: sample2/CMakeFiles/srv_rcv.dir/rule
+
+.PHONY : srv_rcv
+
+# clean rule for target.
+sample2/CMakeFiles/srv_rcv.dir/clean:
+	$(MAKE) -f sample2/CMakeFiles/srv_rcv.dir/build.make sample2/CMakeFiles/srv_rcv.dir/clean
+.PHONY : sample2/CMakeFiles/srv_rcv.dir/clean
+
+# clean rule for target.
+clean: sample2/CMakeFiles/srv_rcv.dir/clean
+
+.PHONY : clean
+
+#=============================================================================
+# Target rules for target sample2/CMakeFiles/client.dir
+
+# All Build rule for target.
+sample2/CMakeFiles/client.dir/all: src2/CMakeFiles/memfd_shm.dir/all
+	$(MAKE) -f sample2/CMakeFiles/client.dir/build.make sample2/CMakeFiles/client.dir/depend
+	$(MAKE) -f sample2/CMakeFiles/client.dir/build.make sample2/CMakeFiles/client.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles --progress-num=3,4 "Built target client"
+.PHONY : sample2/CMakeFiles/client.dir/all
+
+# Include target in all.
+all: sample2/CMakeFiles/client.dir/all
+
+.PHONY : all
+
+# Build rule for subdir invocation for target.
+sample2/CMakeFiles/client.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles 6
+	$(MAKE) -f CMakeFiles/Makefile2 sample2/CMakeFiles/client.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles 0
+.PHONY : sample2/CMakeFiles/client.dir/rule
+
+# Convenience name for target.
+client: sample2/CMakeFiles/client.dir/rule
+
+.PHONY : client
+
+# clean rule for target.
+sample2/CMakeFiles/client.dir/clean:
+	$(MAKE) -f sample2/CMakeFiles/client.dir/build.make sample2/CMakeFiles/client.dir/clean
+.PHONY : sample2/CMakeFiles/client.dir/clean
+
+# clean rule for target.
+clean: sample2/CMakeFiles/client.dir/clean
+
+.PHONY : clean
+
+#=============================================================================
+# Target rules for target sample2/CMakeFiles/server.dir
+
+# All Build rule for target.
+sample2/CMakeFiles/server.dir/all: src2/CMakeFiles/memfd_shm.dir/all
+	$(MAKE) -f sample2/CMakeFiles/server.dir/build.make sample2/CMakeFiles/server.dir/depend
+	$(MAKE) -f sample2/CMakeFiles/server.dir/build.make sample2/CMakeFiles/server.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles --progress-num=9,10 "Built target server"
+.PHONY : sample2/CMakeFiles/server.dir/all
+
+# Include target in all.
+all: sample2/CMakeFiles/server.dir/all
+
+.PHONY : all
+
+# Build rule for subdir invocation for target.
+sample2/CMakeFiles/server.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles 6
+	$(MAKE) -f CMakeFiles/Makefile2 sample2/CMakeFiles/server.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles 0
+.PHONY : sample2/CMakeFiles/server.dir/rule
+
+# Convenience name for target.
+server: sample2/CMakeFiles/server.dir/rule
+
+.PHONY : server
+
+# clean rule for target.
+sample2/CMakeFiles/server.dir/clean:
+	$(MAKE) -f sample2/CMakeFiles/server.dir/build.make sample2/CMakeFiles/server.dir/clean
+.PHONY : sample2/CMakeFiles/server.dir/clean
+
+# clean rule for target.
+clean: sample2/CMakeFiles/server.dir/clean
+
+.PHONY : clean
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+
diff --git a/build/CMakeFiles/TargetDirectories.txt b/build/CMakeFiles/TargetDirectories.txt
new file mode 100644
index 0000000..2671897
--- /dev/null
+++ b/build/CMakeFiles/TargetDirectories.txt
@@ -0,0 +1,11 @@
+/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/rebuild_cache.dir
+/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/edit_cache.dir
+/home/basic/workspace/code/go/vaproc/repository/memfd/build/src2/CMakeFiles/rebuild_cache.dir
+/home/basic/workspace/code/go/vaproc/repository/memfd/build/src2/CMakeFiles/edit_cache.dir
+/home/basic/workspace/code/go/vaproc/repository/memfd/build/src2/CMakeFiles/memfd_shm.dir
+/home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2/CMakeFiles/rebuild_cache.dir
+/home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2/CMakeFiles/edit_cache.dir
+/home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2/CMakeFiles/cli_snd.dir
+/home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2/CMakeFiles/srv_rcv.dir
+/home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2/CMakeFiles/client.dir
+/home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2/CMakeFiles/server.dir
diff --git a/build/CMakeFiles/cmake.check_cache b/build/CMakeFiles/cmake.check_cache
new file mode 100644
index 0000000..3dccd73
--- /dev/null
+++ b/build/CMakeFiles/cmake.check_cache
@@ -0,0 +1 @@
+# This file is generated by cmake for dependency checking of the CMakeCache.txt file
diff --git a/build/CMakeFiles/feature_tests.bin b/build/CMakeFiles/feature_tests.bin
new file mode 100755
index 0000000..59a0e71
--- /dev/null
+++ b/build/CMakeFiles/feature_tests.bin
Binary files differ
diff --git a/build/CMakeFiles/feature_tests.c b/build/CMakeFiles/feature_tests.c
new file mode 100644
index 0000000..83e86dd
--- /dev/null
+++ b/build/CMakeFiles/feature_tests.c
@@ -0,0 +1,34 @@
+
+  const char features[] = {"\n"
+"C_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304
+"1"
+#else
+"0"
+#endif
+"c_function_prototypes\n"
+"C_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+"1"
+#else
+"0"
+#endif
+"c_restrict\n"
+"C_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201000L
+"1"
+#else
+"0"
+#endif
+"c_static_assert\n"
+"C_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+"1"
+#else
+"0"
+#endif
+"c_variadic_macros\n"
+
+};
+
+int main(int argc, char** argv) { (void)argv; return features[argc]; }
diff --git a/build/CMakeFiles/feature_tests.cxx b/build/CMakeFiles/feature_tests.cxx
new file mode 100644
index 0000000..b93418c
--- /dev/null
+++ b/build/CMakeFiles/feature_tests.cxx
@@ -0,0 +1,405 @@
+
+  const char features[] = {"\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L
+"1"
+#else
+"0"
+#endif
+"cxx_aggregate_default_initializers\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_alias_templates\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_alignas\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_alignof\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_attributes\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_attribute_deprecated\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_auto_type\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_binary_literals\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_constexpr\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_contextual_conversions\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_decltype\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_decltype_auto\n"
+"CXX_FEATURE:"
+#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_decltype_incomplete_return_types\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_default_function_template_args\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_defaulted_functions\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_defaulted_move_initializers\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_delegating_constructors\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_deleted_functions\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_digit_separators\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_enum_forward_declarations\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_explicit_conversions\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_extended_friend_declarations\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_extern_templates\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_final\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_func_identifier\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_generalized_initializers\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_generic_lambdas\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_inheriting_constructors\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_inline_namespaces\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_lambdas\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_lambda_init_captures\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_local_type_template_args\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_long_long_type\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_noexcept\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_nonstatic_member_init\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_nullptr\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_override\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_range_for\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_raw_string_literals\n"
+"CXX_FEATURE:"
+#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_reference_qualified_functions\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L
+"1"
+#else
+"0"
+#endif
+"cxx_relaxed_constexpr\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_return_type_deduction\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_right_angle_brackets\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_rvalue_references\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_sizeof_member\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_static_assert\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_strong_enums\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && __cplusplus
+"1"
+#else
+"0"
+#endif
+"cxx_template_template_parameters\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_thread_local\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_trailing_return_types\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_unicode_literals\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_uniform_initialization\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_unrestricted_unions\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L
+"1"
+#else
+"0"
+#endif
+"cxx_user_literals\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L
+"1"
+#else
+"0"
+#endif
+"cxx_variable_templates\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_variadic_macros\n"
+"CXX_FEATURE:"
+#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
+"1"
+#else
+"0"
+#endif
+"cxx_variadic_templates\n"
+
+};
+
+int main(int argc, char** argv) { (void)argv; return features[argc]; }
diff --git a/build/CMakeFiles/progress.marks b/build/CMakeFiles/progress.marks
new file mode 100644
index 0000000..48082f7
--- /dev/null
+++ b/build/CMakeFiles/progress.marks
@@ -0,0 +1 @@
+12
diff --git a/build/Makefile b/build/Makefile
new file mode 100644
index 0000000..7e6a416
--- /dev/null
+++ b/build/Makefile
@@ -0,0 +1,204 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.13
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake
+
+# The command to remove a file.
+RM = /usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/basic/workspace/code/go/vaproc/repository/memfd
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/basic/workspace/code/go/vaproc/repository/memfd/build
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+	/usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..."
+	/usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# The main all target
+all: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles/progress.marks
+	$(MAKE) -f CMakeFiles/Makefile2 all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+	$(MAKE) -f CMakeFiles/Makefile2 clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+	$(MAKE) -f CMakeFiles/Makefile2 preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+	$(MAKE) -f CMakeFiles/Makefile2 preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+	$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+#=============================================================================
+# Target rules for targets named memfd_shm
+
+# Build rule for target.
+memfd_shm: cmake_check_build_system
+	$(MAKE) -f CMakeFiles/Makefile2 memfd_shm
+.PHONY : memfd_shm
+
+# fast build rule for target.
+memfd_shm/fast:
+	$(MAKE) -f src2/CMakeFiles/memfd_shm.dir/build.make src2/CMakeFiles/memfd_shm.dir/build
+.PHONY : memfd_shm/fast
+
+#=============================================================================
+# Target rules for targets named cli_snd
+
+# Build rule for target.
+cli_snd: cmake_check_build_system
+	$(MAKE) -f CMakeFiles/Makefile2 cli_snd
+.PHONY : cli_snd
+
+# fast build rule for target.
+cli_snd/fast:
+	$(MAKE) -f sample2/CMakeFiles/cli_snd.dir/build.make sample2/CMakeFiles/cli_snd.dir/build
+.PHONY : cli_snd/fast
+
+#=============================================================================
+# Target rules for targets named srv_rcv
+
+# Build rule for target.
+srv_rcv: cmake_check_build_system
+	$(MAKE) -f CMakeFiles/Makefile2 srv_rcv
+.PHONY : srv_rcv
+
+# fast build rule for target.
+srv_rcv/fast:
+	$(MAKE) -f sample2/CMakeFiles/srv_rcv.dir/build.make sample2/CMakeFiles/srv_rcv.dir/build
+.PHONY : srv_rcv/fast
+
+#=============================================================================
+# Target rules for targets named client
+
+# Build rule for target.
+client: cmake_check_build_system
+	$(MAKE) -f CMakeFiles/Makefile2 client
+.PHONY : client
+
+# fast build rule for target.
+client/fast:
+	$(MAKE) -f sample2/CMakeFiles/client.dir/build.make sample2/CMakeFiles/client.dir/build
+.PHONY : client/fast
+
+#=============================================================================
+# Target rules for targets named server
+
+# Build rule for target.
+server: cmake_check_build_system
+	$(MAKE) -f CMakeFiles/Makefile2 server
+.PHONY : server
+
+# fast build rule for target.
+server/fast:
+	$(MAKE) -f sample2/CMakeFiles/server.dir/build.make sample2/CMakeFiles/server.dir/build
+.PHONY : server/fast
+
+# Help Target
+help:
+	@echo "The following are some of the valid targets for this Makefile:"
+	@echo "... all (the default if no target is provided)"
+	@echo "... clean"
+	@echo "... depend"
+	@echo "... rebuild_cache"
+	@echo "... edit_cache"
+	@echo "... memfd_shm"
+	@echo "... cli_snd"
+	@echo "... srv_rcv"
+	@echo "... client"
+	@echo "... server"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+
diff --git a/build/cmake_install.cmake b/build/cmake_install.cmake
new file mode 100644
index 0000000..253ab83
--- /dev/null
+++ b/build/cmake_install.cmake
@@ -0,0 +1,56 @@
+# Install script for directory: /home/basic/workspace/code/go/vaproc/repository/memfd
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  set(CMAKE_INSTALL_PREFIX "/usr/local")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  if(BUILD_TYPE)
+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  else()
+    set(CMAKE_INSTALL_CONFIG_NAME "")
+  endif()
+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+  if(COMPONENT)
+    message(STATUS "Install component: \"${COMPONENT}\"")
+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  else()
+    set(CMAKE_INSTALL_COMPONENT)
+  endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+  set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+# Is this installation the result of a crosscompile?
+if(NOT DEFINED CMAKE_CROSSCOMPILING)
+  set(CMAKE_CROSSCOMPILING "FALSE")
+endif()
+
+if(NOT CMAKE_INSTALL_LOCAL_ONLY)
+  # Include the install script for each subdirectory.
+  include("/home/basic/workspace/code/go/vaproc/repository/memfd/build/src2/cmake_install.cmake")
+  include("/home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2/cmake_install.cmake")
+
+endif()
+
+if(CMAKE_INSTALL_COMPONENT)
+  set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
+else()
+  set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
+endif()
+
+string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
+       "${CMAKE_INSTALL_MANIFEST_FILES}")
+file(WRITE "/home/basic/workspace/code/go/vaproc/repository/memfd/build/${CMAKE_INSTALL_MANIFEST}"
+     "${CMAKE_INSTALL_MANIFEST_CONTENT}")
diff --git a/build/sample2/CMakeFiles/CMakeDirectoryInformation.cmake b/build/sample2/CMakeFiles/CMakeDirectoryInformation.cmake
new file mode 100644
index 0000000..00d2501
--- /dev/null
+++ b/build/sample2/CMakeFiles/CMakeDirectoryInformation.cmake
@@ -0,0 +1,16 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.13
+
+# Relative path conversion top directories.
+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/basic/workspace/code/go/vaproc/repository/memfd")
+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/basic/workspace/code/go/vaproc/repository/memfd/build")
+
+# Force unix paths in dependencies.
+set(CMAKE_FORCE_UNIX_PATHS 1)
+
+
+# The C and CXX include file regular expressions for this directory.
+set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
+set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
+set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
+set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
diff --git a/build/sample2/CMakeFiles/cli_snd.dir/CXX.includecache b/build/sample2/CMakeFiles/cli_snd.dir/CXX.includecache
new file mode 100644
index 0000000..7670339
--- /dev/null
+++ b/build/sample2/CMakeFiles/cli_snd.dir/CXX.includecache
@@ -0,0 +1,36 @@
+#IncludeRegexLine: ^[ 	]*[#%][ 	]*(include|import)[ 	]*[<"]([^">]+)([">])
+
+#IncludeRegexScan: ^.*$
+
+#IncludeRegexComplain: ^$
+
+#IncludeRegexTransform: 
+
+..//src2/shmh.h
+memfd_shm.h
+../src2/memfd_shm.h
+transfd_shm.h
+../src2/transfd_shm.h
+epollfd_shm.h
+../src2/epollfd_shm.h
+
+../src2/epollfd_shm.h
+
+../src2/memfd_shm.h
+
+../src2/transfd_shm.h
+
+/home/basic/workspace/code/go/vaproc/repository/memfd/sample2/cli_snd.cpp
+stdio.h
+-
+unistd.h
+-
+sys/types.h
+-
+sys/stat.h
+-
+src2/shmh.h
+/home/basic/workspace/code/go/vaproc/repository/memfd/sample2/src2/shmh.h
+chrono
+-
+
diff --git a/build/sample2/CMakeFiles/cli_snd.dir/DependInfo.cmake b/build/sample2/CMakeFiles/cli_snd.dir/DependInfo.cmake
new file mode 100644
index 0000000..1c271cf
--- /dev/null
+++ b/build/sample2/CMakeFiles/cli_snd.dir/DependInfo.cmake
@@ -0,0 +1,22 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  "CXX"
+  )
+# The set of files for implicit dependencies of each language:
+set(CMAKE_DEPENDS_CHECK_CXX
+  "/home/basic/workspace/code/go/vaproc/repository/memfd/sample2/cli_snd.cpp" "/home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2/CMakeFiles/cli_snd.dir/cli_snd.cpp.o"
+  )
+set(CMAKE_CXX_COMPILER_ID "GNU")
+
+# The include file search paths:
+set(CMAKE_CXX_TARGET_INCLUDE_PATH
+  "../"
+  )
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  "/home/basic/workspace/code/go/vaproc/repository/memfd/build/src2/CMakeFiles/memfd_shm.dir/DependInfo.cmake"
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/build/sample2/CMakeFiles/cli_snd.dir/build.make b/build/sample2/CMakeFiles/cli_snd.dir/build.make
new file mode 100644
index 0000000..43c8ea3
--- /dev/null
+++ b/build/sample2/CMakeFiles/cli_snd.dir/build.make
@@ -0,0 +1,99 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.13
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake
+
+# The command to remove a file.
+RM = /usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/basic/workspace/code/go/vaproc/repository/memfd
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/basic/workspace/code/go/vaproc/repository/memfd/build
+
+# Include any dependencies generated for this target.
+include sample2/CMakeFiles/cli_snd.dir/depend.make
+
+# Include the progress variables for this target.
+include sample2/CMakeFiles/cli_snd.dir/progress.make
+
+# Include the compile flags for this target's objects.
+include sample2/CMakeFiles/cli_snd.dir/flags.make
+
+sample2/CMakeFiles/cli_snd.dir/cli_snd.cpp.o: sample2/CMakeFiles/cli_snd.dir/flags.make
+sample2/CMakeFiles/cli_snd.dir/cli_snd.cpp.o: ../sample2/cli_snd.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object sample2/CMakeFiles/cli_snd.dir/cli_snd.cpp.o"
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2 && /usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/cli_snd.dir/cli_snd.cpp.o -c /home/basic/workspace/code/go/vaproc/repository/memfd/sample2/cli_snd.cpp
+
+sample2/CMakeFiles/cli_snd.dir/cli_snd.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/cli_snd.dir/cli_snd.cpp.i"
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2 && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/basic/workspace/code/go/vaproc/repository/memfd/sample2/cli_snd.cpp > CMakeFiles/cli_snd.dir/cli_snd.cpp.i
+
+sample2/CMakeFiles/cli_snd.dir/cli_snd.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/cli_snd.dir/cli_snd.cpp.s"
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2 && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/basic/workspace/code/go/vaproc/repository/memfd/sample2/cli_snd.cpp -o CMakeFiles/cli_snd.dir/cli_snd.cpp.s
+
+# Object files for target cli_snd
+cli_snd_OBJECTS = \
+"CMakeFiles/cli_snd.dir/cli_snd.cpp.o"
+
+# External object files for target cli_snd
+cli_snd_EXTERNAL_OBJECTS =
+
+sample2/cli_snd: sample2/CMakeFiles/cli_snd.dir/cli_snd.cpp.o
+sample2/cli_snd: sample2/CMakeFiles/cli_snd.dir/build.make
+sample2/cli_snd: src2/libmemfd_shm.so
+sample2/cli_snd: sample2/CMakeFiles/cli_snd.dir/link.txt
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable cli_snd"
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2 && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/cli_snd.dir/link.txt --verbose=$(VERBOSE)
+
+# Rule to build all files generated by this target.
+sample2/CMakeFiles/cli_snd.dir/build: sample2/cli_snd
+
+.PHONY : sample2/CMakeFiles/cli_snd.dir/build
+
+sample2/CMakeFiles/cli_snd.dir/clean:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2 && $(CMAKE_COMMAND) -P CMakeFiles/cli_snd.dir/cmake_clean.cmake
+.PHONY : sample2/CMakeFiles/cli_snd.dir/clean
+
+sample2/CMakeFiles/cli_snd.dir/depend:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/basic/workspace/code/go/vaproc/repository/memfd /home/basic/workspace/code/go/vaproc/repository/memfd/sample2 /home/basic/workspace/code/go/vaproc/repository/memfd/build /home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2 /home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2/CMakeFiles/cli_snd.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : sample2/CMakeFiles/cli_snd.dir/depend
+
diff --git a/build/sample2/CMakeFiles/cli_snd.dir/cmake_clean.cmake b/build/sample2/CMakeFiles/cli_snd.dir/cmake_clean.cmake
new file mode 100644
index 0000000..7831180
--- /dev/null
+++ b/build/sample2/CMakeFiles/cli_snd.dir/cmake_clean.cmake
@@ -0,0 +1,10 @@
+file(REMOVE_RECURSE
+  "CMakeFiles/cli_snd.dir/cli_snd.cpp.o"
+  "cli_snd.pdb"
+  "cli_snd"
+)
+
+# Per-language clean rules from dependency scanning.
+foreach(lang CXX)
+  include(CMakeFiles/cli_snd.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/build/sample2/CMakeFiles/cli_snd.dir/depend.internal b/build/sample2/CMakeFiles/cli_snd.dir/depend.internal
new file mode 100644
index 0000000..1d77aa6
--- /dev/null
+++ b/build/sample2/CMakeFiles/cli_snd.dir/depend.internal
@@ -0,0 +1,9 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.13
+
+sample2/CMakeFiles/cli_snd.dir/cli_snd.cpp.o
+ ..//src2/shmh.h
+ ../src2/epollfd_shm.h
+ ../src2/memfd_shm.h
+ ../src2/transfd_shm.h
+ /home/basic/workspace/code/go/vaproc/repository/memfd/sample2/cli_snd.cpp
diff --git a/build/sample2/CMakeFiles/cli_snd.dir/depend.make b/build/sample2/CMakeFiles/cli_snd.dir/depend.make
new file mode 100644
index 0000000..9a72fcb
--- /dev/null
+++ b/build/sample2/CMakeFiles/cli_snd.dir/depend.make
@@ -0,0 +1,9 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.13
+
+sample2/CMakeFiles/cli_snd.dir/cli_snd.cpp.o: ../src2/shmh.h
+sample2/CMakeFiles/cli_snd.dir/cli_snd.cpp.o: ../src2/epollfd_shm.h
+sample2/CMakeFiles/cli_snd.dir/cli_snd.cpp.o: ../src2/memfd_shm.h
+sample2/CMakeFiles/cli_snd.dir/cli_snd.cpp.o: ../src2/transfd_shm.h
+sample2/CMakeFiles/cli_snd.dir/cli_snd.cpp.o: ../sample2/cli_snd.cpp
+
diff --git a/build/sample2/CMakeFiles/cli_snd.dir/flags.make b/build/sample2/CMakeFiles/cli_snd.dir/flags.make
new file mode 100644
index 0000000..8652c45
--- /dev/null
+++ b/build/sample2/CMakeFiles/cli_snd.dir/flags.make
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.13
+
+# compile CXX with /usr/bin/c++
+CXX_FLAGS =   -g -O0 -std=c++11
+
+CXX_DEFINES = 
+
+CXX_INCLUDES = -I/home/basic/workspace/code/go/vaproc/repository/memfd 
+
diff --git a/build/sample2/CMakeFiles/cli_snd.dir/link.txt b/build/sample2/CMakeFiles/cli_snd.dir/link.txt
new file mode 100644
index 0000000..b5020ae
--- /dev/null
+++ b/build/sample2/CMakeFiles/cli_snd.dir/link.txt
@@ -0,0 +1 @@
+/usr/bin/c++     CMakeFiles/cli_snd.dir/cli_snd.cpp.o  -o cli_snd -Wl,-rpath,/home/basic/workspace/code/go/vaproc/repository/memfd/build/src2 ../src2/libmemfd_shm.so -lpthread 
diff --git a/build/sample2/CMakeFiles/cli_snd.dir/progress.make b/build/sample2/CMakeFiles/cli_snd.dir/progress.make
new file mode 100644
index 0000000..abadeb0
--- /dev/null
+++ b/build/sample2/CMakeFiles/cli_snd.dir/progress.make
@@ -0,0 +1,3 @@
+CMAKE_PROGRESS_1 = 1
+CMAKE_PROGRESS_2 = 2
+
diff --git a/build/sample2/CMakeFiles/client.dir/CXX.includecache b/build/sample2/CMakeFiles/client.dir/CXX.includecache
new file mode 100644
index 0000000..67c4fd9
--- /dev/null
+++ b/build/sample2/CMakeFiles/client.dir/CXX.includecache
@@ -0,0 +1,38 @@
+#IncludeRegexLine: ^[ 	]*[#%][ 	]*(include|import)[ 	]*[<"]([^">]+)([">])
+
+#IncludeRegexScan: ^.*$
+
+#IncludeRegexComplain: ^$
+
+#IncludeRegexTransform: 
+
+..//src2/shmh.h
+memfd_shm.h
+../src2/memfd_shm.h
+transfd_shm.h
+../src2/transfd_shm.h
+epollfd_shm.h
+../src2/epollfd_shm.h
+
+../src2/epollfd_shm.h
+
+../src2/memfd_shm.h
+
+../src2/transfd_shm.h
+
+/home/basic/workspace/code/go/vaproc/repository/memfd/sample2/client.cpp
+cstring
+-
+stdio.h
+-
+unistd.h
+-
+sys/types.h
+-
+sys/stat.h
+-
+src2/shmh.h
+/home/basic/workspace/code/go/vaproc/repository/memfd/sample2/src2/shmh.h
+chrono
+-
+
diff --git a/build/sample2/CMakeFiles/client.dir/DependInfo.cmake b/build/sample2/CMakeFiles/client.dir/DependInfo.cmake
new file mode 100644
index 0000000..e13f23f
--- /dev/null
+++ b/build/sample2/CMakeFiles/client.dir/DependInfo.cmake
@@ -0,0 +1,22 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  "CXX"
+  )
+# The set of files for implicit dependencies of each language:
+set(CMAKE_DEPENDS_CHECK_CXX
+  "/home/basic/workspace/code/go/vaproc/repository/memfd/sample2/client.cpp" "/home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2/CMakeFiles/client.dir/client.cpp.o"
+  )
+set(CMAKE_CXX_COMPILER_ID "GNU")
+
+# The include file search paths:
+set(CMAKE_CXX_TARGET_INCLUDE_PATH
+  "../"
+  )
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  "/home/basic/workspace/code/go/vaproc/repository/memfd/build/src2/CMakeFiles/memfd_shm.dir/DependInfo.cmake"
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/build/sample2/CMakeFiles/client.dir/build.make b/build/sample2/CMakeFiles/client.dir/build.make
new file mode 100644
index 0000000..0dac56f
--- /dev/null
+++ b/build/sample2/CMakeFiles/client.dir/build.make
@@ -0,0 +1,99 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.13
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake
+
+# The command to remove a file.
+RM = /usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/basic/workspace/code/go/vaproc/repository/memfd
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/basic/workspace/code/go/vaproc/repository/memfd/build
+
+# Include any dependencies generated for this target.
+include sample2/CMakeFiles/client.dir/depend.make
+
+# Include the progress variables for this target.
+include sample2/CMakeFiles/client.dir/progress.make
+
+# Include the compile flags for this target's objects.
+include sample2/CMakeFiles/client.dir/flags.make
+
+sample2/CMakeFiles/client.dir/client.cpp.o: sample2/CMakeFiles/client.dir/flags.make
+sample2/CMakeFiles/client.dir/client.cpp.o: ../sample2/client.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object sample2/CMakeFiles/client.dir/client.cpp.o"
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2 && /usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/client.dir/client.cpp.o -c /home/basic/workspace/code/go/vaproc/repository/memfd/sample2/client.cpp
+
+sample2/CMakeFiles/client.dir/client.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/client.dir/client.cpp.i"
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2 && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/basic/workspace/code/go/vaproc/repository/memfd/sample2/client.cpp > CMakeFiles/client.dir/client.cpp.i
+
+sample2/CMakeFiles/client.dir/client.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/client.dir/client.cpp.s"
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2 && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/basic/workspace/code/go/vaproc/repository/memfd/sample2/client.cpp -o CMakeFiles/client.dir/client.cpp.s
+
+# Object files for target client
+client_OBJECTS = \
+"CMakeFiles/client.dir/client.cpp.o"
+
+# External object files for target client
+client_EXTERNAL_OBJECTS =
+
+sample2/client: sample2/CMakeFiles/client.dir/client.cpp.o
+sample2/client: sample2/CMakeFiles/client.dir/build.make
+sample2/client: src2/libmemfd_shm.so
+sample2/client: sample2/CMakeFiles/client.dir/link.txt
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable client"
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2 && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/client.dir/link.txt --verbose=$(VERBOSE)
+
+# Rule to build all files generated by this target.
+sample2/CMakeFiles/client.dir/build: sample2/client
+
+.PHONY : sample2/CMakeFiles/client.dir/build
+
+sample2/CMakeFiles/client.dir/clean:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2 && $(CMAKE_COMMAND) -P CMakeFiles/client.dir/cmake_clean.cmake
+.PHONY : sample2/CMakeFiles/client.dir/clean
+
+sample2/CMakeFiles/client.dir/depend:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/basic/workspace/code/go/vaproc/repository/memfd /home/basic/workspace/code/go/vaproc/repository/memfd/sample2 /home/basic/workspace/code/go/vaproc/repository/memfd/build /home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2 /home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2/CMakeFiles/client.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : sample2/CMakeFiles/client.dir/depend
+
diff --git a/build/sample2/CMakeFiles/client.dir/cmake_clean.cmake b/build/sample2/CMakeFiles/client.dir/cmake_clean.cmake
new file mode 100644
index 0000000..bc3a3f2
--- /dev/null
+++ b/build/sample2/CMakeFiles/client.dir/cmake_clean.cmake
@@ -0,0 +1,10 @@
+file(REMOVE_RECURSE
+  "CMakeFiles/client.dir/client.cpp.o"
+  "client.pdb"
+  "client"
+)
+
+# Per-language clean rules from dependency scanning.
+foreach(lang CXX)
+  include(CMakeFiles/client.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/build/sample2/CMakeFiles/client.dir/depend.internal b/build/sample2/CMakeFiles/client.dir/depend.internal
new file mode 100644
index 0000000..388db98
--- /dev/null
+++ b/build/sample2/CMakeFiles/client.dir/depend.internal
@@ -0,0 +1,9 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.13
+
+sample2/CMakeFiles/client.dir/client.cpp.o
+ ..//src2/shmh.h
+ ../src2/epollfd_shm.h
+ ../src2/memfd_shm.h
+ ../src2/transfd_shm.h
+ /home/basic/workspace/code/go/vaproc/repository/memfd/sample2/client.cpp
diff --git a/build/sample2/CMakeFiles/client.dir/depend.make b/build/sample2/CMakeFiles/client.dir/depend.make
new file mode 100644
index 0000000..48f64ee
--- /dev/null
+++ b/build/sample2/CMakeFiles/client.dir/depend.make
@@ -0,0 +1,9 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.13
+
+sample2/CMakeFiles/client.dir/client.cpp.o: ../src2/shmh.h
+sample2/CMakeFiles/client.dir/client.cpp.o: ../src2/epollfd_shm.h
+sample2/CMakeFiles/client.dir/client.cpp.o: ../src2/memfd_shm.h
+sample2/CMakeFiles/client.dir/client.cpp.o: ../src2/transfd_shm.h
+sample2/CMakeFiles/client.dir/client.cpp.o: ../sample2/client.cpp
+
diff --git a/build/sample2/CMakeFiles/client.dir/flags.make b/build/sample2/CMakeFiles/client.dir/flags.make
new file mode 100644
index 0000000..8652c45
--- /dev/null
+++ b/build/sample2/CMakeFiles/client.dir/flags.make
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.13
+
+# compile CXX with /usr/bin/c++
+CXX_FLAGS =   -g -O0 -std=c++11
+
+CXX_DEFINES = 
+
+CXX_INCLUDES = -I/home/basic/workspace/code/go/vaproc/repository/memfd 
+
diff --git a/build/sample2/CMakeFiles/client.dir/link.txt b/build/sample2/CMakeFiles/client.dir/link.txt
new file mode 100644
index 0000000..d640c2d
--- /dev/null
+++ b/build/sample2/CMakeFiles/client.dir/link.txt
@@ -0,0 +1 @@
+/usr/bin/c++     CMakeFiles/client.dir/client.cpp.o  -o client -Wl,-rpath,/home/basic/workspace/code/go/vaproc/repository/memfd/build/src2 ../src2/libmemfd_shm.so -lpthread 
diff --git a/build/sample2/CMakeFiles/client.dir/progress.make b/build/sample2/CMakeFiles/client.dir/progress.make
new file mode 100644
index 0000000..8c8fb6f
--- /dev/null
+++ b/build/sample2/CMakeFiles/client.dir/progress.make
@@ -0,0 +1,3 @@
+CMAKE_PROGRESS_1 = 3
+CMAKE_PROGRESS_2 = 4
+
diff --git a/build/sample2/CMakeFiles/progress.marks b/build/sample2/CMakeFiles/progress.marks
new file mode 100644
index 0000000..48082f7
--- /dev/null
+++ b/build/sample2/CMakeFiles/progress.marks
@@ -0,0 +1 @@
+12
diff --git a/build/sample2/CMakeFiles/server.dir/C.includecache b/build/sample2/CMakeFiles/server.dir/C.includecache
new file mode 100644
index 0000000..706d7c1
--- /dev/null
+++ b/build/sample2/CMakeFiles/server.dir/C.includecache
@@ -0,0 +1,28 @@
+#IncludeRegexLine: ^[ 	]*[#%][ 	]*(include|import)[ 	]*[<"]([^">]+)([">])
+
+#IncludeRegexScan: ^.*$
+
+#IncludeRegexComplain: ^$
+
+#IncludeRegexTransform: 
+
+..//src2/shmh.h
+memfd_shm.h
+../src2/memfd_shm.h
+transfd_shm.h
+../src2/transfd_shm.h
+epollfd_shm.h
+../src2/epollfd_shm.h
+
+../src2/epollfd_shm.h
+
+../src2/memfd_shm.h
+
+../src2/transfd_shm.h
+
+/home/basic/workspace/code/go/vaproc/repository/memfd/sample2/server.c
+stdio.h
+-
+src2/shmh.h
+/home/basic/workspace/code/go/vaproc/repository/memfd/sample2/src2/shmh.h
+
diff --git a/build/sample2/CMakeFiles/server.dir/CXX.includecache b/build/sample2/CMakeFiles/server.dir/CXX.includecache
new file mode 100644
index 0000000..0e23c67
--- /dev/null
+++ b/build/sample2/CMakeFiles/server.dir/CXX.includecache
@@ -0,0 +1,36 @@
+#IncludeRegexLine: ^[ 	]*[#%][ 	]*(include|import)[ 	]*[<"]([^">]+)([">])
+
+#IncludeRegexScan: ^.*$
+
+#IncludeRegexComplain: ^$
+
+#IncludeRegexTransform: 
+
+..//src2/shmh.h
+memfd_shm.h
+../src2/memfd_shm.h
+transfd_shm.h
+../src2/transfd_shm.h
+epollfd_shm.h
+../src2/epollfd_shm.h
+
+../src2/epollfd_shm.h
+
+../src2/memfd_shm.h
+
+../src2/transfd_shm.h
+
+/home/basic/workspace/code/go/vaproc/repository/memfd/sample2/server.cpp
+stdio.h
+-
+src2/shmh.h
+/home/basic/workspace/code/go/vaproc/repository/memfd/sample2/src2/shmh.h
+sys/types.h
+-
+sys/stat.h
+-
+thread
+-
+unistd.h
+-
+
diff --git a/build/sample2/CMakeFiles/server.dir/DependInfo.cmake b/build/sample2/CMakeFiles/server.dir/DependInfo.cmake
new file mode 100644
index 0000000..c4298a3
--- /dev/null
+++ b/build/sample2/CMakeFiles/server.dir/DependInfo.cmake
@@ -0,0 +1,22 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  "CXX"
+  )
+# The set of files for implicit dependencies of each language:
+set(CMAKE_DEPENDS_CHECK_CXX
+  "/home/basic/workspace/code/go/vaproc/repository/memfd/sample2/server.cpp" "/home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2/CMakeFiles/server.dir/server.cpp.o"
+  )
+set(CMAKE_CXX_COMPILER_ID "GNU")
+
+# The include file search paths:
+set(CMAKE_CXX_TARGET_INCLUDE_PATH
+  "../"
+  )
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  "/home/basic/workspace/code/go/vaproc/repository/memfd/build/src2/CMakeFiles/memfd_shm.dir/DependInfo.cmake"
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/build/sample2/CMakeFiles/server.dir/build.make b/build/sample2/CMakeFiles/server.dir/build.make
new file mode 100644
index 0000000..99e3dc2
--- /dev/null
+++ b/build/sample2/CMakeFiles/server.dir/build.make
@@ -0,0 +1,99 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.13
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake
+
+# The command to remove a file.
+RM = /usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/basic/workspace/code/go/vaproc/repository/memfd
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/basic/workspace/code/go/vaproc/repository/memfd/build
+
+# Include any dependencies generated for this target.
+include sample2/CMakeFiles/server.dir/depend.make
+
+# Include the progress variables for this target.
+include sample2/CMakeFiles/server.dir/progress.make
+
+# Include the compile flags for this target's objects.
+include sample2/CMakeFiles/server.dir/flags.make
+
+sample2/CMakeFiles/server.dir/server.cpp.o: sample2/CMakeFiles/server.dir/flags.make
+sample2/CMakeFiles/server.dir/server.cpp.o: ../sample2/server.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object sample2/CMakeFiles/server.dir/server.cpp.o"
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2 && /usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/server.dir/server.cpp.o -c /home/basic/workspace/code/go/vaproc/repository/memfd/sample2/server.cpp
+
+sample2/CMakeFiles/server.dir/server.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/server.dir/server.cpp.i"
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2 && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/basic/workspace/code/go/vaproc/repository/memfd/sample2/server.cpp > CMakeFiles/server.dir/server.cpp.i
+
+sample2/CMakeFiles/server.dir/server.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/server.dir/server.cpp.s"
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2 && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/basic/workspace/code/go/vaproc/repository/memfd/sample2/server.cpp -o CMakeFiles/server.dir/server.cpp.s
+
+# Object files for target server
+server_OBJECTS = \
+"CMakeFiles/server.dir/server.cpp.o"
+
+# External object files for target server
+server_EXTERNAL_OBJECTS =
+
+sample2/server: sample2/CMakeFiles/server.dir/server.cpp.o
+sample2/server: sample2/CMakeFiles/server.dir/build.make
+sample2/server: src2/libmemfd_shm.so
+sample2/server: sample2/CMakeFiles/server.dir/link.txt
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable server"
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2 && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/server.dir/link.txt --verbose=$(VERBOSE)
+
+# Rule to build all files generated by this target.
+sample2/CMakeFiles/server.dir/build: sample2/server
+
+.PHONY : sample2/CMakeFiles/server.dir/build
+
+sample2/CMakeFiles/server.dir/clean:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2 && $(CMAKE_COMMAND) -P CMakeFiles/server.dir/cmake_clean.cmake
+.PHONY : sample2/CMakeFiles/server.dir/clean
+
+sample2/CMakeFiles/server.dir/depend:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/basic/workspace/code/go/vaproc/repository/memfd /home/basic/workspace/code/go/vaproc/repository/memfd/sample2 /home/basic/workspace/code/go/vaproc/repository/memfd/build /home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2 /home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2/CMakeFiles/server.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : sample2/CMakeFiles/server.dir/depend
+
diff --git a/build/sample2/CMakeFiles/server.dir/cmake_clean.cmake b/build/sample2/CMakeFiles/server.dir/cmake_clean.cmake
new file mode 100644
index 0000000..cee8557
--- /dev/null
+++ b/build/sample2/CMakeFiles/server.dir/cmake_clean.cmake
@@ -0,0 +1,10 @@
+file(REMOVE_RECURSE
+  "CMakeFiles/server.dir/server.cpp.o"
+  "server.pdb"
+  "server"
+)
+
+# Per-language clean rules from dependency scanning.
+foreach(lang CXX)
+  include(CMakeFiles/server.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/build/sample2/CMakeFiles/server.dir/depend.internal b/build/sample2/CMakeFiles/server.dir/depend.internal
new file mode 100644
index 0000000..a9fff7f
--- /dev/null
+++ b/build/sample2/CMakeFiles/server.dir/depend.internal
@@ -0,0 +1,9 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.13
+
+sample2/CMakeFiles/server.dir/server.cpp.o
+ ..//src2/shmh.h
+ ../src2/epollfd_shm.h
+ ../src2/memfd_shm.h
+ ../src2/transfd_shm.h
+ /home/basic/workspace/code/go/vaproc/repository/memfd/sample2/server.cpp
diff --git a/build/sample2/CMakeFiles/server.dir/depend.make b/build/sample2/CMakeFiles/server.dir/depend.make
new file mode 100644
index 0000000..6959a7f
--- /dev/null
+++ b/build/sample2/CMakeFiles/server.dir/depend.make
@@ -0,0 +1,9 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.13
+
+sample2/CMakeFiles/server.dir/server.cpp.o: ../src2/shmh.h
+sample2/CMakeFiles/server.dir/server.cpp.o: ../src2/epollfd_shm.h
+sample2/CMakeFiles/server.dir/server.cpp.o: ../src2/memfd_shm.h
+sample2/CMakeFiles/server.dir/server.cpp.o: ../src2/transfd_shm.h
+sample2/CMakeFiles/server.dir/server.cpp.o: ../sample2/server.cpp
+
diff --git a/build/sample2/CMakeFiles/server.dir/flags.make b/build/sample2/CMakeFiles/server.dir/flags.make
new file mode 100644
index 0000000..8652c45
--- /dev/null
+++ b/build/sample2/CMakeFiles/server.dir/flags.make
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.13
+
+# compile CXX with /usr/bin/c++
+CXX_FLAGS =   -g -O0 -std=c++11
+
+CXX_DEFINES = 
+
+CXX_INCLUDES = -I/home/basic/workspace/code/go/vaproc/repository/memfd 
+
diff --git a/build/sample2/CMakeFiles/server.dir/link.txt b/build/sample2/CMakeFiles/server.dir/link.txt
new file mode 100644
index 0000000..93c1b55
--- /dev/null
+++ b/build/sample2/CMakeFiles/server.dir/link.txt
@@ -0,0 +1 @@
+/usr/bin/c++     CMakeFiles/server.dir/server.cpp.o  -o server -Wl,-rpath,/home/basic/workspace/code/go/vaproc/repository/memfd/build/src2 ../src2/libmemfd_shm.so -lpthread 
diff --git a/build/sample2/CMakeFiles/server.dir/progress.make b/build/sample2/CMakeFiles/server.dir/progress.make
new file mode 100644
index 0000000..b700c2c
--- /dev/null
+++ b/build/sample2/CMakeFiles/server.dir/progress.make
@@ -0,0 +1,3 @@
+CMAKE_PROGRESS_1 = 9
+CMAKE_PROGRESS_2 = 10
+
diff --git a/build/sample2/CMakeFiles/srv_rcv.dir/CXX.includecache b/build/sample2/CMakeFiles/srv_rcv.dir/CXX.includecache
new file mode 100644
index 0000000..81564c8
--- /dev/null
+++ b/build/sample2/CMakeFiles/srv_rcv.dir/CXX.includecache
@@ -0,0 +1,36 @@
+#IncludeRegexLine: ^[ 	]*[#%][ 	]*(include|import)[ 	]*[<"]([^">]+)([">])
+
+#IncludeRegexScan: ^.*$
+
+#IncludeRegexComplain: ^$
+
+#IncludeRegexTransform: 
+
+..//src2/shmh.h
+memfd_shm.h
+../src2/memfd_shm.h
+transfd_shm.h
+../src2/transfd_shm.h
+epollfd_shm.h
+../src2/epollfd_shm.h
+
+../src2/epollfd_shm.h
+
+../src2/memfd_shm.h
+
+../src2/transfd_shm.h
+
+/home/basic/workspace/code/go/vaproc/repository/memfd/sample2/srv_recv.cpp
+stdio.h
+-
+src2/shmh.h
+/home/basic/workspace/code/go/vaproc/repository/memfd/sample2/src2/shmh.h
+sys/types.h
+-
+sys/stat.h
+-
+thread
+-
+unistd.h
+-
+
diff --git a/build/sample2/CMakeFiles/srv_rcv.dir/DependInfo.cmake b/build/sample2/CMakeFiles/srv_rcv.dir/DependInfo.cmake
new file mode 100644
index 0000000..b0a9798
--- /dev/null
+++ b/build/sample2/CMakeFiles/srv_rcv.dir/DependInfo.cmake
@@ -0,0 +1,22 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  "CXX"
+  )
+# The set of files for implicit dependencies of each language:
+set(CMAKE_DEPENDS_CHECK_CXX
+  "/home/basic/workspace/code/go/vaproc/repository/memfd/sample2/srv_recv.cpp" "/home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2/CMakeFiles/srv_rcv.dir/srv_recv.cpp.o"
+  )
+set(CMAKE_CXX_COMPILER_ID "GNU")
+
+# The include file search paths:
+set(CMAKE_CXX_TARGET_INCLUDE_PATH
+  "../"
+  )
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  "/home/basic/workspace/code/go/vaproc/repository/memfd/build/src2/CMakeFiles/memfd_shm.dir/DependInfo.cmake"
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/build/sample2/CMakeFiles/srv_rcv.dir/build.make b/build/sample2/CMakeFiles/srv_rcv.dir/build.make
new file mode 100644
index 0000000..221b819
--- /dev/null
+++ b/build/sample2/CMakeFiles/srv_rcv.dir/build.make
@@ -0,0 +1,99 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.13
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake
+
+# The command to remove a file.
+RM = /usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/basic/workspace/code/go/vaproc/repository/memfd
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/basic/workspace/code/go/vaproc/repository/memfd/build
+
+# Include any dependencies generated for this target.
+include sample2/CMakeFiles/srv_rcv.dir/depend.make
+
+# Include the progress variables for this target.
+include sample2/CMakeFiles/srv_rcv.dir/progress.make
+
+# Include the compile flags for this target's objects.
+include sample2/CMakeFiles/srv_rcv.dir/flags.make
+
+sample2/CMakeFiles/srv_rcv.dir/srv_recv.cpp.o: sample2/CMakeFiles/srv_rcv.dir/flags.make
+sample2/CMakeFiles/srv_rcv.dir/srv_recv.cpp.o: ../sample2/srv_recv.cpp
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object sample2/CMakeFiles/srv_rcv.dir/srv_recv.cpp.o"
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2 && /usr/bin/c++  $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/srv_rcv.dir/srv_recv.cpp.o -c /home/basic/workspace/code/go/vaproc/repository/memfd/sample2/srv_recv.cpp
+
+sample2/CMakeFiles/srv_rcv.dir/srv_recv.cpp.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/srv_rcv.dir/srv_recv.cpp.i"
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2 && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/basic/workspace/code/go/vaproc/repository/memfd/sample2/srv_recv.cpp > CMakeFiles/srv_rcv.dir/srv_recv.cpp.i
+
+sample2/CMakeFiles/srv_rcv.dir/srv_recv.cpp.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/srv_rcv.dir/srv_recv.cpp.s"
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2 && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/basic/workspace/code/go/vaproc/repository/memfd/sample2/srv_recv.cpp -o CMakeFiles/srv_rcv.dir/srv_recv.cpp.s
+
+# Object files for target srv_rcv
+srv_rcv_OBJECTS = \
+"CMakeFiles/srv_rcv.dir/srv_recv.cpp.o"
+
+# External object files for target srv_rcv
+srv_rcv_EXTERNAL_OBJECTS =
+
+sample2/srv_rcv: sample2/CMakeFiles/srv_rcv.dir/srv_recv.cpp.o
+sample2/srv_rcv: sample2/CMakeFiles/srv_rcv.dir/build.make
+sample2/srv_rcv: src2/libmemfd_shm.so
+sample2/srv_rcv: sample2/CMakeFiles/srv_rcv.dir/link.txt
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable srv_rcv"
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2 && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/srv_rcv.dir/link.txt --verbose=$(VERBOSE)
+
+# Rule to build all files generated by this target.
+sample2/CMakeFiles/srv_rcv.dir/build: sample2/srv_rcv
+
+.PHONY : sample2/CMakeFiles/srv_rcv.dir/build
+
+sample2/CMakeFiles/srv_rcv.dir/clean:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2 && $(CMAKE_COMMAND) -P CMakeFiles/srv_rcv.dir/cmake_clean.cmake
+.PHONY : sample2/CMakeFiles/srv_rcv.dir/clean
+
+sample2/CMakeFiles/srv_rcv.dir/depend:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/basic/workspace/code/go/vaproc/repository/memfd /home/basic/workspace/code/go/vaproc/repository/memfd/sample2 /home/basic/workspace/code/go/vaproc/repository/memfd/build /home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2 /home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2/CMakeFiles/srv_rcv.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : sample2/CMakeFiles/srv_rcv.dir/depend
+
diff --git a/build/sample2/CMakeFiles/srv_rcv.dir/cmake_clean.cmake b/build/sample2/CMakeFiles/srv_rcv.dir/cmake_clean.cmake
new file mode 100644
index 0000000..26f10f5
--- /dev/null
+++ b/build/sample2/CMakeFiles/srv_rcv.dir/cmake_clean.cmake
@@ -0,0 +1,10 @@
+file(REMOVE_RECURSE
+  "CMakeFiles/srv_rcv.dir/srv_recv.cpp.o"
+  "srv_rcv.pdb"
+  "srv_rcv"
+)
+
+# Per-language clean rules from dependency scanning.
+foreach(lang CXX)
+  include(CMakeFiles/srv_rcv.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/build/sample2/CMakeFiles/srv_rcv.dir/depend.internal b/build/sample2/CMakeFiles/srv_rcv.dir/depend.internal
new file mode 100644
index 0000000..73392d1
--- /dev/null
+++ b/build/sample2/CMakeFiles/srv_rcv.dir/depend.internal
@@ -0,0 +1,9 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.13
+
+sample2/CMakeFiles/srv_rcv.dir/srv_recv.cpp.o
+ ..//src2/shmh.h
+ ../src2/epollfd_shm.h
+ ../src2/memfd_shm.h
+ ../src2/transfd_shm.h
+ /home/basic/workspace/code/go/vaproc/repository/memfd/sample2/srv_recv.cpp
diff --git a/build/sample2/CMakeFiles/srv_rcv.dir/depend.make b/build/sample2/CMakeFiles/srv_rcv.dir/depend.make
new file mode 100644
index 0000000..e68a582
--- /dev/null
+++ b/build/sample2/CMakeFiles/srv_rcv.dir/depend.make
@@ -0,0 +1,9 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.13
+
+sample2/CMakeFiles/srv_rcv.dir/srv_recv.cpp.o: ../src2/shmh.h
+sample2/CMakeFiles/srv_rcv.dir/srv_recv.cpp.o: ../src2/epollfd_shm.h
+sample2/CMakeFiles/srv_rcv.dir/srv_recv.cpp.o: ../src2/memfd_shm.h
+sample2/CMakeFiles/srv_rcv.dir/srv_recv.cpp.o: ../src2/transfd_shm.h
+sample2/CMakeFiles/srv_rcv.dir/srv_recv.cpp.o: ../sample2/srv_recv.cpp
+
diff --git a/build/sample2/CMakeFiles/srv_rcv.dir/flags.make b/build/sample2/CMakeFiles/srv_rcv.dir/flags.make
new file mode 100644
index 0000000..8652c45
--- /dev/null
+++ b/build/sample2/CMakeFiles/srv_rcv.dir/flags.make
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.13
+
+# compile CXX with /usr/bin/c++
+CXX_FLAGS =   -g -O0 -std=c++11
+
+CXX_DEFINES = 
+
+CXX_INCLUDES = -I/home/basic/workspace/code/go/vaproc/repository/memfd 
+
diff --git a/build/sample2/CMakeFiles/srv_rcv.dir/link.txt b/build/sample2/CMakeFiles/srv_rcv.dir/link.txt
new file mode 100644
index 0000000..b128f0c
--- /dev/null
+++ b/build/sample2/CMakeFiles/srv_rcv.dir/link.txt
@@ -0,0 +1 @@
+/usr/bin/c++     CMakeFiles/srv_rcv.dir/srv_recv.cpp.o  -o srv_rcv -Wl,-rpath,/home/basic/workspace/code/go/vaproc/repository/memfd/build/src2 ../src2/libmemfd_shm.so -lpthread 
diff --git a/build/sample2/CMakeFiles/srv_rcv.dir/progress.make b/build/sample2/CMakeFiles/srv_rcv.dir/progress.make
new file mode 100644
index 0000000..596289c
--- /dev/null
+++ b/build/sample2/CMakeFiles/srv_rcv.dir/progress.make
@@ -0,0 +1,3 @@
+CMAKE_PROGRESS_1 = 11
+CMAKE_PROGRESS_2 = 12
+
diff --git a/build/sample2/Makefile b/build/sample2/Makefile
new file mode 100644
index 0000000..4f9b5e5
--- /dev/null
+++ b/build/sample2/Makefile
@@ -0,0 +1,318 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.13
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake
+
+# The command to remove a file.
+RM = /usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/basic/workspace/code/go/vaproc/repository/memfd
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/basic/workspace/code/go/vaproc/repository/memfd/build
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+	/usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..."
+	/usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# The main all target
+all: cmake_check_build_system
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(CMAKE_COMMAND) -E cmake_progress_start /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles /home/basic/workspace/code/go/vaproc/repository/memfd/build/sample2/CMakeFiles/progress.marks
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f CMakeFiles/Makefile2 sample2/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f CMakeFiles/Makefile2 sample2/clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f CMakeFiles/Makefile2 sample2/preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f CMakeFiles/Makefile2 sample2/preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+# Convenience name for target.
+sample2/CMakeFiles/cli_snd.dir/rule:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f CMakeFiles/Makefile2 sample2/CMakeFiles/cli_snd.dir/rule
+.PHONY : sample2/CMakeFiles/cli_snd.dir/rule
+
+# Convenience name for target.
+cli_snd: sample2/CMakeFiles/cli_snd.dir/rule
+
+.PHONY : cli_snd
+
+# fast build rule for target.
+cli_snd/fast:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f sample2/CMakeFiles/cli_snd.dir/build.make sample2/CMakeFiles/cli_snd.dir/build
+.PHONY : cli_snd/fast
+
+# Convenience name for target.
+sample2/CMakeFiles/srv_rcv.dir/rule:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f CMakeFiles/Makefile2 sample2/CMakeFiles/srv_rcv.dir/rule
+.PHONY : sample2/CMakeFiles/srv_rcv.dir/rule
+
+# Convenience name for target.
+srv_rcv: sample2/CMakeFiles/srv_rcv.dir/rule
+
+.PHONY : srv_rcv
+
+# fast build rule for target.
+srv_rcv/fast:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f sample2/CMakeFiles/srv_rcv.dir/build.make sample2/CMakeFiles/srv_rcv.dir/build
+.PHONY : srv_rcv/fast
+
+# Convenience name for target.
+sample2/CMakeFiles/client.dir/rule:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f CMakeFiles/Makefile2 sample2/CMakeFiles/client.dir/rule
+.PHONY : sample2/CMakeFiles/client.dir/rule
+
+# Convenience name for target.
+client: sample2/CMakeFiles/client.dir/rule
+
+.PHONY : client
+
+# fast build rule for target.
+client/fast:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f sample2/CMakeFiles/client.dir/build.make sample2/CMakeFiles/client.dir/build
+.PHONY : client/fast
+
+# Convenience name for target.
+sample2/CMakeFiles/server.dir/rule:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f CMakeFiles/Makefile2 sample2/CMakeFiles/server.dir/rule
+.PHONY : sample2/CMakeFiles/server.dir/rule
+
+# Convenience name for target.
+server: sample2/CMakeFiles/server.dir/rule
+
+.PHONY : server
+
+# fast build rule for target.
+server/fast:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f sample2/CMakeFiles/server.dir/build.make sample2/CMakeFiles/server.dir/build
+.PHONY : server/fast
+
+cli_snd.o: cli_snd.cpp.o
+
+.PHONY : cli_snd.o
+
+# target to build an object file
+cli_snd.cpp.o:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f sample2/CMakeFiles/cli_snd.dir/build.make sample2/CMakeFiles/cli_snd.dir/cli_snd.cpp.o
+.PHONY : cli_snd.cpp.o
+
+cli_snd.i: cli_snd.cpp.i
+
+.PHONY : cli_snd.i
+
+# target to preprocess a source file
+cli_snd.cpp.i:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f sample2/CMakeFiles/cli_snd.dir/build.make sample2/CMakeFiles/cli_snd.dir/cli_snd.cpp.i
+.PHONY : cli_snd.cpp.i
+
+cli_snd.s: cli_snd.cpp.s
+
+.PHONY : cli_snd.s
+
+# target to generate assembly for a file
+cli_snd.cpp.s:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f sample2/CMakeFiles/cli_snd.dir/build.make sample2/CMakeFiles/cli_snd.dir/cli_snd.cpp.s
+.PHONY : cli_snd.cpp.s
+
+client.o: client.cpp.o
+
+.PHONY : client.o
+
+# target to build an object file
+client.cpp.o:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f sample2/CMakeFiles/client.dir/build.make sample2/CMakeFiles/client.dir/client.cpp.o
+.PHONY : client.cpp.o
+
+client.i: client.cpp.i
+
+.PHONY : client.i
+
+# target to preprocess a source file
+client.cpp.i:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f sample2/CMakeFiles/client.dir/build.make sample2/CMakeFiles/client.dir/client.cpp.i
+.PHONY : client.cpp.i
+
+client.s: client.cpp.s
+
+.PHONY : client.s
+
+# target to generate assembly for a file
+client.cpp.s:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f sample2/CMakeFiles/client.dir/build.make sample2/CMakeFiles/client.dir/client.cpp.s
+.PHONY : client.cpp.s
+
+server.o: server.cpp.o
+
+.PHONY : server.o
+
+# target to build an object file
+server.cpp.o:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f sample2/CMakeFiles/server.dir/build.make sample2/CMakeFiles/server.dir/server.cpp.o
+.PHONY : server.cpp.o
+
+server.i: server.cpp.i
+
+.PHONY : server.i
+
+# target to preprocess a source file
+server.cpp.i:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f sample2/CMakeFiles/server.dir/build.make sample2/CMakeFiles/server.dir/server.cpp.i
+.PHONY : server.cpp.i
+
+server.s: server.cpp.s
+
+.PHONY : server.s
+
+# target to generate assembly for a file
+server.cpp.s:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f sample2/CMakeFiles/server.dir/build.make sample2/CMakeFiles/server.dir/server.cpp.s
+.PHONY : server.cpp.s
+
+srv_recv.o: srv_recv.cpp.o
+
+.PHONY : srv_recv.o
+
+# target to build an object file
+srv_recv.cpp.o:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f sample2/CMakeFiles/srv_rcv.dir/build.make sample2/CMakeFiles/srv_rcv.dir/srv_recv.cpp.o
+.PHONY : srv_recv.cpp.o
+
+srv_recv.i: srv_recv.cpp.i
+
+.PHONY : srv_recv.i
+
+# target to preprocess a source file
+srv_recv.cpp.i:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f sample2/CMakeFiles/srv_rcv.dir/build.make sample2/CMakeFiles/srv_rcv.dir/srv_recv.cpp.i
+.PHONY : srv_recv.cpp.i
+
+srv_recv.s: srv_recv.cpp.s
+
+.PHONY : srv_recv.s
+
+# target to generate assembly for a file
+srv_recv.cpp.s:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f sample2/CMakeFiles/srv_rcv.dir/build.make sample2/CMakeFiles/srv_rcv.dir/srv_recv.cpp.s
+.PHONY : srv_recv.cpp.s
+
+# Help Target
+help:
+	@echo "The following are some of the valid targets for this Makefile:"
+	@echo "... all (the default if no target is provided)"
+	@echo "... clean"
+	@echo "... depend"
+	@echo "... rebuild_cache"
+	@echo "... edit_cache"
+	@echo "... cli_snd"
+	@echo "... srv_rcv"
+	@echo "... client"
+	@echo "... server"
+	@echo "... cli_snd.o"
+	@echo "... cli_snd.i"
+	@echo "... cli_snd.s"
+	@echo "... client.o"
+	@echo "... client.i"
+	@echo "... client.s"
+	@echo "... server.o"
+	@echo "... server.i"
+	@echo "... server.s"
+	@echo "... srv_recv.o"
+	@echo "... srv_recv.i"
+	@echo "... srv_recv.s"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+
diff --git a/build/sample2/cli_snd b/build/sample2/cli_snd
new file mode 100755
index 0000000..5fab923
--- /dev/null
+++ b/build/sample2/cli_snd
Binary files differ
diff --git a/build/sample2/client b/build/sample2/client
new file mode 100755
index 0000000..165955e
--- /dev/null
+++ b/build/sample2/client
Binary files differ
diff --git a/build/sample2/cmake_install.cmake b/build/sample2/cmake_install.cmake
new file mode 100644
index 0000000..6b0bdef
--- /dev/null
+++ b/build/sample2/cmake_install.cmake
@@ -0,0 +1,39 @@
+# Install script for directory: /home/basic/workspace/code/go/vaproc/repository/memfd/sample2
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  set(CMAKE_INSTALL_PREFIX "/usr/local")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  if(BUILD_TYPE)
+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  else()
+    set(CMAKE_INSTALL_CONFIG_NAME "")
+  endif()
+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+  if(COMPONENT)
+    message(STATUS "Install component: \"${COMPONENT}\"")
+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  else()
+    set(CMAKE_INSTALL_COMPONENT)
+  endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+  set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+# Is this installation the result of a crosscompile?
+if(NOT DEFINED CMAKE_CROSSCOMPILING)
+  set(CMAKE_CROSSCOMPILING "FALSE")
+endif()
+
diff --git a/build/sample2/server b/build/sample2/server
new file mode 100755
index 0000000..b5f90ac
--- /dev/null
+++ b/build/sample2/server
Binary files differ
diff --git a/build/sample2/srv_rcv b/build/sample2/srv_rcv
new file mode 100755
index 0000000..30e79f2
--- /dev/null
+++ b/build/sample2/srv_rcv
Binary files differ
diff --git a/build/src2/CMakeFiles/CMakeDirectoryInformation.cmake b/build/src2/CMakeFiles/CMakeDirectoryInformation.cmake
new file mode 100644
index 0000000..00d2501
--- /dev/null
+++ b/build/src2/CMakeFiles/CMakeDirectoryInformation.cmake
@@ -0,0 +1,16 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.13
+
+# Relative path conversion top directories.
+set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/basic/workspace/code/go/vaproc/repository/memfd")
+set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/basic/workspace/code/go/vaproc/repository/memfd/build")
+
+# Force unix paths in dependencies.
+set(CMAKE_FORCE_UNIX_PATHS 1)
+
+
+# The C and CXX include file regular expressions for this directory.
+set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
+set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
+set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
+set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
diff --git a/build/src2/CMakeFiles/memfd_shm.dir/C.includecache b/build/src2/CMakeFiles/memfd_shm.dir/C.includecache
new file mode 100644
index 0000000..48c9e29
--- /dev/null
+++ b/build/src2/CMakeFiles/memfd_shm.dir/C.includecache
@@ -0,0 +1,84 @@
+#IncludeRegexLine: ^[ 	]*[#%][ 	]*(include|import)[ 	]*[<"]([^">]+)([">])
+
+#IncludeRegexScan: ^.*$
+
+#IncludeRegexComplain: ^$
+
+#IncludeRegexTransform: 
+
+/home/basic/workspace/code/go/vaproc/repository/memfd/src2/epollfd_shm.c
+epollfd_shm.h
+/home/basic/workspace/code/go/vaproc/repository/memfd/src2/epollfd_shm.h
+sys/types.h
+-
+sys/socket.h
+-
+sys/epoll.h
+-
+sys/un.h
+-
+poll.h
+-
+unistd.h
+-
+errno.h
+-
+stdio.h
+-
+stdlib.h
+-
+string.h
+-
+fcntl.h
+-
+transfd_shm.h
+/home/basic/workspace/code/go/vaproc/repository/memfd/src2/transfd_shm.h
+
+/home/basic/workspace/code/go/vaproc/repository/memfd/src2/epollfd_shm.h
+
+/home/basic/workspace/code/go/vaproc/repository/memfd/src2/memfd_shm.c
+memfd_shm.h
+/home/basic/workspace/code/go/vaproc/repository/memfd/src2/memfd_shm.h
+stdio.h
+-
+sys/types.h
+-
+sys/stat.h
+-
+unistd.h
+-
+sys/mman.h
+-
+sys/syscall.h
+-
+errno.h
+-
+fcntl.h
+-
+linux/memfd.h
+-
+stdlib.h
+-
+
+/home/basic/workspace/code/go/vaproc/repository/memfd/src2/memfd_shm.h
+
+/home/basic/workspace/code/go/vaproc/repository/memfd/src2/transfd_shm.c
+transfd_shm.h
+/home/basic/workspace/code/go/vaproc/repository/memfd/src2/transfd_shm.h
+stdio.h
+-
+stdlib.h
+-
+stddef.h
+-
+string.h
+-
+sys/types.h
+-
+sys/socket.h
+-
+errno.h
+-
+
+/home/basic/workspace/code/go/vaproc/repository/memfd/src2/transfd_shm.h
+
diff --git a/build/src2/CMakeFiles/memfd_shm.dir/DependInfo.cmake b/build/src2/CMakeFiles/memfd_shm.dir/DependInfo.cmake
new file mode 100644
index 0000000..2bb51a7
--- /dev/null
+++ b/build/src2/CMakeFiles/memfd_shm.dir/DependInfo.cmake
@@ -0,0 +1,22 @@
+# The set of languages for which implicit dependencies are needed:
+set(CMAKE_DEPENDS_LANGUAGES
+  "C"
+  )
+# The set of files for implicit dependencies of each language:
+set(CMAKE_DEPENDS_CHECK_C
+  "/home/basic/workspace/code/go/vaproc/repository/memfd/src2/epollfd_shm.c" "/home/basic/workspace/code/go/vaproc/repository/memfd/build/src2/CMakeFiles/memfd_shm.dir/epollfd_shm.c.o"
+  "/home/basic/workspace/code/go/vaproc/repository/memfd/src2/memfd_shm.c" "/home/basic/workspace/code/go/vaproc/repository/memfd/build/src2/CMakeFiles/memfd_shm.dir/memfd_shm.c.o"
+  "/home/basic/workspace/code/go/vaproc/repository/memfd/src2/transfd_shm.c" "/home/basic/workspace/code/go/vaproc/repository/memfd/build/src2/CMakeFiles/memfd_shm.dir/transfd_shm.c.o"
+  )
+set(CMAKE_C_COMPILER_ID "GNU")
+
+# The include file search paths:
+set(CMAKE_C_TARGET_INCLUDE_PATH
+  )
+
+# Targets to which this target links.
+set(CMAKE_TARGET_LINKED_INFO_FILES
+  )
+
+# Fortran module output directory.
+set(CMAKE_Fortran_TARGET_MODULE_DIR "")
diff --git a/build/src2/CMakeFiles/memfd_shm.dir/build.make b/build/src2/CMakeFiles/memfd_shm.dir/build.make
new file mode 100644
index 0000000..c0e80e0
--- /dev/null
+++ b/build/src2/CMakeFiles/memfd_shm.dir/build.make
@@ -0,0 +1,128 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.13
+
+# Delete rule output on recipe failure.
+.DELETE_ON_ERROR:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake
+
+# The command to remove a file.
+RM = /usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/basic/workspace/code/go/vaproc/repository/memfd
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/basic/workspace/code/go/vaproc/repository/memfd/build
+
+# Include any dependencies generated for this target.
+include src2/CMakeFiles/memfd_shm.dir/depend.make
+
+# Include the progress variables for this target.
+include src2/CMakeFiles/memfd_shm.dir/progress.make
+
+# Include the compile flags for this target's objects.
+include src2/CMakeFiles/memfd_shm.dir/flags.make
+
+src2/CMakeFiles/memfd_shm.dir/epollfd_shm.c.o: src2/CMakeFiles/memfd_shm.dir/flags.make
+src2/CMakeFiles/memfd_shm.dir/epollfd_shm.c.o: ../src2/epollfd_shm.c
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building C object src2/CMakeFiles/memfd_shm.dir/epollfd_shm.c.o"
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build/src2 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/memfd_shm.dir/epollfd_shm.c.o   -c /home/basic/workspace/code/go/vaproc/repository/memfd/src2/epollfd_shm.c
+
+src2/CMakeFiles/memfd_shm.dir/epollfd_shm.c.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/memfd_shm.dir/epollfd_shm.c.i"
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build/src2 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/basic/workspace/code/go/vaproc/repository/memfd/src2/epollfd_shm.c > CMakeFiles/memfd_shm.dir/epollfd_shm.c.i
+
+src2/CMakeFiles/memfd_shm.dir/epollfd_shm.c.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/memfd_shm.dir/epollfd_shm.c.s"
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build/src2 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/basic/workspace/code/go/vaproc/repository/memfd/src2/epollfd_shm.c -o CMakeFiles/memfd_shm.dir/epollfd_shm.c.s
+
+src2/CMakeFiles/memfd_shm.dir/memfd_shm.c.o: src2/CMakeFiles/memfd_shm.dir/flags.make
+src2/CMakeFiles/memfd_shm.dir/memfd_shm.c.o: ../src2/memfd_shm.c
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building C object src2/CMakeFiles/memfd_shm.dir/memfd_shm.c.o"
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build/src2 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/memfd_shm.dir/memfd_shm.c.o   -c /home/basic/workspace/code/go/vaproc/repository/memfd/src2/memfd_shm.c
+
+src2/CMakeFiles/memfd_shm.dir/memfd_shm.c.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/memfd_shm.dir/memfd_shm.c.i"
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build/src2 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/basic/workspace/code/go/vaproc/repository/memfd/src2/memfd_shm.c > CMakeFiles/memfd_shm.dir/memfd_shm.c.i
+
+src2/CMakeFiles/memfd_shm.dir/memfd_shm.c.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/memfd_shm.dir/memfd_shm.c.s"
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build/src2 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/basic/workspace/code/go/vaproc/repository/memfd/src2/memfd_shm.c -o CMakeFiles/memfd_shm.dir/memfd_shm.c.s
+
+src2/CMakeFiles/memfd_shm.dir/transfd_shm.c.o: src2/CMakeFiles/memfd_shm.dir/flags.make
+src2/CMakeFiles/memfd_shm.dir/transfd_shm.c.o: ../src2/transfd_shm.c
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building C object src2/CMakeFiles/memfd_shm.dir/transfd_shm.c.o"
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build/src2 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/memfd_shm.dir/transfd_shm.c.o   -c /home/basic/workspace/code/go/vaproc/repository/memfd/src2/transfd_shm.c
+
+src2/CMakeFiles/memfd_shm.dir/transfd_shm.c.i: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/memfd_shm.dir/transfd_shm.c.i"
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build/src2 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/basic/workspace/code/go/vaproc/repository/memfd/src2/transfd_shm.c > CMakeFiles/memfd_shm.dir/transfd_shm.c.i
+
+src2/CMakeFiles/memfd_shm.dir/transfd_shm.c.s: cmake_force
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/memfd_shm.dir/transfd_shm.c.s"
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build/src2 && /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/basic/workspace/code/go/vaproc/repository/memfd/src2/transfd_shm.c -o CMakeFiles/memfd_shm.dir/transfd_shm.c.s
+
+# Object files for target memfd_shm
+memfd_shm_OBJECTS = \
+"CMakeFiles/memfd_shm.dir/epollfd_shm.c.o" \
+"CMakeFiles/memfd_shm.dir/memfd_shm.c.o" \
+"CMakeFiles/memfd_shm.dir/transfd_shm.c.o"
+
+# External object files for target memfd_shm
+memfd_shm_EXTERNAL_OBJECTS =
+
+src2/libmemfd_shm.so: src2/CMakeFiles/memfd_shm.dir/epollfd_shm.c.o
+src2/libmemfd_shm.so: src2/CMakeFiles/memfd_shm.dir/memfd_shm.c.o
+src2/libmemfd_shm.so: src2/CMakeFiles/memfd_shm.dir/transfd_shm.c.o
+src2/libmemfd_shm.so: src2/CMakeFiles/memfd_shm.dir/build.make
+src2/libmemfd_shm.so: src2/CMakeFiles/memfd_shm.dir/link.txt
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Linking C shared library libmemfd_shm.so"
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build/src2 && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/memfd_shm.dir/link.txt --verbose=$(VERBOSE)
+
+# Rule to build all files generated by this target.
+src2/CMakeFiles/memfd_shm.dir/build: src2/libmemfd_shm.so
+
+.PHONY : src2/CMakeFiles/memfd_shm.dir/build
+
+src2/CMakeFiles/memfd_shm.dir/clean:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build/src2 && $(CMAKE_COMMAND) -P CMakeFiles/memfd_shm.dir/cmake_clean.cmake
+.PHONY : src2/CMakeFiles/memfd_shm.dir/clean
+
+src2/CMakeFiles/memfd_shm.dir/depend:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/basic/workspace/code/go/vaproc/repository/memfd /home/basic/workspace/code/go/vaproc/repository/memfd/src2 /home/basic/workspace/code/go/vaproc/repository/memfd/build /home/basic/workspace/code/go/vaproc/repository/memfd/build/src2 /home/basic/workspace/code/go/vaproc/repository/memfd/build/src2/CMakeFiles/memfd_shm.dir/DependInfo.cmake --color=$(COLOR)
+.PHONY : src2/CMakeFiles/memfd_shm.dir/depend
+
diff --git a/build/src2/CMakeFiles/memfd_shm.dir/cmake_clean.cmake b/build/src2/CMakeFiles/memfd_shm.dir/cmake_clean.cmake
new file mode 100644
index 0000000..deacba3
--- /dev/null
+++ b/build/src2/CMakeFiles/memfd_shm.dir/cmake_clean.cmake
@@ -0,0 +1,12 @@
+file(REMOVE_RECURSE
+  "CMakeFiles/memfd_shm.dir/epollfd_shm.c.o"
+  "CMakeFiles/memfd_shm.dir/memfd_shm.c.o"
+  "CMakeFiles/memfd_shm.dir/transfd_shm.c.o"
+  "libmemfd_shm.pdb"
+  "libmemfd_shm.so"
+)
+
+# Per-language clean rules from dependency scanning.
+foreach(lang C)
+  include(CMakeFiles/memfd_shm.dir/cmake_clean_${lang}.cmake OPTIONAL)
+endforeach()
diff --git a/build/src2/CMakeFiles/memfd_shm.dir/depend.internal b/build/src2/CMakeFiles/memfd_shm.dir/depend.internal
new file mode 100644
index 0000000..e737bd8
--- /dev/null
+++ b/build/src2/CMakeFiles/memfd_shm.dir/depend.internal
@@ -0,0 +1,13 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.13
+
+src2/CMakeFiles/memfd_shm.dir/epollfd_shm.c.o
+ /home/basic/workspace/code/go/vaproc/repository/memfd/src2/epollfd_shm.c
+ /home/basic/workspace/code/go/vaproc/repository/memfd/src2/epollfd_shm.h
+ /home/basic/workspace/code/go/vaproc/repository/memfd/src2/transfd_shm.h
+src2/CMakeFiles/memfd_shm.dir/memfd_shm.c.o
+ /home/basic/workspace/code/go/vaproc/repository/memfd/src2/memfd_shm.c
+ /home/basic/workspace/code/go/vaproc/repository/memfd/src2/memfd_shm.h
+src2/CMakeFiles/memfd_shm.dir/transfd_shm.c.o
+ /home/basic/workspace/code/go/vaproc/repository/memfd/src2/transfd_shm.c
+ /home/basic/workspace/code/go/vaproc/repository/memfd/src2/transfd_shm.h
diff --git a/build/src2/CMakeFiles/memfd_shm.dir/depend.make b/build/src2/CMakeFiles/memfd_shm.dir/depend.make
new file mode 100644
index 0000000..d2d6f35
--- /dev/null
+++ b/build/src2/CMakeFiles/memfd_shm.dir/depend.make
@@ -0,0 +1,13 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.13
+
+src2/CMakeFiles/memfd_shm.dir/epollfd_shm.c.o: ../src2/epollfd_shm.c
+src2/CMakeFiles/memfd_shm.dir/epollfd_shm.c.o: ../src2/epollfd_shm.h
+src2/CMakeFiles/memfd_shm.dir/epollfd_shm.c.o: ../src2/transfd_shm.h
+
+src2/CMakeFiles/memfd_shm.dir/memfd_shm.c.o: ../src2/memfd_shm.c
+src2/CMakeFiles/memfd_shm.dir/memfd_shm.c.o: ../src2/memfd_shm.h
+
+src2/CMakeFiles/memfd_shm.dir/transfd_shm.c.o: ../src2/transfd_shm.c
+src2/CMakeFiles/memfd_shm.dir/transfd_shm.c.o: ../src2/transfd_shm.h
+
diff --git a/build/src2/CMakeFiles/memfd_shm.dir/flags.make b/build/src2/CMakeFiles/memfd_shm.dir/flags.make
new file mode 100644
index 0000000..efe5504
--- /dev/null
+++ b/build/src2/CMakeFiles/memfd_shm.dir/flags.make
@@ -0,0 +1,10 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.13
+
+# compile C with /usr/bin/cc
+C_FLAGS = -fPIC   -g -O0
+
+C_DEFINES = -Dmemfd_shm_EXPORTS
+
+C_INCLUDES = 
+
diff --git a/build/src2/CMakeFiles/memfd_shm.dir/link.txt b/build/src2/CMakeFiles/memfd_shm.dir/link.txt
new file mode 100644
index 0000000..14c2c30
--- /dev/null
+++ b/build/src2/CMakeFiles/memfd_shm.dir/link.txt
@@ -0,0 +1 @@
+/usr/bin/cc -fPIC   -shared -Wl,-soname,libmemfd_shm.so -o libmemfd_shm.so CMakeFiles/memfd_shm.dir/epollfd_shm.c.o CMakeFiles/memfd_shm.dir/memfd_shm.c.o CMakeFiles/memfd_shm.dir/transfd_shm.c.o 
diff --git a/build/src2/CMakeFiles/memfd_shm.dir/progress.make b/build/src2/CMakeFiles/memfd_shm.dir/progress.make
new file mode 100644
index 0000000..245cd69
--- /dev/null
+++ b/build/src2/CMakeFiles/memfd_shm.dir/progress.make
@@ -0,0 +1,5 @@
+CMAKE_PROGRESS_1 = 5
+CMAKE_PROGRESS_2 = 6
+CMAKE_PROGRESS_3 = 7
+CMAKE_PROGRESS_4 = 8
+
diff --git a/build/src2/CMakeFiles/progress.marks b/build/src2/CMakeFiles/progress.marks
new file mode 100644
index 0000000..b8626c4
--- /dev/null
+++ b/build/src2/CMakeFiles/progress.marks
@@ -0,0 +1 @@
+4
diff --git a/build/src2/Makefile b/build/src2/Makefile
new file mode 100644
index 0000000..a1334d9
--- /dev/null
+++ b/build/src2/Makefile
@@ -0,0 +1,240 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.13
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
+
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake
+
+# The command to remove a file.
+RM = /usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/basic/workspace/code/go/vaproc/repository/memfd
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/basic/workspace/code/go/vaproc/repository/memfd/build
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+	/usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..."
+	/usr/local/lib/python2.7/dist-packages/cmake/data/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# The main all target
+all: cmake_check_build_system
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(CMAKE_COMMAND) -E cmake_progress_start /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles /home/basic/workspace/code/go/vaproc/repository/memfd/build/src2/CMakeFiles/progress.marks
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f CMakeFiles/Makefile2 src2/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/basic/workspace/code/go/vaproc/repository/memfd/build/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f CMakeFiles/Makefile2 src2/clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f CMakeFiles/Makefile2 src2/preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f CMakeFiles/Makefile2 src2/preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+# Convenience name for target.
+src2/CMakeFiles/memfd_shm.dir/rule:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f CMakeFiles/Makefile2 src2/CMakeFiles/memfd_shm.dir/rule
+.PHONY : src2/CMakeFiles/memfd_shm.dir/rule
+
+# Convenience name for target.
+memfd_shm: src2/CMakeFiles/memfd_shm.dir/rule
+
+.PHONY : memfd_shm
+
+# fast build rule for target.
+memfd_shm/fast:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f src2/CMakeFiles/memfd_shm.dir/build.make src2/CMakeFiles/memfd_shm.dir/build
+.PHONY : memfd_shm/fast
+
+epollfd_shm.o: epollfd_shm.c.o
+
+.PHONY : epollfd_shm.o
+
+# target to build an object file
+epollfd_shm.c.o:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f src2/CMakeFiles/memfd_shm.dir/build.make src2/CMakeFiles/memfd_shm.dir/epollfd_shm.c.o
+.PHONY : epollfd_shm.c.o
+
+epollfd_shm.i: epollfd_shm.c.i
+
+.PHONY : epollfd_shm.i
+
+# target to preprocess a source file
+epollfd_shm.c.i:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f src2/CMakeFiles/memfd_shm.dir/build.make src2/CMakeFiles/memfd_shm.dir/epollfd_shm.c.i
+.PHONY : epollfd_shm.c.i
+
+epollfd_shm.s: epollfd_shm.c.s
+
+.PHONY : epollfd_shm.s
+
+# target to generate assembly for a file
+epollfd_shm.c.s:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f src2/CMakeFiles/memfd_shm.dir/build.make src2/CMakeFiles/memfd_shm.dir/epollfd_shm.c.s
+.PHONY : epollfd_shm.c.s
+
+memfd_shm.o: memfd_shm.c.o
+
+.PHONY : memfd_shm.o
+
+# target to build an object file
+memfd_shm.c.o:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f src2/CMakeFiles/memfd_shm.dir/build.make src2/CMakeFiles/memfd_shm.dir/memfd_shm.c.o
+.PHONY : memfd_shm.c.o
+
+memfd_shm.i: memfd_shm.c.i
+
+.PHONY : memfd_shm.i
+
+# target to preprocess a source file
+memfd_shm.c.i:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f src2/CMakeFiles/memfd_shm.dir/build.make src2/CMakeFiles/memfd_shm.dir/memfd_shm.c.i
+.PHONY : memfd_shm.c.i
+
+memfd_shm.s: memfd_shm.c.s
+
+.PHONY : memfd_shm.s
+
+# target to generate assembly for a file
+memfd_shm.c.s:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f src2/CMakeFiles/memfd_shm.dir/build.make src2/CMakeFiles/memfd_shm.dir/memfd_shm.c.s
+.PHONY : memfd_shm.c.s
+
+transfd_shm.o: transfd_shm.c.o
+
+.PHONY : transfd_shm.o
+
+# target to build an object file
+transfd_shm.c.o:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f src2/CMakeFiles/memfd_shm.dir/build.make src2/CMakeFiles/memfd_shm.dir/transfd_shm.c.o
+.PHONY : transfd_shm.c.o
+
+transfd_shm.i: transfd_shm.c.i
+
+.PHONY : transfd_shm.i
+
+# target to preprocess a source file
+transfd_shm.c.i:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f src2/CMakeFiles/memfd_shm.dir/build.make src2/CMakeFiles/memfd_shm.dir/transfd_shm.c.i
+.PHONY : transfd_shm.c.i
+
+transfd_shm.s: transfd_shm.c.s
+
+.PHONY : transfd_shm.s
+
+# target to generate assembly for a file
+transfd_shm.c.s:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(MAKE) -f src2/CMakeFiles/memfd_shm.dir/build.make src2/CMakeFiles/memfd_shm.dir/transfd_shm.c.s
+.PHONY : transfd_shm.c.s
+
+# Help Target
+help:
+	@echo "The following are some of the valid targets for this Makefile:"
+	@echo "... all (the default if no target is provided)"
+	@echo "... clean"
+	@echo "... depend"
+	@echo "... rebuild_cache"
+	@echo "... edit_cache"
+	@echo "... memfd_shm"
+	@echo "... epollfd_shm.o"
+	@echo "... epollfd_shm.i"
+	@echo "... epollfd_shm.s"
+	@echo "... memfd_shm.o"
+	@echo "... memfd_shm.i"
+	@echo "... memfd_shm.s"
+	@echo "... transfd_shm.o"
+	@echo "... transfd_shm.i"
+	@echo "... transfd_shm.s"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	cd /home/basic/workspace/code/go/vaproc/repository/memfd/build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+
diff --git a/build/src2/cmake_install.cmake b/build/src2/cmake_install.cmake
new file mode 100644
index 0000000..22a4764
--- /dev/null
+++ b/build/src2/cmake_install.cmake
@@ -0,0 +1,39 @@
+# Install script for directory: /home/basic/workspace/code/go/vaproc/repository/memfd/src2
+
+# Set the install prefix
+if(NOT DEFINED CMAKE_INSTALL_PREFIX)
+  set(CMAKE_INSTALL_PREFIX "/usr/local")
+endif()
+string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
+
+# Set the install configuration name.
+if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
+  if(BUILD_TYPE)
+    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
+           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
+  else()
+    set(CMAKE_INSTALL_CONFIG_NAME "")
+  endif()
+  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
+endif()
+
+# Set the component getting installed.
+if(NOT CMAKE_INSTALL_COMPONENT)
+  if(COMPONENT)
+    message(STATUS "Install component: \"${COMPONENT}\"")
+    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
+  else()
+    set(CMAKE_INSTALL_COMPONENT)
+  endif()
+endif()
+
+# Install shared libraries without execute permission?
+if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
+  set(CMAKE_INSTALL_SO_NO_EXE "1")
+endif()
+
+# Is this installation the result of a crosscompile?
+if(NOT DEFINED CMAKE_CROSSCOMPILING)
+  set(CMAKE_CROSSCOMPILING "FALSE")
+endif()
+
diff --git a/sample2/CMakeLists.txt b/sample2/CMakeLists.txt
new file mode 100644
index 0000000..12bc1c4
--- /dev/null
+++ b/sample2/CMakeLists.txt
@@ -0,0 +1,19 @@
+cmake_minimum_required(VERSION 3.9)
+file(GLOB SOURCES *.c)
+
+add_compile_options(-g -O0 -std=c++11)
+
+include_directories(${CMAKE_SOURCE_DIR})
+
+# add binary
+add_executable(server server.cpp)
+add_executable(client client.cpp)
+
+add_executable(srv_rcv srv_recv.cpp)
+add_executable(cli_snd cli_snd.cpp)
+
+target_link_libraries(server PRIVATE memfd_shm pthread)
+target_link_libraries(client PRIVATE memfd_shm pthread)
+
+target_link_libraries(srv_rcv PRIVATE memfd_shm pthread)
+target_link_libraries(cli_snd PRIVATE memfd_shm pthread)
diff --git a/sample2/cli_snd.cpp b/sample2/cli_snd.cpp
new file mode 100644
index 0000000..16c1a5d
--- /dev/null
+++ b/sample2/cli_snd.cpp
@@ -0,0 +1,81 @@
+#include <stdio.h>
+#include <unistd.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#include "src2/shmh.h"
+
+#include <chrono>
+
+static int idx = 0;
+static int get_memfd(void* args, struct fd_msg* msg){
+    int fd = basic_shm_create("shm", 128*1024*1024);
+    if (fd > 0){
+        // struct stat st;
+        // if (fstat (fd, &st))
+        // {
+        //     return -1;
+        // }
+        // printf("st size %ld\n", st.st_size);
+        if (msg) msg->fd = fd;
+
+        unsigned char* addr;
+        if (basic_shm_mmap(fd, &addr) > 0){
+            sprintf((char*)addr, "get_memfd set msg %d", idx++);
+            basic_shm_unmmap(fd, &addr);
+        }
+        return fd;
+    }
+    return -1;
+}
+
+int main(int argc, char const *argv[])
+{
+    int sock = unix_domain_client_fd("/tmp/memfd_shm.sock", 0);
+    if (sock <= 0){
+        printf("unix_domain_client_fd failed\n");
+        return -1;
+    }
+
+    int count = 0;
+
+    using namespace std::chrono;
+    auto s = steady_clock::now();
+    auto e = s;
+
+    while (true) {
+
+        int fd = get_memfd(NULL, NULL);
+        if (fd < 0){
+            printf("memfd %d no exist\n", fd);
+            continue;
+        }
+        // struct stat st;
+        // if (fstat (fd, &st))
+        // {
+        //     return -1;
+        // }
+        // printf("st size %ld\n", st.st_size);
+
+        count++;
+
+        int ret = sendfd(sock, &fd, 1);
+
+        close(fd);
+
+        usleep(2);
+
+        // e = steady_clock::now();
+        // if (duration_cast<milliseconds>(e-s).count() > 1000){
+        //     s = e;
+        //     printf("======>> around 1 s recv count %d\n", count);
+        //     _exit(0);
+        //     count = 0;
+        // }
+    }
+
+    close(sock);
+
+    return 0;
+}
\ No newline at end of file
diff --git a/sample2/client.cpp b/sample2/client.cpp
new file mode 100644
index 0000000..8f44fcf
--- /dev/null
+++ b/sample2/client.cpp
@@ -0,0 +1,66 @@
+#include <cstring>
+#include <stdio.h>
+#include <unistd.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#include "src2/shmh.h"
+
+#include <chrono>
+
+int main(int argc, char const *argv[])
+{
+    int sock = unix_domain_client_fd("/tmp/memfd_shm.sock", 0);
+    if (sock <= 0){
+        printf("unix_domain_client_fd failed\n");
+        return -1;
+    }
+
+    int count = 0;
+
+    using namespace std::chrono;
+    auto s = steady_clock::now();
+    auto e = s;
+
+    while (true) {
+
+        int recvfds[16];
+        memset(recvfds, 0, sizeof(int)*16);
+        int fd = recvfd(sock, recvfds, 16);
+        if (fd < 0){
+            printf("memfd %d no exist\n", fd);
+            continue;
+        }
+        // struct stat st;
+        // if (fstat (fd, &st))
+        // {
+        //     return -1;
+        // }
+        // printf("st size %ld\n", st.st_size);
+
+        count++;
+
+        unsigned char* addr;
+        int len = basic_shm_mmap(recvfds[0], &addr);
+        if (len <= 0) break;
+        printf("======>> mmap len %d msg %s\n", len, addr);
+        basic_shm_unmmap(fd, &addr);
+        for (int i = 0; i < 16; i++) {
+            close(recvfds[i]);
+        }
+        usleep(20000);
+
+        // e = steady_clock::now();
+        // if (duration_cast<milliseconds>(e-s).count() > 1000){
+        //     s = e;
+        //     printf("======>> around 1 s recv count %d\n", count);
+        //     _exit(0);
+        //     count = 0;
+        // }
+    }
+
+    close(sock);
+
+    return 0;
+}
\ No newline at end of file
diff --git a/sample2/server.cpp b/sample2/server.cpp
new file mode 100644
index 0000000..0fdc343
--- /dev/null
+++ b/sample2/server.cpp
@@ -0,0 +1,52 @@
+#include <stdio.h>
+
+#include "src2/shmh.h"
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#include <thread>
+#include <unistd.h>
+using namespace std;
+
+static int idx = 0;
+static int get_memfd(void* args, struct fd_msg* msg){
+    int fd = basic_shm_create("shm", 128*1024*1024);
+    if (fd > 0){
+        // struct stat st;
+        // if (fstat (fd, &st))
+        // {
+        //     return -1;
+        // }
+        // printf("st size %ld\n", st.st_size);
+
+        msg->fd = fd;
+        unsigned char* addr;
+        if (basic_shm_mmap(fd, &addr) > 0){
+            sprintf((char*)addr, "get_memfd set msg %d", idx++);
+            basic_shm_unmmap(fd, &addr);
+        }
+        return fd;
+    }
+    return 0;
+}
+
+int main(int argc, char const *argv[])
+{
+    int sock = unix_domain_server_fd("/tmp/memfd_shm.sock", 1);
+    if (sock < 0){
+        printf("unix_domain_server_fd failed\n");
+        return 0;
+    }
+
+    thread t([&sock]{
+        // epoll_loop(sock, get_memfd, NULL, NULL);
+        // poll_loop(sock, get_memfd, NULL, NULL);
+        // select_loop(sock, get_memfd, NULL, NULL);
+        simple_loop(sock, get_memfd, NULL, NULL);
+    });
+
+    t.join();
+    close(sock);
+
+    return 0;
+}
\ No newline at end of file
diff --git a/sample2/srv_recv.cpp b/sample2/srv_recv.cpp
new file mode 100644
index 0000000..c6951a2
--- /dev/null
+++ b/sample2/srv_recv.cpp
@@ -0,0 +1,53 @@
+#include <stdio.h>
+
+#include "src2/shmh.h"
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#include <thread>
+#include <unistd.h>
+using namespace std;
+
+static int handle_memfd(void* args, struct fd_msg* msg){
+    int fd = msg->fd;
+    if (fd > 0){
+        // struct stat st;
+        // if (fstat (fd, &st))
+        // {
+        //     return -1;
+        // }
+        // printf("st size %ld\n", st.st_size);
+
+        unsigned char* addr;
+        int len = basic_shm_mmap(fd, &addr);
+        if (len <= 0) {
+            printf("======>> basic_shm_mmap failed\n");
+            return -1;
+        }
+        printf("======>> mmap len %d msg %s\n", len, addr);
+        basic_shm_unmmap(fd, &addr);
+        basic_shm_close(fd);
+        return fd;
+    }
+    return 0;
+}
+
+int main(int argc, char const *argv[])
+{
+    int sock = unix_domain_server_fd("/tmp/memfd_shm.sock", 1);
+    if (sock < 0){
+        printf("unix_domain_server_fd failed\n");
+        return 0;
+    }
+
+    thread t([&sock]{
+        epoll_loop(sock, NULL, handle_memfd, NULL, NULL);
+        // poll_loop(sock, NULL, handle_memfd, NULL, NULL);
+        // select_loop(sock, NULL, handle_memfd, NULL, NULL);
+    });
+
+    t.join();
+    close(sock);
+
+    return 0;
+}
\ No newline at end of file
diff --git a/src2/CMakeLists.txt b/src2/CMakeLists.txt
new file mode 100644
index 0000000..7e0ffbb
--- /dev/null
+++ b/src2/CMakeLists.txt
@@ -0,0 +1,12 @@
+cmake_minimum_required(VERSION 3.9)
+
+file(GLOB SOURCES *.c)
+
+add_compile_options(-g -O0)
+# add library
+add_library(memfd_shm SHARED ${SOURCES})
+# target_link_libraries(memfd PRIVATE pthread)
+# add_library(libipc_server SHARED  ipc_msg.c ipc_server_lib.c)
+# add_library(libipc_client SHARED  ipc_msg.c ipc_client_lib.c)
+
+
diff --git a/src2/epollfd_shm.c b/src2/epollfd_shm.c
new file mode 100644
index 0000000..e545d13
--- /dev/null
+++ b/src2/epollfd_shm.c
@@ -0,0 +1,604 @@
+#include "epollfd_shm.h"
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/epoll.h>
+#include <sys/un.h>
+#include <poll.h>
+#include <unistd.h>
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <fcntl.h>
+
+#include "transfd_shm.h"
+
+static void setfdnonblock(int fd, int nonblock){
+    int flags = fcntl(fd, F_GETFL);
+    if (flags < 0) return;
+
+    if (nonblock) {
+        flags |= O_NONBLOCK;
+    } else {
+        flags &= ~O_NONBLOCK;
+    }
+    if (fcntl(fd, F_SETFL, flags) < 0){
+        printf("setfdnonblock %s failed %d -> %s\n", nonblock ? "nonblock" : "block", errno, strerror(errno));
+    }
+}
+
+static inline int fdnonblock(int fd){
+    int flags = fcntl(fd, F_GETFL);
+    if (flags < 0) return 0;
+    return flags & O_NONBLOCK;
+}
+
+int unix_domain_server_fd(const char* path, int nonblock){
+    struct sockaddr_un addr;
+    if (strlen(path) > sizeof(addr.sun_path) -1){
+        printf("unix_domain_server_fd path too long, must less than %lu\n", sizeof(addr.sun_path));
+        return -1;
+    }
+
+    memset(&addr, 0, sizeof(addr));
+    addr.sun_family = AF_UNIX;
+    memcpy(addr.sun_path, path, strlen(path));
+
+    int fd = socket(AF_UNIX, SOCK_SEQPACKET|SOCK_CLOEXEC, 0);
+    if (fd < 0) {
+        printf("unix_domain_server_fd failed %d -> %s\n", errno, strerror(errno));
+        return fd;
+    }
+
+    unlink(path);
+
+    int ret = bind(fd, (const struct sockaddr *)&addr, sizeof(addr));
+    if (ret != 0){
+        close(fd);
+        printf("unix_domain_server_fd bind failed %d -> %s\n", errno, strerror(errno));
+        return ret;
+    }
+
+    ret = listen(fd, 128);
+    if (ret != 0){
+        printf("unix_domain_server_fd listen failed %d -> %s\n", errno, strerror(errno));
+        close(fd);
+        return ret;
+    }
+
+    if (nonblock) setfdnonblock(fd, 1);
+
+    return fd;
+}
+
+int unix_domain_client_fd(const char *path, int nonblock){
+    struct sockaddr_un addr;
+    memset(&addr, 0, sizeof(addr));
+    addr.sun_family = AF_UNIX;
+    memcpy(addr.sun_path, path, strlen(path));
+
+    int fd = socket(PF_UNIX, SOCK_SEQPACKET|SOCK_CLOEXEC, 0);
+    if (fd < 0){
+        printf("unix_domain_client_fd socket failed %d -> %s\n", errno, strerror(errno));
+        return fd;
+    }
+
+    int ret = connect(fd, (const struct sockaddr *)&addr, sizeof(addr));
+    if (ret != 0){
+        printf("unix_domain_client_fd connect failed %d -> %s\n", errno, strerror(errno));
+        close(fd);
+        return ret;
+    }
+
+    if (nonblock) setfdnonblock(fd, 1);
+
+    return fd;
+}
+
+static int epoll_init(int fd, int flags){
+    int epollfd = epoll_create1(EPOLL_CLOEXEC);
+    if (epollfd < 0){
+        printf("epoll_loop_server create epollfd failed %d -> %s", errno, strerror(errno));
+        return -1;
+    }
+
+    struct epoll_event event;
+    event.events = flags;
+    event.data.fd = fd;
+
+    if (epoll_ctl(epollfd, EPOLL_CTL_ADD, fd, &event) < 0){
+        printf("epoll_loop_server add failed %d -> %s\n", errno, strerror(errno));
+        return -1;
+    }
+    return epollfd;
+}
+
+static void update_client(int clients[], int max, int newFd, int oldFd){
+    for(int i = 0; i < max; i++){
+        if (clients[i] == oldFd){
+            clients[i] = newFd;
+            break;
+        }
+    }
+}
+
+static int no_quit(void* args){
+    return 0;
+}
+
+// 璁や负鏈�澶氫笉浼氳秴杩�256涓鎴风杩炴帴
+static const int maxConns = 256;
+// 璁や负鏈�澶氫竴娆′紶杈撶殑fd涓嶈秴杩�16涓�
+static const int maxMemFds = 16;
+
+static int copyFds(void* args, cbGetData fget, int memFds[]) {
+    struct fd_msg msg;
+    memset(&msg, 0, sizeof(msg));
+    int memFds_len = 0;
+    if (fget(args, &msg)){
+        if (msg.data) {
+            memcpy(memFds, msg.data, sizeof(int) * msg.len);
+            memFds_len = msg.len;
+        } else {
+            memFds[0] = msg.fd;
+            memFds_len = 1;
+        }
+    }
+    return memFds_len;
+}
+
+static void handleFds(void* args, cbHandleData fhandle, int memFds[], int fds) {
+    struct fd_msg msg = {};
+    int fd_len = fds > maxMemFds ? maxMemFds : fds;
+    if (fd_len > 1) {
+        msg.data = memFds;
+        msg.len = fd_len;
+    } else {
+        msg.fd = memFds[0];
+    }
+    fhandle(args, &msg);
+}
+
+int epoll_loop(int listenfd, cbGetData fget, cbHandleData fhandle, cbQuit fquit, void* args){
+    if (!fget && !fhandle) {
+        printf("epoll At Leaset MUST be a sender or receiver\n");
+        return -1;
+    }
+    int is_sender = fget ? 1 : 0;
+    int is_recver = fhandle ? 1 : 0;
+
+    struct sockaddr_un connaddr;
+    socklen_t len = sizeof(connaddr);
+
+    cbQuit fq = no_quit;
+    if (fquit) fq = fquit;
+
+    int clients[maxConns];
+    memset(clients, -1, maxConns * sizeof(int));
+
+    int ET = 0;
+
+    int epollfd = epoll_init(listenfd, EPOLLIN|ET);
+    if (epollfd == -1){
+        return epollfd;
+    }
+
+    int listenfd_nonblock = fdnonblock(listenfd);
+
+    while (!fq(args)) {
+        struct epoll_event events[maxConns];
+        memset(events, 0, maxConns * sizeof(struct epoll_event));
+        int nready = epoll_wait(epollfd, events, maxConns, 3000);
+        if (nready == -1){
+            printf("epoll_loop wait failed %d -> %s\n", errno, strerror(errno));
+            break;
+        }
+        if (nready == 0){
+            // timeout
+            continue;
+        }
+
+        // 鍙戦�佺粰鎵�鏈夊綋鍓嶅凡杩炴帴鐩稿悓鐨刦d
+        int memFds[maxMemFds];
+        memset(memFds, -1, sizeof(int) * maxMemFds);
+        int memFds_len = 0;
+        if (is_sender){
+            memFds_len = copyFds(args, fget, memFds);
+        }
+
+        for(int i = 0; i < nready; i++){
+            if (events[i].data.fd == listenfd){
+                int conn;
+                if (listenfd_nonblock){
+                    while((conn = accept(listenfd, (struct sockaddr *)&connaddr, &len)) > 0){
+                        setfdnonblock(conn, 1);
+                        struct epoll_event ev;
+                        ev.data.fd = conn;
+                        ev.events = EPOLLRDHUP|ET;
+                        if (is_sender) ev.events |= EPOLLOUT;
+                        if (is_recver) ev.events |= EPOLLIN;
+                        epoll_ctl(epollfd, EPOLL_CTL_ADD, conn, &ev);
+                        update_client(clients, maxConns, conn, -1);
+                    }
+                } else{
+                    conn = accept(listenfd, (struct sockaddr *)&connaddr, &len);
+                    if (conn < 0){
+                        printf("epoll_loop accept failed %d -> %s\n", errno, strerror(errno));
+                        continue;
+                    }
+                    setfdnonblock(conn, 1);
+                    struct epoll_event ev;
+                    ev.data.fd = conn;
+                    ev.events = EPOLLRDHUP|ET;
+                    if (is_sender) ev.events |= EPOLLOUT;
+                    if (is_recver) ev.events |= EPOLLIN;
+                    epoll_ctl(epollfd, EPOLL_CTL_ADD, conn, &ev);
+                    update_client(clients, maxConns, conn, -1);
+                }
+            } else if (events[i].events & EPOLLIN){
+                // 姝ゅ搴旇娌℃湁鐢�
+                int conn = events[i].data.fd;
+                if (events[i].events & EPOLLRDHUP){
+                    close(conn);
+                    struct epoll_event ev = events[i];
+                    epoll_ctl(epollfd, EPOLL_CTL_DEL, conn, &ev);
+                    update_client(clients, maxConns, -1, conn);
+                    continue;
+                }
+
+                if (conn < 0) continue;
+                int recvFds[maxMemFds];
+                memset(recvFds, -1, sizeof(int) * maxMemFds);
+                int fds = recvfd(conn, recvFds, maxMemFds);
+                if (fds < 0){
+                    printf("epoll_loop recvfd failed\n");
+                    continue;
+                }else if (fds == 0){
+                    close(conn);
+                    struct epoll_event ev = events[i];
+                    epoll_ctl(epollfd, EPOLL_CTL_DEL, conn, &ev);
+                    update_client(clients, maxConns, -1, conn);
+                    continue;
+                } else if (fds > maxMemFds){
+                    printf("epoll_loop recvfd too much! max recv fds %d\n", maxMemFds);
+                }
+
+                handleFds(args, fhandle, recvFds, fds);
+
+            } else if (events[i].events & EPOLLOUT){
+                int conn = events[i].data.fd;
+                if (events[i].events & EPOLLRDHUP){
+                    close(conn);
+                    struct epoll_event ev = events[i];
+                    epoll_ctl(epollfd, EPOLL_CTL_DEL, conn, &ev);
+                    update_client(clients, maxConns, -1, conn);
+                    continue;
+                }
+
+                if (conn < 0) continue;
+                if (memFds_len > 0){
+                    // 浠呭彂閫佷竴涓� sizeof(memFd)
+                    int ret = sendfd(conn, memFds, memFds_len);
+                    if (ret == -1){
+                        printf("epoll_loop sendfd %d client in %d failed\n", i, nready);
+                    } else if (ret == 0){
+                        close(conn);
+                        struct epoll_event ev = events[i];
+                        epoll_ctl(epollfd, EPOLL_CTL_DEL, conn, &ev);
+                        update_client(clients, maxConns, -1, conn);
+                        continue;
+                    }
+                }
+            }
+        }
+        for (int i = 0; i < memFds_len; i++) {
+            close(memFds[i]);
+        }
+    }
+    for(int i = 0; i < maxConns; i++){
+        if (clients[i] != -1)
+            close(clients[i]);
+    }
+    close(epollfd);
+    return 0;
+}
+
+int poll_loop(int listenfd, cbGetData fget, cbHandleData fhandle, cbQuit fquit, void* args){
+    if (!fget && !fhandle) {
+        printf("poll At Leaset MUST be a sender or receiver\n");
+        return -1;
+    }
+    int is_sender = fget ? 1 : 0;
+    int is_recver = fhandle ? 1 : 0;
+
+    struct sockaddr_un connaddr;
+    socklen_t len = sizeof(connaddr);
+
+    cbQuit fq = no_quit;
+    if (fquit) fq = fquit;
+
+    struct pollfd clientfds[maxConns];
+    memset(clientfds, -1, maxConns * sizeof(struct pollfd));
+    clientfds[0].fd = listenfd;
+    clientfds[0].events = POLLIN;
+
+    int maxi = 1;
+
+    int listenfd_nonblock = fdnonblock(listenfd);
+
+    while (!fq(args)) {
+        int nready = poll(clientfds, maxConns, 1000);
+        if (nready == -1){
+            printf("poll_loop wait failed %d -> %s\n", errno, strerror(errno));
+            break;
+        }
+        if (nready == 0){
+            // timeout
+            continue;
+        }
+
+        if (clientfds[0].fd == listenfd && (clientfds[0].revents & POLLIN)) {
+            int conn;
+            if (listenfd_nonblock){
+                while((conn = accept(listenfd, (struct sockaddr *)&connaddr, &len)) > 0){
+                    setfdnonblock(conn, 1);
+                    clientfds[maxi].fd = conn;
+                    if (is_sender) clientfds[maxi].events = POLLOUT;
+                    if (is_recver) clientfds[maxi].events = POLLIN;
+                    maxi++;
+                }
+            } else{
+                conn = accept(listenfd, (struct sockaddr *)&connaddr, &len);
+                if (conn < 0){
+                    printf("poll_loop accept failed %d -> %s\n", errno, strerror(errno));
+                    break;
+                }
+                setfdnonblock(conn, 1);
+                clientfds[maxi].fd = conn;
+                clientfds[maxi].events = POLLOUT;
+                maxi++;
+            }
+        }
+
+        // 鍙戦�佺粰鎵�鏈夊綋鍓嶅凡杩炴帴鐩稿悓鐨刦d
+        int memFds[maxMemFds];
+        memset(memFds, -1, sizeof(int) * maxMemFds);
+        int memFds_len = 0;
+        if (is_sender){
+            memFds_len = copyFds(args, fget, memFds);
+        }
+
+        for(int i = 1; i < maxConns; i++){
+             if (clientfds[i].revents & POLLOUT){
+                int conn = clientfds[i].fd;
+                if (conn < 0) continue;
+                if (memFds_len > 0){
+                    // 浠呭彂閫佷竴涓� sizeof(memFd)
+                    int ret = sendfd(conn, memFds, memFds_len);
+                    if (ret == -1){
+                        printf("poll_loop sendfd %d client in %d failed\n", i, nready);
+                    } else if (ret == 0){
+                        close(conn);
+                        clientfds[i].fd = -1;
+                        continue;
+                    }
+                }
+            }
+            if (clientfds[i].revents & POLLIN){
+                int conn = clientfds[i].fd;
+
+                int recvFds[maxMemFds];
+                memset(recvFds, -1, sizeof(int) * maxMemFds);
+                int fds = recvfd(conn, recvFds, maxMemFds);
+                if (fds < 0){
+                    printf("poll_loop recvfd failed\n");
+                    continue;
+                }else if (fds == 0){
+                    close(conn);
+                    clientfds[i].fd = -1;
+                    continue;
+                } else if (fds > maxMemFds){
+                    printf("poll_loop recvfd too much! max recv fds %d\n", maxMemFds);
+                }
+
+                handleFds(args, fhandle, recvFds, fds);
+            }
+        }
+        for (int i = 0; i < memFds_len; i++) {
+            close(memFds[i]);
+        }
+    }
+    for(int i = 0; i < maxConns; i++){
+        if (clientfds[i].fd != -1)
+            close(clientfds[i].fd);
+    }
+    return 0;
+}
+
+int select_loop(int listenfd, cbGetData fget, cbHandleData fhandle, cbQuit fquit, void* args){
+    if (!fget && !fhandle) {
+        printf("select At Leaset MUST be a sender or receiver\n");
+        return -1;
+    }
+    int is_sender = fget ? 1 : 0;
+    int is_recver = fhandle ? 1 : 0;
+
+    struct sockaddr_un connaddr;
+    socklen_t len = sizeof(connaddr);
+
+    cbQuit fq = no_quit;
+    if (fquit) fq = fquit;
+
+    int clients[maxConns];
+    memset(clients, -1, maxConns * sizeof(int));
+
+    while (!fq(args)) {
+        fd_set rset, wset;
+        FD_ZERO(&rset);
+        FD_ZERO(&wset);
+        FD_SET(listenfd, &rset);
+
+        int maxfd = listenfd;
+        for (int i = 0; i < maxConns; i++){
+            int conn = clients[i];
+            if (conn != -1){
+                if (is_sender)
+                    FD_SET(conn, &wset);
+                if (is_recver)
+                    FD_SET(conn, &rset);
+            }
+            if (maxfd < conn) {
+                maxfd = conn;
+            }
+        }
+
+        struct timeval tm = {.tv_sec = 1, .tv_usec = 0};
+        int ret = select(maxfd + 1, &rset, &wset, NULL, &tm);
+        if (ret == -1){
+            if (errno == EINTR)
+                break;
+        } else if (ret == 0) {
+            // timeout
+            continue;
+        }
+
+        if (FD_ISSET(listenfd, &rset)){
+            int conn = accept(listenfd, (struct sockaddr *)&connaddr, &len);
+            if (conn < 0){
+                printf("select accept failed %d -> %s\n", errno, strerror(errno));
+                break;
+            }
+            update_client(clients, maxConns, conn, -1);
+        }
+
+        int memFds[maxMemFds];
+        memset(memFds, -1, sizeof(int) * maxMemFds);
+        int memFds_len = 0;
+        if (is_sender){
+            memFds_len = copyFds(args, fget, memFds);
+        }
+        for (int i = 0; i < maxConns; i++){
+            int conn = clients[i];
+            if (conn > 0 && FD_ISSET(conn, &rset)){
+
+                int recvFds[maxMemFds];
+                memset(recvFds, -1, sizeof(int) * maxMemFds);
+                int fds = recvfd(conn, recvFds, maxMemFds);
+                if (fds < 0){
+                    printf("select_loop recvfd failed\n");
+                    continue;
+                }else if (fds == 0){
+                    close(conn);
+                    update_client(clients, maxConns, -1, conn);
+                    FD_CLR(conn, &wset);
+                    continue;
+                } else if (fds > maxMemFds){
+                    printf("select_loop recvfd too much! max recv fds %d\n", maxMemFds);
+                }
+
+                handleFds(args, fhandle, recvFds, fds);
+            }
+            if (conn > 0 && FD_ISSET(conn, &wset)){
+                if (memFds_len > 0){
+                    // 浠呭彂閫佷竴涓� sizeof(memFd)
+                    int ret = sendfd(conn, memFds, memFds_len);
+                    if (ret == -1){
+                        printf("select_loop sendfd %d client in %d failed\n", i, maxConns);
+                    } else if (ret == 0){
+                        close(conn);
+                        update_client(clients, maxConns, -1, conn);
+                        FD_CLR(conn, &wset);
+                        continue;
+                    }
+                }
+            }
+        }
+        for (int i = 0; i < memFds_len; i++) {
+            close(memFds[i]);
+        }
+    }
+
+    for(int i = 0; i < maxConns; i++){
+        if (clients[i] != -1)
+            close(clients[i]);
+    }
+    return 0;
+}
+
+int simple_loop(int listenfd, cbGetData fget, cbQuit fquit, void* args){
+    if (!fget) {
+        printf("simple_loop MUST be a sender\n");
+        return -1;
+    }
+
+    struct sockaddr_un connaddr;
+    socklen_t len = sizeof(connaddr);
+
+    cbQuit fq = no_quit;
+    if (fquit) fq = fquit;
+
+    int clients[maxConns];
+    memset(clients, -1, maxConns * sizeof(int));
+
+    // 璁剧疆 listenfd 涓洪潪闃诲, accpet 涓嶄細闃诲
+    setfdnonblock(listenfd, 1);
+
+    int cur_cli = 0;
+
+    while (!fq(args)) {
+
+        int conn = accept(listenfd, (struct sockaddr *)&connaddr, &len);
+        // if (conn < 0){
+        //     printf("simple_loop accept failed %d -> %s\n", errno, strerror(errno));
+        //     usleep(10000);
+        //     continue;
+        // }
+
+        // 濡傛灉 accept 鎴愬姛娣诲姞杩炴帴
+        if (conn > 0){
+            cur_cli++;
+            // 璁剧疆涓洪潪闃诲锛屼互鍏嶉樆濉炲叾浠杝ocket鍙戦��
+            // setfdnonblock(conn, 1);
+            // 搴旇璁剧疆涓洪樆濉瀒o淇濊瘉鎵�鏈夌殑瀹㈡埛绔帴鏀剁殑鏁版嵁搴旇鏄竴鏍风殑
+            // 椋庨櫓鍦ㄤ簬濡傛灉鏌愪竴涓帴鏀惰緝鎱紝涔嬪悗鐨勮繛鎺ラ兘闇�绛夊緟
+            update_client(clients, maxConns, conn, -1);
+        }
+
+        if (cur_cli <= 0) {
+            usleep(10000);
+            continue;
+        }
+
+        int memFds[maxMemFds];
+        memset(memFds, -1, sizeof(int) * maxMemFds);
+        int memFds_len = copyFds(args, fget, memFds);
+
+        for (int i = 0; i < maxConns; ++i) {
+            int conn = clients[i];
+            if (conn <= 0) continue;
+
+            if (memFds_len > 0){
+                // 浠呭彂閫佷竴涓� sizeof(memFd)
+                int ret = sendfd(conn, memFds, memFds_len);
+                if (ret == -1){
+                    printf("simple_loop sendfd %d client in %d failed\n", i, maxConns);
+                } else if (ret == 0){
+                    close(conn);
+                    update_client(clients, maxConns, -1, conn);
+                    cur_cli--;
+                    continue;
+                }
+            }
+        }
+        for (int i = 0; i < memFds_len; i++) {
+            close(memFds[i]);
+        }
+    }
+
+    for(int i = 0; i < maxConns; i++){
+        if (clients[i] != -1)
+            close(clients[i]);
+    }
+    return 0;
+}
diff --git a/src2/epollfd_shm.h b/src2/epollfd_shm.h
new file mode 100644
index 0000000..bc0c706
--- /dev/null
+++ b/src2/epollfd_shm.h
@@ -0,0 +1,46 @@
+#ifndef _epoll_fd_shm_h_
+#define _epoll_fd_shm_h_
+
+#ifndef HIDDENAPI
+#define HIDDENAPI __attribute__((visibility("hidden")))
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int unix_domain_server_fd(const char* path, int nonblock);
+int unix_domain_client_fd(const char* path, int nonblock);
+
+struct fd_msg{
+    void* data;
+    union{
+        int len;
+        int fd;
+    };
+};
+
+typedef int(*cbGetData)(void* args, struct fd_msg* msg);
+typedef cbGetData cbHandleData;
+
+typedef int(*cbQuit)(void* args);
+
+// 鏁堢巼寰堥珮锛屼絾鏄棤娉曚繚璇佺粰鎵�鏈夌殑瀹㈡埛绔彂閫佸悓涓�涓秷鎭�, 2w+/s
+int epoll_loop(int listenfd, cbGetData fget, cbHandleData fhandle, cbQuit fquit, void* args);
+int poll_loop(int listenfd, cbGetData fget, cbHandleData fhandle, cbQuit fquit, void* args);
+int select_loop(int listenfd, cbGetData fget, cbHandleData fhandle, cbQuit fquit, void* args);
+// 璁や负澶ч儴鍒嗘椂闂撮兘鍙啓锛屼繚璇佺粰瀹㈡埛绔彂閫佸悓涓�涓秷鎭�, block IO, only send, 1w+/s
+int simple_loop(int listenfd, cbGetData fget, cbQuit fquit, void* args);
+
+
+// 瀹㈡埛绔病鏈夊苟鍙戦渶姹傦紝鍙渶瑕佸湪 loop 涓笉鍋� recvfd 鍗冲彲
+
+
+// 搴旇娌′粈涔堢敤
+HIDDENAPI void free_fd_msg(struct fd_msg* msg);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
\ No newline at end of file
diff --git a/src2/memfd_shm.c b/src2/memfd_shm.c
new file mode 100644
index 0000000..2156c18
--- /dev/null
+++ b/src2/memfd_shm.c
@@ -0,0 +1,103 @@
+#include "memfd_shm.h"
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <sys/mman.h>
+#include <sys/syscall.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <linux/memfd.h>
+#include <stdlib.h>
+
+static inline int sys_memfd_create(const char *name,
+                unsigned int flags)
+{
+    return syscall(__NR_memfd_create, name, flags);
+}
+
+int basic_shm_create(const char *name, int len){
+  int fd;
+  struct stat st;
+
+  /* Create an anonymous file in tmpfs; */
+  if(0 >= len)
+  {
+      return -1;
+  }
+
+  fd = sys_memfd_create(name, MFD_CLOEXEC);
+
+  if (fd == -1)
+  {
+      return -1;
+  }
+
+  /* Size the file as specified on the command line */
+
+  if (ftruncate(fd, len) == -1)
+  {
+    close(fd);
+    return -1;
+  }
+
+  if (fstat (fd, &st))
+  {
+    close(fd);
+    return -1;
+  }
+
+  // printf("PID: %ld; fd: %d; /proc/%ld/fd/%d, atime: %lu.%lu\n",
+  //     (long) getpid(), fd, (long) getpid(), fd, st.st_atim.tv_sec, st.st_atim.tv_nsec);
+
+  return fd;
+}
+
+int basic_shm_mmap(int fd, unsigned char** ppaddr){
+  struct stat st;
+  ssize_t len;
+  if (fstat (fd, &st))
+  {
+      return -1;
+  }
+  len = st.st_size;
+
+  *ppaddr = (unsigned char*) mmap (NULL, len, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
+  if (*ppaddr == MAP_FAILED)
+  {
+    return -1;
+  }
+
+  // printf("length: %zu, atime: %lu.%lu\n", len, st.st_atim.tv_sec, st.st_atim.tv_nsec);
+  return len;
+}
+
+int basic_shm_unmmap(int fd, unsigned char** ppaddr){
+    struct stat st;
+    ssize_t len;
+    int ret = 0;
+    if (fstat (fd, &st))
+    {
+        return -1;
+    }
+    len = st.st_size;
+
+    ret = munmap((void *)*ppaddr, len);
+    if (ret == -1)
+    {
+        return -1;
+    }
+    *ppaddr = NULL;
+    // printf("length: %zu, atime: %lu.%lu\n", len, st.st_atim.tv_sec, st.st_atim.tv_nsec);
+    return len;
+}
+
+int basic_shm_close(int fd){
+  int ret = -1;
+  if (fd >= 0)
+  {
+    ret = close(fd);
+  }
+  return ret;
+}
diff --git a/src2/memfd_shm.h b/src2/memfd_shm.h
new file mode 100644
index 0000000..6830cce
--- /dev/null
+++ b/src2/memfd_shm.h
@@ -0,0 +1,19 @@
+#ifndef _memfd_shm_h_
+#define _memfd_shm_h_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int basic_shm_create(const char *name, int len);
+
+int basic_shm_mmap(int fd, unsigned char** ppaddr);
+int basic_shm_unmmap(int fd, unsigned char** ppaddr);
+int basic_shm_close(int fd);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
\ No newline at end of file
diff --git a/src2/shmh.h b/src2/shmh.h
new file mode 100644
index 0000000..9b08073
--- /dev/null
+++ b/src2/shmh.h
@@ -0,0 +1,8 @@
+#ifndef _shm_whole_head_h_
+#define _shm_whole_head_h_
+
+#include "memfd_shm.h"
+#include "transfd_shm.h"
+#include "epollfd_shm.h"
+
+#endif
\ No newline at end of file
diff --git a/src2/transfd_shm.c b/src2/transfd_shm.c
new file mode 100644
index 0000000..5c0746a
--- /dev/null
+++ b/src2/transfd_shm.c
@@ -0,0 +1,90 @@
+#include "transfd_shm.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stddef.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <errno.h>
+
+int sendfd(int conn, int fd[], int fds){
+    if (fds <= 0) return -1;
+
+    struct msghdr msg = {};
+    static char dummy = 'x';
+    struct iovec iov = {&dummy, sizeof(dummy)};
+    msg.msg_iov = &iov;
+    msg.msg_iovlen = 1;
+
+    struct cmsghdr* cmsg;
+
+    const unsigned control_len = CMSG_SPACE(sizeof(int) * fds);
+    char* control_buffer = (char*)malloc(control_len);
+
+    msg.msg_control = control_buffer;
+    msg.msg_controllen = control_len;
+
+    cmsg = CMSG_FIRSTHDR(&msg);
+    cmsg->cmsg_level = SOL_SOCKET;
+    cmsg->cmsg_type = SCM_RIGHTS;
+    cmsg->cmsg_len = CMSG_LEN(sizeof(int) * fds);
+    memcpy(CMSG_DATA(cmsg), fd, sizeof(int) * fds);
+
+    int ret = sendmsg(conn, &msg, MSG_NOSIGNAL);
+    free(control_buffer);
+
+    if (ret == -1){
+        printf("sendmsg error %d -> %s\n", errno, strerror(errno));
+        if (errno == EPIPE || errno == ECONNRESET || errno == ENOTCONN)
+            return 0;
+        return -1;
+    }
+    return ret;
+}
+
+int recvfd(int conn, int fd[], int fds){
+    char data;
+    struct msghdr msg = {};
+    struct iovec iov = {&data, 1};
+    msg.msg_iov = &iov;
+    msg.msg_iovlen = 1;
+
+    struct cmsghdr *cmsgp;
+
+    const size_t control_len = CMSG_SPACE(sizeof(int) * 16);
+    char control_buffer[control_len];
+
+    msg.msg_control = control_buffer;
+    msg.msg_controllen = sizeof(control_buffer);
+
+    int ret = recvmsg(conn, &msg, MSG_CMSG_CLOEXEC);
+    if (ret == -1){
+        printf("recvmsg failed %d -> %s\n", errno, strerror(errno));
+        if (errno == ECONNRESET)
+            return 0;
+        return -1;
+    } else if (ret == 0){
+        return 0;
+    }
+
+    int* wire_fds = NULL;
+    unsigned wire_fds_len = 0;
+    if (msg.msg_controllen > 0){
+        struct cmsghdr* cmsg;
+        for (cmsg = CMSG_FIRSTHDR(&msg); cmsg; cmsg = CMSG_NXTHDR(&msg, cmsg)) {
+            const unsigned payload_len = cmsg->cmsg_len - CMSG_LEN(0);
+            if (cmsg->cmsg_level == SOL_SOCKET && cmsg->cmsg_type == SCM_RIGHTS) {
+                wire_fds = (int*)CMSG_DATA(cmsg);
+                wire_fds_len = payload_len / sizeof(int);
+            }
+        }
+    }
+
+    const unsigned count = wire_fds_len > fds ? fds : wire_fds_len;
+    for (unsigned i = 0; i < count; i++){
+        fd[i] = wire_fds[i];
+    }
+
+    return wire_fds_len;
+}
diff --git a/src2/transfd_shm.h b/src2/transfd_shm.h
new file mode 100644
index 0000000..e23653e
--- /dev/null
+++ b/src2/transfd_shm.h
@@ -0,0 +1,21 @@
+#ifndef _trans_fd_shm_h_
+#define _trans_fd_shm_h_
+
+#ifndef HIDDENAPI
+#define HIDDENAPI __attribute__((visibility("hidden")))
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// send fds
+int sendfd(int conn, int fd[], int fds);
+// recv fds, fd pre-allocated buffer, fds buffer size
+int recvfd(int conn, int fd[], int fds);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
\ No newline at end of file

--
Gitblit v1.8.0