From fa398a2cf79535ca7c0f93252d676a0909467272 Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Mon, 14 Mar 2022 15:32:20 -0400 Subject: [PATCH] go: finish Go node-type --- .gitignore | 1 + CMakeLists.txt | 11 + cmake/Go.cmake | 52 ++ go/CMakeLists.txt | 1 + go/go.mod | 29 +- go/go.sum | 152 ++++ go/lib/CMakeLists.txt | 34 + go/lib/README.md | 7 + go/lib/bridge.c | 14 + go/lib/lib.go | 183 +++++ go/lib/logger.go | 104 +++ go/pkg/errors/helper.go | 26 + go/pkg/node.go | 215 ------ go/pkg/nodes/base.go | 56 ++ go/pkg/nodes/example/node.go | 85 +++ go/pkg/nodes/logger.go | 18 + go/pkg/nodes/loopback/node.go | 77 ++ {lib/nodes/go/pkg => go/pkg/nodes}/node.go | 22 +- go/pkg/nodes/registry.go | 23 + go/pkg/sample.go | 45 ++ include/villas/nodes/go.h | 12 + include/villas/nodes/go.hpp | 47 +- lib/node.cpp | 6 +- lib/nodes/CMakeLists.txt | 18 +- lib/nodes/go.cpp | 96 ++- lib/nodes/go/CMakeLists.txt | 18 - lib/nodes/go/go.mod | 10 - lib/nodes/go/go.sum | 154 ---- lib/nodes/go/helper.go | 13 - lib/nodes/go/log.c | 0 lib/nodes/go/log.cpp | 17 - lib/nodes/go/log.h | 1 - lib/nodes/go/logger.go | 81 --- lib/nodes/go/main.go | 160 ----- lib/nodes/go/pkg/nodes/loopback/loopback.go | 74 -- lib/nodes/go/pkg/nodes/webrtc/backoff.go | 33 - lib/nodes/go/pkg/nodes/webrtc/client.go | 164 ----- lib/nodes/go/pkg/nodes/webrtc/node.go | 179 ----- lib/nodes/go/pkg/nodes/webrtc/types.go | 37 - lib/nodes/go/pkg/nodes/webrtc/webrtc.go | 309 -------- lib/nodes/go/pkg/registry.go | 13 - lib/nodes/go/test/CMakeLists.txt | 8 - lib/nodes/go/test/build/CMakeCache.txt | 374 ---------- .../CMakeFiles/3.18.2/CMakeCCompiler.cmake | 77 -- .../CMakeFiles/3.18.2/CMakeCXXCompiler.cmake | 89 --- .../3.18.2/CMakeDetermineCompilerABI_C.bin | Bin 17280 -> 0 bytes .../3.18.2/CMakeDetermineCompilerABI_CXX.bin | Bin 17296 -> 0 bytes .../build/CMakeFiles/3.18.2/CMakeSystem.cmake | 15 - .../3.18.2/CompilerIdC/CMakeCCompilerId.c | 674 ------------------ .../build/CMakeFiles/3.18.2/CompilerIdC/a.out | Bin 17448 -> 0 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 663 ----------------- .../CMakeFiles/3.18.2/CompilerIdCXX/a.out | Bin 17456 -> 0 bytes .../CMakeDirectoryInformation.cmake | 16 - .../go/test/build/CMakeFiles/CMakeOutput.log | 409 ----------- .../test/build/CMakeFiles/CMakeRuleHashes.txt | 3 - .../go/test/build/CMakeFiles/Makefile.cmake | 124 ---- lib/nodes/go/test/build/CMakeFiles/Makefile2 | 172 ----- .../build/CMakeFiles/TargetDirectories.txt | 6 - .../test/build/CMakeFiles/cmake.check_cache | 1 - .../go/test/build/CMakeFiles/progress.marks | 1 - .../build/CMakeFiles/test.dir/C.includecache | 18 - .../CMakeFiles/test.dir/DependInfo.cmake | 21 - .../test/build/CMakeFiles/test.dir/build.make | 118 --- .../CMakeFiles/test.dir/cmake_clean.cmake | 10 - .../build/CMakeFiles/test.dir/depend.internal | 6 - .../build/CMakeFiles/test.dir/depend.make | 6 - .../test/build/CMakeFiles/test.dir/flags.make | 10 - .../test/build/CMakeFiles/test.dir/link.txt | 1 - .../build/CMakeFiles/test.dir/progress.make | 3 - .../test/build/CMakeFiles/test.dir/test.c.o | Bin 1760 -> 0 bytes lib/nodes/go/test/build/Makefile | 211 ------ lib/nodes/go/test/build/cmake_install.cmake | 60 -- .../CMakeDirectoryInformation.cmake | 16 - .../test/build/go/CMakeFiles/progress.marks | 1 - .../CMakeFiles/shim_go.dir/DependInfo.cmake | 11 - .../go/CMakeFiles/shim_go.dir/build.make | 100 --- .../CMakeFiles/shim_go.dir/cmake_clean.cmake | 9 - .../go/CMakeFiles/shim_go.dir/depend.internal | 3 - .../go/CMakeFiles/shim_go.dir/depend.make | 3 - .../go/CMakeFiles/shim_go.dir/progress.make | 2 - lib/nodes/go/test/build/go/Makefile | 169 ----- .../go/test/build/go/cmake_install.cmake | 44 -- lib/nodes/go/test/build/go/test.h | 82 --- lib/nodes/go/test/build/go/test.so | Bin 5109064 -> 0 bytes lib/nodes/go/test/build/test | Bin 3151816 -> 0 bytes lib/nodes/go/test/go/CMakeLists.txt | 23 - lib/nodes/go/test/go/go.mod | 5 - lib/nodes/go/test/go/go.sum | 2 - lib/nodes/go/test/go/test.go | 76 -- lib/nodes/go/test/test.c | 14 - 90 files changed, 1048 insertions(+), 5205 deletions(-) create mode 100644 cmake/Go.cmake create mode 100644 go/CMakeLists.txt create mode 100644 go/lib/CMakeLists.txt create mode 100644 go/lib/README.md create mode 100644 go/lib/bridge.c create mode 100644 go/lib/lib.go create mode 100644 go/lib/logger.go create mode 100644 go/pkg/errors/helper.go delete mode 100644 go/pkg/node.go create mode 100644 go/pkg/nodes/base.go create mode 100644 go/pkg/nodes/example/node.go create mode 100644 go/pkg/nodes/logger.go create mode 100644 go/pkg/nodes/loopback/node.go rename {lib/nodes/go/pkg => go/pkg/nodes}/node.go (50%) create mode 100644 go/pkg/nodes/registry.go create mode 100644 go/pkg/sample.go create mode 100644 include/villas/nodes/go.h delete mode 100644 lib/nodes/go/CMakeLists.txt delete mode 100644 lib/nodes/go/go.mod delete mode 100644 lib/nodes/go/go.sum delete mode 100644 lib/nodes/go/helper.go delete mode 100644 lib/nodes/go/log.c delete mode 100644 lib/nodes/go/log.cpp delete mode 100644 lib/nodes/go/log.h delete mode 100644 lib/nodes/go/logger.go delete mode 100644 lib/nodes/go/main.go delete mode 100644 lib/nodes/go/pkg/nodes/loopback/loopback.go delete mode 100644 lib/nodes/go/pkg/nodes/webrtc/backoff.go delete mode 100644 lib/nodes/go/pkg/nodes/webrtc/client.go delete mode 100644 lib/nodes/go/pkg/nodes/webrtc/node.go delete mode 100644 lib/nodes/go/pkg/nodes/webrtc/types.go delete mode 100644 lib/nodes/go/pkg/nodes/webrtc/webrtc.go delete mode 100644 lib/nodes/go/pkg/registry.go delete mode 100644 lib/nodes/go/test/CMakeLists.txt delete mode 100644 lib/nodes/go/test/build/CMakeCache.txt delete mode 100644 lib/nodes/go/test/build/CMakeFiles/3.18.2/CMakeCCompiler.cmake delete mode 100644 lib/nodes/go/test/build/CMakeFiles/3.18.2/CMakeCXXCompiler.cmake delete mode 100755 lib/nodes/go/test/build/CMakeFiles/3.18.2/CMakeDetermineCompilerABI_C.bin delete mode 100755 lib/nodes/go/test/build/CMakeFiles/3.18.2/CMakeDetermineCompilerABI_CXX.bin delete mode 100644 lib/nodes/go/test/build/CMakeFiles/3.18.2/CMakeSystem.cmake delete mode 100644 lib/nodes/go/test/build/CMakeFiles/3.18.2/CompilerIdC/CMakeCCompilerId.c delete mode 100755 lib/nodes/go/test/build/CMakeFiles/3.18.2/CompilerIdC/a.out delete mode 100644 lib/nodes/go/test/build/CMakeFiles/3.18.2/CompilerIdCXX/CMakeCXXCompilerId.cpp delete mode 100755 lib/nodes/go/test/build/CMakeFiles/3.18.2/CompilerIdCXX/a.out delete mode 100644 lib/nodes/go/test/build/CMakeFiles/CMakeDirectoryInformation.cmake delete mode 100644 lib/nodes/go/test/build/CMakeFiles/CMakeOutput.log delete mode 100644 lib/nodes/go/test/build/CMakeFiles/CMakeRuleHashes.txt delete mode 100644 lib/nodes/go/test/build/CMakeFiles/Makefile.cmake delete mode 100644 lib/nodes/go/test/build/CMakeFiles/Makefile2 delete mode 100644 lib/nodes/go/test/build/CMakeFiles/TargetDirectories.txt delete mode 100644 lib/nodes/go/test/build/CMakeFiles/cmake.check_cache delete mode 100644 lib/nodes/go/test/build/CMakeFiles/progress.marks delete mode 100644 lib/nodes/go/test/build/CMakeFiles/test.dir/C.includecache delete mode 100644 lib/nodes/go/test/build/CMakeFiles/test.dir/DependInfo.cmake delete mode 100644 lib/nodes/go/test/build/CMakeFiles/test.dir/build.make delete mode 100644 lib/nodes/go/test/build/CMakeFiles/test.dir/cmake_clean.cmake delete mode 100644 lib/nodes/go/test/build/CMakeFiles/test.dir/depend.internal delete mode 100644 lib/nodes/go/test/build/CMakeFiles/test.dir/depend.make delete mode 100644 lib/nodes/go/test/build/CMakeFiles/test.dir/flags.make delete mode 100644 lib/nodes/go/test/build/CMakeFiles/test.dir/link.txt delete mode 100644 lib/nodes/go/test/build/CMakeFiles/test.dir/progress.make delete mode 100644 lib/nodes/go/test/build/CMakeFiles/test.dir/test.c.o delete mode 100644 lib/nodes/go/test/build/Makefile delete mode 100644 lib/nodes/go/test/build/cmake_install.cmake delete mode 100644 lib/nodes/go/test/build/go/CMakeFiles/CMakeDirectoryInformation.cmake delete mode 100644 lib/nodes/go/test/build/go/CMakeFiles/progress.marks delete mode 100644 lib/nodes/go/test/build/go/CMakeFiles/shim_go.dir/DependInfo.cmake delete mode 100644 lib/nodes/go/test/build/go/CMakeFiles/shim_go.dir/build.make delete mode 100644 lib/nodes/go/test/build/go/CMakeFiles/shim_go.dir/cmake_clean.cmake delete mode 100644 lib/nodes/go/test/build/go/CMakeFiles/shim_go.dir/depend.internal delete mode 100644 lib/nodes/go/test/build/go/CMakeFiles/shim_go.dir/depend.make delete mode 100644 lib/nodes/go/test/build/go/CMakeFiles/shim_go.dir/progress.make delete mode 100644 lib/nodes/go/test/build/go/Makefile delete mode 100644 lib/nodes/go/test/build/go/cmake_install.cmake delete mode 100644 lib/nodes/go/test/build/go/test.h delete mode 100644 lib/nodes/go/test/build/go/test.so delete mode 100755 lib/nodes/go/test/build/test delete mode 100644 lib/nodes/go/test/go/CMakeLists.txt delete mode 100644 lib/nodes/go/test/go/go.mod delete mode 100644 lib/nodes/go/test/go/go.sum delete mode 100644 lib/nodes/go/test/go/test.go delete mode 100644 lib/nodes/go/test/test.c diff --git a/.gitignore b/.gitignore index f4b688046..3f6211e50 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ python/dist/ *.pyc python/.eggs/ +go/lib/_obj/ diff --git a/CMakeLists.txt b/CMakeLists.txt index 26fc02773..99eaa5a1b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -61,6 +61,7 @@ elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") endif() endif() +include(FetchContent) include(FindPkgConfig) include(CheckIncludeFile) include(FeatureSummary) @@ -108,6 +109,12 @@ find_program(PROTOBUFC_COMPILER NAMES protoc-c) find_program(PROTOBUF_COMPILER NAMES protoc) find_program(GO NAMES go) +# Optionally download Go toolchain +option(DOWNLOAD_GO "Download Go toolchain" ON) +if(NOT GO AND DOWNLOAD_GO) + include("${CMAKE_CURRENT_LIST_DIR}/cmake/Go.cmake") +endif() + set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:/usr/local/share/pkgconfig:/usr/lib64/pkgconfig") pkg_check_modules(JANSSON IMPORTED_TARGET REQUIRED jansson>=2.9) @@ -222,6 +229,10 @@ if(WITH_FPGA) add_subdirectory(fpga) endif() +if(WITH_GO) + add_subdirectory(go) +endif() + add_subdirectory(common) add_subdirectory(etc) add_subdirectory(lib) diff --git a/cmake/Go.cmake b/cmake/Go.cmake new file mode 100644 index 000000000..4d8490d6a --- /dev/null +++ b/cmake/Go.cmake @@ -0,0 +1,52 @@ +# determine GOARCH for target +set(GO_TARGET_ARCH_OVERRIDE + "" + CACHE STRING "overrides the 'GOARCH' variable") +if (GO_TARGET_ARCH_OVERRIDE) + set(GO_TARGET_ARCH "${GO_TARGET_ARCH_OVERRIDE}") +elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") + set(GO_TARGET_ARCH "amd64") +elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "i[3-6]86") + set(GO_TARGET_ARCH "386") +elseif (CMAKE_SYSTEM_NAME MATCHES "(ppc64|ppc64le|arm|arm64|s390x)") + set(GO_TARGET_ARCH "${CMAKE_SYSTEM_NAME}") +else () + message(FATAL_ERROR "Unable to auto-determine GOARCH. Please set GO_TARGET_ARCH_OVERRIDE manually.") +endif () + +# determine GOOS for target +set(GO_TARGET_OS_OVERRIDE + "" + CACHE STRING "overrides the 'GOOS' variable") +if (GO_TARGET_OS_OVERRIDE) + set(GO_TARGET_OS "${GO_TARGET_OS_OVERRIDE}") +elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux") + set(GO_TARGET_OS "linux") +elseif (CMAKE_SYSTEM_NAME STREQUAL "Android") + set(GO_TARGET_OS "android") +elseif (CMAKE_SYSTEM_NAME STREQUAL "Windows") + set(GO_TARGET_OS "windows") +elseif (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") + set(GO_TARGET_OS "freebsd") +elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin") + set(GO_TARGET_OS "darwin") +else () + message(FATAL_ERROR "Unable to auto-determine GOOS. Please set GO_TARGET_OS_OVERRIDE manually.") +endif () + +FetchContent_Declare( + go + URL https://go.dev/dl/go1.17.8.${GO_TARGET_OS}-${GO_TARGET_ARCH}.tar.gz +) + +message(STATUS "Downloading Go toolchain for ${GO_TARGET_OS}/${GO_TARGET_ARCH}") +FetchContent_MakeAvailable(go) + +find_program(GO + NAMES go + NO_DEFAULT_PATH + PATHS + ${CMAKE_CURRENT_BINARY_DIR}/_deps/go-src/bin + ${go_SOURCE_DIR} +) + diff --git a/go/CMakeLists.txt b/go/CMakeLists.txt new file mode 100644 index 000000000..3ea7a4199 --- /dev/null +++ b/go/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory(lib) diff --git a/go/go.mod b/go/go.mod index 100158d90..ef2e67aea 100644 --- a/go/go.mod +++ b/go/go.mod @@ -2,4 +2,31 @@ module git.rwth-aachen.de/acs/public/villas/node/go go 1.17 -require github.com/google/uuid v1.3.0 +require ( + github.com/google/uuid v1.3.0 + github.com/gorilla/websocket v1.5.0 + github.com/pion/webrtc/v3 v3.1.24 +) + +require ( + github.com/pion/datachannel v1.5.2 // indirect + github.com/pion/dtls/v2 v2.1.3 // indirect + github.com/pion/ice/v2 v2.2.1 // indirect + github.com/pion/interceptor v0.1.7 // indirect + github.com/pion/logging v0.2.2 // indirect + github.com/pion/mdns v0.0.5 // indirect + github.com/pion/randutil v0.1.0 // indirect + github.com/pion/rtcp v1.2.9 // indirect + github.com/pion/rtp v1.7.4 // indirect + github.com/pion/sctp v1.8.2 // indirect + github.com/pion/sdp/v3 v3.0.4 // indirect + github.com/pion/srtp/v2 v2.0.5 // indirect + github.com/pion/stun v0.3.5 // indirect + github.com/pion/transport v0.13.0 // indirect + github.com/pion/turn/v2 v2.0.8 // indirect + github.com/pion/udp v0.1.1 // indirect + golang.org/x/crypto v0.0.0-20220131195533-30dcbda58838 // indirect + golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd // indirect + golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e // indirect + golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect +) diff --git a/go/go.sum b/go/go.sum index 3dfe1c9f2..5aa07fa97 100644 --- a/go/go.sum +++ b/go/go.sum @@ -1,2 +1,154 @@ +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= +github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= +github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= +github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= +github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= +github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= +github.com/pion/datachannel v1.5.2 h1:piB93s8LGmbECrpO84DnkIVWasRMk3IimbcXkTQLE6E= +github.com/pion/datachannel v1.5.2/go.mod h1:FTGQWaHrdCwIJ1rw6xBIfZVkslikjShim5yr05XFuCQ= +github.com/pion/dtls/v2 v2.1.2/go.mod h1:o6+WvyLDAlXF7YiPB/RlskRoeK+/JtuaZa5emwQcWus= +github.com/pion/dtls/v2 v2.1.3 h1:3UF7udADqous+M2R5Uo2q/YaP4EzUoWKdfX2oscCUio= +github.com/pion/dtls/v2 v2.1.3/go.mod h1:o6+WvyLDAlXF7YiPB/RlskRoeK+/JtuaZa5emwQcWus= +github.com/pion/ice/v2 v2.2.1 h1:R3MeuJZpU1ty3diPqpD5OxaxcZ15eprAc+EtUiSoFxg= +github.com/pion/ice/v2 v2.2.1/go.mod h1:Op8jlPtjeiycsXh93Cs4jK82C9j/kh7vef6ztIOvtIQ= +github.com/pion/interceptor v0.1.7 h1:HThW0tIIKT9RRoDWGURe8rlZVOx0fJHxBHpA0ej0+bo= +github.com/pion/interceptor v0.1.7/go.mod h1:Lh3JSl/cbJ2wP8I3ccrjh1K/deRGRn3UlSPuOTiHb6U= +github.com/pion/logging v0.2.2 h1:M9+AIj/+pxNsDfAT64+MAVgJO0rsyLnoJKCqf//DoeY= +github.com/pion/logging v0.2.2/go.mod h1:k0/tDVsRCX2Mb2ZEmTqNa7CWsQPc+YYCB7Q+5pahoms= +github.com/pion/mdns v0.0.5 h1:Q2oj/JB3NqfzY9xGZ1fPzZzK7sDSD8rZPOvcIQ10BCw= +github.com/pion/mdns v0.0.5/go.mod h1:UgssrvdD3mxpi8tMxAXbsppL3vJ4Jipw1mTCW+al01g= +github.com/pion/randutil v0.1.0 h1:CFG1UdESneORglEsnimhUjf33Rwjubwj6xfiOXBa3mA= +github.com/pion/randutil v0.1.0/go.mod h1:XcJrSMMbbMRhASFVOlj/5hQial/Y8oH/HVo7TBZq+j8= +github.com/pion/rtcp v1.2.6/go.mod h1:52rMNPWFsjr39z9B9MhnkqhPLoeHTv1aN63o/42bWE0= +github.com/pion/rtcp v1.2.9 h1:1ujStwg++IOLIEoOiIQ2s+qBuJ1VN81KW+9pMPsif+U= +github.com/pion/rtcp v1.2.9/go.mod h1:qVPhiCzAm4D/rxb6XzKeyZiQK69yJpbUDJSF7TgrqNo= +github.com/pion/rtp v1.7.0/go.mod h1:bDb5n+BFZxXx0Ea7E5qe+klMuqiBrP+w8XSjiWtCUko= +github.com/pion/rtp v1.7.4 h1:4dMbjb1SuynU5OpA3kz1zHK+u+eOCQjW3MAeVHf1ODA= +github.com/pion/rtp v1.7.4/go.mod h1:bDb5n+BFZxXx0Ea7E5qe+klMuqiBrP+w8XSjiWtCUko= +github.com/pion/sctp v1.8.0/go.mod h1:xFe9cLMZ5Vj6eOzpyiKjT9SwGM4KpK/8Jbw5//jc+0s= +github.com/pion/sctp v1.8.2 h1:yBBCIrUMJ4yFICL3RIvR4eh/H2BTTvlligmSTy+3kiA= +github.com/pion/sctp v1.8.2/go.mod h1:xFe9cLMZ5Vj6eOzpyiKjT9SwGM4KpK/8Jbw5//jc+0s= +github.com/pion/sdp/v3 v3.0.4 h1:2Kf+dgrzJflNCSw3TV5v2VLeI0s/qkzy2r5jlR0wzf8= +github.com/pion/sdp/v3 v3.0.4/go.mod h1:bNiSknmJE0HYBprTHXKPQ3+JjacTv5uap92ueJZKsRk= +github.com/pion/srtp/v2 v2.0.5 h1:ks3wcTvIUE/GHndO3FAvROQ9opy0uLELpwHJaQ1yqhQ= +github.com/pion/srtp/v2 v2.0.5/go.mod h1:8k6AJlal740mrZ6WYxc4Dg6qDqqhxoRG2GSjlUhDF0A= +github.com/pion/stun v0.3.5 h1:uLUCBCkQby4S1cf6CGuR9QrVOKcvUwFeemaC865QHDg= +github.com/pion/stun v0.3.5/go.mod h1:gDMim+47EeEtfWogA37n6qXZS88L5V6LqFcf+DZA2UA= +github.com/pion/transport v0.12.2/go.mod h1:N3+vZQD9HlDP5GWkZ85LohxNsDcNgofQmyL6ojX5d8Q= +github.com/pion/transport v0.12.3/go.mod h1:OViWW9SP2peE/HbwBvARicmAVnesphkNkCVZIWJ6q9A= +github.com/pion/transport v0.13.0 h1:KWTA5ZrQogizzYwPEciGtHPLwpAjE91FgXnyu+Hv2uY= +github.com/pion/transport v0.13.0/go.mod h1:yxm9uXpK9bpBBWkITk13cLo1y5/ur5VQpG22ny6EP7g= +github.com/pion/turn/v2 v2.0.8 h1:KEstL92OUN3k5k8qxsXHpr7WWfrdp7iJZHx99ud8muw= +github.com/pion/turn/v2 v2.0.8/go.mod h1:+y7xl719J8bAEVpSXBXvTxStjJv3hbz9YFflvkpcGPw= +github.com/pion/udp v0.1.1 h1:8UAPvyqmsxK8oOjloDk4wUt63TzFe9WEJkg5lChlj7o= +github.com/pion/udp v0.1.1/go.mod h1:6AFo+CMdKQm7UiA0eUPA8/eVCTx8jBIITLZHc9DWX5M= +github.com/pion/webrtc/v3 v3.1.24 h1:s9PuwisrgHe1FTqfwK4p3T7rXtAHaUNhycbdMjADT28= +github.com/pion/webrtc/v3 v3.1.24/go.mod h1:mO/yv7fBN3Lp7YNlnYcTj1jtpvNvssJG+7eh6itZ4xM= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20220131195533-30dcbda58838 h1:71vQrMauZZhcTVK6KdYM+rklehEEwb3E+ZhaE5jrPrE= +golang.org/x/crypto v0.0.0-20220131195533-30dcbda58838/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201201195509-5d6afe98e0b7/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211201190559-0a0e4e1bb54c/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd h1:O7DYs+zxREGLKzKoMQrtrEacpb0ZVXA5rIwylE2Xchk= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e h1:fLOSk5Q00efkSvAm+4xcoXD+RRmLmmulPn5I3Y9F2EM= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/go/lib/CMakeLists.txt b/go/lib/CMakeLists.txt new file mode 100644 index 000000000..8dec21cba --- /dev/null +++ b/go/lib/CMakeLists.txt @@ -0,0 +1,34 @@ +set(LIB libvillas-go.a) +set(HEADER libvillas-go.h) + +file(GLOB_RECURSE SRCS *.go) +file(GLOB_RECURSE NODE_SRCS ../pkg/nodes/*) + +list(FILTER SRCS EXCLUDE REGEX /_obj/) +list(FILTER NODE_SRCS EXCLUDE REGEX /_obj/) + +add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${HEADER} + DEPENDS ${SRCS} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMAND env "GOPATH=${GOPATH}" "CGO_ENABLED=1" ${GO} tool cgo -exportheader "${CMAKE_CURRENT_BINARY_DIR}/${HEADER}" -- -I "${CMAKE_CURRENT_SOURCE_DIR}/../../include" ${SRCS} + COMMENT "Generating CGo header ${HEADER}" + COMMAND_EXPAND_LISTS +) + +add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${LIB} + DEPENDS ${SRCS} ${NODE_SRCS} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMAND env "PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig" "GOPATH=${GOPATH}" "CGO_ENABLED=1" "CGO_CFLAGS=-I${CMAKE_CURRENT_SOURCE_DIR}/../../include" ${GO} build -buildmode=c-archive -o "${CMAKE_CURRENT_BINARY_DIR}/${LIB}" ${CMAKE_GO_FLAGS} . + COMMENT "Building CGo library ${LIB}" + COMMAND_EXPAND_LISTS) + +add_custom_target(villas-go-lib DEPENDS ${LIB}) +add_custom_target(villas-go-header DEPENDS ${HEADER}) + +add_library(villas-go STATIC IMPORTED GLOBAL) +add_dependencies(villas-go villas-go-lib) +set_target_properties(villas-go + PROPERTIES + IMPORTED_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/${LIB}" + INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_BINARY_DIR} +) diff --git a/go/lib/README.md b/go/lib/README.md new file mode 100644 index 000000000..f9e857ef5 --- /dev/null +++ b/go/lib/README.md @@ -0,0 +1,7 @@ +# Writing custom node-type in Go + +This directory contains the required glue code for implementing custom node-types in the Go programming language. + +Contents of this directory will be compiled into a static library and linked into 'libvillas.so'. + +Have a look at the 'go.example' node-type implemented in '/go/pkg/nodes/example' for an example on how to implement your own node-type in Go. diff --git a/go/lib/bridge.c b/go/lib/bridge.c new file mode 100644 index 000000000..fab6e9458 --- /dev/null +++ b/go/lib/bridge.c @@ -0,0 +1,14 @@ +#include + +#include + +void bridge_go_register_node_factory(_go_register_node_factory_cb cb, _go_plugin_list pl, char *name, char *desc, int flags) +{ + cb(pl, name, desc, flags); +} + +void bridge_go_logger_log(_go_logger_log_cb cb, _go_logger l, int level, char *msg) +{ + cb(l, level, msg); + free(msg); +} diff --git a/go/lib/lib.go b/go/lib/lib.go new file mode 100644 index 000000000..6141e31c8 --- /dev/null +++ b/go/lib/lib.go @@ -0,0 +1,183 @@ +package main + +// #include +// #include +// void bridge_go_register_node_factory(_go_register_node_factory_cb cb, _go_plugin_list pl, char *name, char *desc, int flags); +import "C" + +import ( + "runtime/cgo" + "unsafe" + + "git.rwth-aachen.de/acs/public/villas/node/go/pkg/nodes" + + _ "git.rwth-aachen.de/acs/public/villas/node/go/pkg/nodes/example" + _ "git.rwth-aachen.de/acs/public/villas/node/go/pkg/nodes/loopback" + _ "git.rwth-aachen.de/acs/public/villas/node/go/pkg/nodes/webrtc" + + "git.rwth-aachen.de/acs/public/villas/node/go/pkg/errors" +) + +func main() {} + +type NodeType struct { + nodes.NodeType +} + +//export RegisterGoNodeTypes +func RegisterGoNodeTypes(cb C._go_register_node_factory_cb, pl C._go_plugin_list) { + ntm := nodes.NodeTypes() + + for n, t := range ntm { + C.bridge_go_register_node_factory(cb, pl, C.CString(n), C.CString(t.Description), C.int(t.Flags)) + } +} + +//export NewGoNode +func NewGoNode(t *C.char) C.uintptr_t { + var nodeTypes = nodes.NodeTypes() + + typ, ok := nodeTypes[C.GoString(t)] + if !ok { + return 0 + } + + node := typ.Constructor() + return C.uintptr_t(cgo.NewHandle(node)) +} + +//export GoNodeSetLogger +func GoNodeSetLogger(p C.uintptr_t, cb C._go_logger_log_cb, l C._go_logger) { + h := cgo.Handle(p) + n := h.Value().(nodes.Node) + n.SetLogger(NewVillasLogger(cb, l)) +} + +//export GoNodeClose +func GoNodeClose(p C.uintptr_t) C.int { + h := cgo.Handle(p) + n := h.Value().(nodes.Node) + return C.int(errors.ErrorToInt(n.Close())) +} + +//export GoNodePrepare +func GoNodePrepare(p C.uintptr_t) C.int { + h := cgo.Handle(p) + n := h.Value().(nodes.Node) + return C.int(errors.ErrorToInt(n.Prepare())) +} + +//export GoNodeParse +func GoNodeParse(p C.uintptr_t, c *C.char) C.int { + scfg := C.GoString(c) + bcfg := []byte(scfg) + + h := cgo.Handle(p) + n := h.Value().(nodes.Node) + return C.int(errors.ErrorToInt(n.Parse(bcfg))) +} + +//export GoNodeCheck +func GoNodeCheck(p C.uintptr_t) C.int { + h := cgo.Handle(p) + n := h.Value().(nodes.Node) + return C.int(errors.ErrorToInt(n.Check())) +} + +//export GoNodeStart +func GoNodeStart(p C.uintptr_t) C.int { + h := cgo.Handle(p) + n := h.Value().(nodes.Node) + return C.int(errors.ErrorToInt(n.Start())) +} + +//export GoNodeStop +func GoNodeStop(p C.uintptr_t) C.int { + h := cgo.Handle(p) + n := h.Value().(nodes.Node) + return C.int(errors.ErrorToInt(n.Stop())) +} + +//export GoNodePause +func GoNodePause(p C.uintptr_t) C.int { + h := cgo.Handle(p) + n := h.Value().(nodes.Node) + return C.int(errors.ErrorToInt(n.Pause())) +} + +//export GoNodeResume +func GoNodeResume(p C.uintptr_t) C.int { + h := cgo.Handle(p) + n := h.Value().(nodes.Node) + return C.int(errors.ErrorToInt(n.Resume())) +} + +//export GoNodeRestart +func GoNodeRestart(p C.uintptr_t) C.int { + h := cgo.Handle(p) + n := h.Value().(nodes.Node) + return C.int(errors.ErrorToInt(n.Restart())) +} + +//export GoNodeRead +func GoNodeRead(p C.uintptr_t, buf *C.char, sz C.int) (C.int, C.int) { + h := cgo.Handle(p) + n := h.Value().(nodes.Node) + + src, err := n.Read() + if err != nil { + return -1, C.int(errors.ErrorToInt(err)) + } + + // Create slice which is backed by buf + dst := (*[1 << 31]byte)(unsafe.Pointer(buf))[:sz] + lsz := copy(dst, src) + + return C.int(lsz), 0 +} + +//export GoNodeWrite +func GoNodeWrite(p C.uintptr_t, data []byte) C.int { + h := cgo.Handle(p) + n := h.Value().(nodes.Node) + return C.int(errors.ErrorToInt(n.Write(data))) +} + +//export GoNodeReverse +func GoNodeReverse(p C.uintptr_t) C.int { + h := cgo.Handle(p) + n := h.Value().(nodes.Node) + return C.int(errors.ErrorToInt(n.Reverse())) +} + +//export GoNodeGetPollFDs +func GoNodeGetPollFDs(p C.uintptr_t) ([]int, C.int) { + h := cgo.Handle(p) + n := h.Value().(nodes.Node) + f, err := n.PollFDs() + if err != nil { + return nil, C.int(errors.ErrorToInt(err)) + } + + return f, 0 +} + +//export GoNodeGetNetemFDs +func GoNodeGetNetemFDs(p C.uintptr_t) ([]int, C.int) { + h := cgo.Handle(p) + n := h.Value().(nodes.Node) + f, err := n.NetemFDs() + if err != nil { + return nil, C.int(errors.ErrorToInt(err)) + } + + return f, 0 +} + +//export GoNodeDetails +func GoNodeDetails(p C.uintptr_t) *C.char { + h := cgo.Handle(p) + n := h.Value().(nodes.Node) + d := n.Details() + return C.CString(d) +} diff --git a/go/lib/logger.go b/go/lib/logger.go new file mode 100644 index 000000000..2108b20d9 --- /dev/null +++ b/go/lib/logger.go @@ -0,0 +1,104 @@ +package main + +// #include +// #include +// void bridge_go_logger_log(_go_logger_log_cb cb, _go_logger l, int level, char *msg); +import "C" +import ( + "fmt" + "os" +) + +type LogLevel int + +const ( + // https://github.com/gabime/spdlog/blob/a51b4856377a71f81b6d74b9af459305c4c644f8/include/spdlog/common.h#L76 + LogLevelTrace LogLevel = iota + LogLevelDebug LogLevel = iota + LogLevelInfo LogLevel = iota + LogLevelWarn LogLevel = iota + LogLevelError LogLevel = iota + LogLevelCritical LogLevel = iota + LogLevelOff LogLevel = iota +) + +type VillasLogger struct { + inst C._go_logger + cb C._go_logger_log_cb +} + +func NewVillasLogger(cb C._go_logger_log_cb, l C._go_logger) *VillasLogger { + return &VillasLogger{ + cb: cb, + inst: l, + } +} + +func (l *VillasLogger) log(lvl LogLevel, msg string) { + C.bridge_go_logger_log(l.cb, l.inst, C.int(lvl), C.CString(msg)) +} + +func (l *VillasLogger) Trace(msg string) { + l.log(LogLevelTrace, msg) +} + +func (l *VillasLogger) Debug(msg string) { + l.log(LogLevelDebug, msg) +} + +func (l *VillasLogger) Info(msg string) { + l.log(LogLevelInfo, msg) +} + +func (l *VillasLogger) Warn(msg string) { + l.log(LogLevelWarn, msg) +} + +func (l *VillasLogger) Error(msg string) { + l.log(LogLevelError, msg) +} + +func (l *VillasLogger) Critical(msg string) { + l.log(LogLevelCritical, msg) +} + +func (l *VillasLogger) Tracef(format string, args ...interface{}) { + msg := fmt.Sprintf(format, args...) + l.log(LogLevelTrace, msg) +} + +func (l *VillasLogger) Debugf(format string, args ...interface{}) { + msg := fmt.Sprintf(format, args...) + l.log(LogLevelDebug, msg) +} + +func (l *VillasLogger) Infof(format string, args ...interface{}) { + msg := fmt.Sprintf(format, args...) + l.log(LogLevelInfo, msg) +} + +func (l *VillasLogger) Warnf(format string, args ...interface{}) { + msg := fmt.Sprintf(format, args...) + l.log(LogLevelWarn, msg) +} + +func (l *VillasLogger) Errorf(format string, args ...interface{}) { + msg := fmt.Sprintf(format, args...) + l.log(LogLevelError, msg) +} + +func (l *VillasLogger) Criticalf(format string, args ...interface{}) { + msg := fmt.Sprintf(format, args...) + l.log(LogLevelCritical, msg) +} + +func (l *VillasLogger) Panic(msg string) { + l.Critical(msg) + fmt.Println("Paniced") + os.Exit(-1) +} +func (l *VillasLogger) Panicf(format string, args ...interface{}) { + l.Criticalf(format, args...) + fmt.Println("Paniced") + os.Exit(-1) +} diff --git a/go/pkg/errors/helper.go b/go/pkg/errors/helper.go new file mode 100644 index 000000000..85cece5b1 --- /dev/null +++ b/go/pkg/errors/helper.go @@ -0,0 +1,26 @@ +package errors + +import ( + "C" +) +import "fmt" + +var ( + ErrEndOfFile = fmt.Errorf("end-of-file") +) + +func ErrorToInt(e error) int { + if e == nil { + return 0 + } else { + return -1 + } +} + +func IntToError(ret int) error { + if ret == 0 { + return nil + } else { + return fmt.Errorf("ret=%d", ret) + } +} diff --git a/go/pkg/node.go b/go/pkg/node.go deleted file mode 100644 index a220c60fc..000000000 --- a/go/pkg/node.go +++ /dev/null @@ -1,215 +0,0 @@ -package pkg - -// #cgo LDFLAGS: -lvillas -// #cgo CFLAGS: -DCGO -// #include -import "C" -import ( - "encoding/json" - "fmt" - "log" - "time" - "unsafe" - - "github.com/google/uuid" -) - -const MAX_SIGNALS = 64 -const NUM_HUGEPAGES = 100 - -func ret2err(ret C.int) error { - if ret == 0 { - return nil - } else { - return fmt.Errorf("ret=%d", ret) - } -} - -type Sample struct { - TimestampOrigin time.Time - TimestampReceived time.Time - Sequence uint - Flags int - Data []float64 -} - -func (s *Sample) ToC() *C.vsample { - return C.sample_pack( - C.uint(s.Sequence), - &C.struct_timespec{ - tv_sec: C.long(s.TimestampOrigin.Unix()), - tv_nsec: C.long(s.TimestampOrigin.Nanosecond()), - }, - &C.struct_timespec{ - tv_sec: C.long(s.TimestampReceived.Unix()), - tv_nsec: C.long(s.TimestampReceived.Nanosecond()), - }, - C.uint(len(s.Data)), - (*C.double)(unsafe.Pointer(&s.Data[0])), - ) -} - -func (s *Sample) FromC(c *C.vsample) { - var tsOrigin C.struct_timespec - var tsReceived C.struct_timespec - - len := C.sample_length(c) - - s.Data = make([]float64, uint(len)) - - C.sample_unpack(c, - (*C.uint)(unsafe.Pointer(&s.Sequence)), - &tsOrigin, - &tsReceived, - (*C.int)(unsafe.Pointer(&s.Flags)), - &len, - (*C.double)(unsafe.Pointer(&s.Data[0])), - ) - - s.TimestampOrigin = time.Unix(int64(tsOrigin.tv_sec), int64(tsOrigin.tv_nsec)) - s.TimestampReceived = time.Unix(int64(tsReceived.tv_sec), int64(tsReceived.tv_nsec)) -} - -type Node struct { - inst *C.vnode -} - -func IsValidNodeNname(name string) bool { - return bool(C.node_is_valid_name(C.CString(name))) -} - -func NewNode(cfg interface{}, sn_uuid uuid.UUID) (*Node, error) { - if js, err := json.Marshal(cfg); err != nil { - return nil, fmt.Errorf("failed to serialize config: %w", err) - } else { - log.Printf("Config = %s\n", js) - n := C.node_new(C.CString(string(js)), C.CString(sn_uuid.String())) - return &Node{n}, nil - } -} - -func (n *Node) Prepare() error { - return ret2err(C.node_prepare(n.inst)) -} - -func (n *Node) Check() error { - return ret2err(C.node_check(n.inst)) -} - -func (n *Node) Start() error { - return ret2err(C.node_start(n.inst)) -} - -func (n *Node) Stop() error { - return ret2err(C.node_stop(n.inst)) -} - -func (n *Node) Pause() error { - return ret2err(C.node_pause(n.inst)) -} - -func (n *Node) Resume() error { - return ret2err(C.node_resume(n.inst)) -} - -func (n *Node) Restart() error { - return ret2err(C.node_restart(n.inst)) -} - -func (n *Node) Close() error { - return ret2err(C.node_destroy(n.inst)) -} - -func (n *Node) Reverse() error { - return ret2err(C.node_reverse(n.inst)) -} - -func (n *Node) Read(cnt int) []Sample { - var csmps = make([]*C.vsample, cnt) - - for i := 0; i < cnt; i++ { - csmps[i] = C.sample_alloc(MAX_SIGNALS) - } - - read := int(C.node_read(n.inst, (**C.vsample)(unsafe.Pointer(&csmps[0])), C.uint(cnt))) - - var smps = make([]Sample, read) - for i := 0; i < read; i++ { - smps[i].FromC(csmps[i]) - C.sample_decref(csmps[i]) - } - - return smps -} - -func (n *Node) Write(smps []Sample) int { - cnt := len(smps) - var csmps = make([]*C.vsample, cnt) - - for i := 0; i < cnt; i++ { - csmps[i] = smps[i].ToC() - } - - return int(C.node_write(n.inst, (**C.vsample)(unsafe.Pointer(&csmps[0])), C.uint(cnt))) -} - -func (n *Node) PollFDs() []int { - var cfds [16]C.int - cnt := int(C.node_poll_fds(n.inst, (*C.int)(unsafe.Pointer(&cfds)))) - - var fds = make([]int, cnt) - for i := 0; i < cnt; i++ { - fds[i] = int(cfds[i]) - } - - return fds -} - -func (n *Node) NetemFDs() []int { - var cfds [16]C.int - cnt := int(C.node_netem_fds(n.inst, (*C.int)(unsafe.Pointer(&cfds)))) - - var fds = make([]int, cnt) - for i := 0; i < cnt; i++ { - fds[i] = int(cfds[i]) - } - - return fds -} - -func (n *Node) IsEnabled() bool { - return bool(C.node_is_enabled(n.inst)) -} - -func (n *Node) Name() string { - return C.GoString(C.node_name(n.inst)) -} - -func (n *Node) NameShort() string { - return C.GoString(C.node_name_short(n.inst)) -} - -func (n *Node) NameFull() string { - return C.GoString(C.node_name_full(n.inst)) -} - -func (n *Node) Details() string { - return C.GoString(C.node_details(n.inst)) -} - -func (n *Node) InputSignalsMaxCount() uint { - return uint(C.node_input_signals_max_cnt(n.inst)) -} - -func (n *Node) OutputSignalsMaxCount() uint { - return uint(C.node_output_signals_max_cnt(n.inst)) -} - -func (n *Node) ToJSON() string { - json_str := C.node_to_json_str(n.inst) - return C.GoString(json_str) -} - -func init() { - C.memory_init(NUM_HUGEPAGES) -} diff --git a/go/pkg/nodes/base.go b/go/pkg/nodes/base.go new file mode 100644 index 000000000..fbd642304 --- /dev/null +++ b/go/pkg/nodes/base.go @@ -0,0 +1,56 @@ +package nodes + +type BaseNode struct { + Node + + Logger Logger + + Stopped chan struct{} +} + +func NewBaseNode() BaseNode { + return BaseNode{} +} + +func (n *BaseNode) Start() error { + n.Stopped = make(chan struct{}) + return nil +} + +func (n *BaseNode) Stop() error { + close(n.Stopped) + + return nil +} + +func (n *BaseNode) Parse(c []byte) error { + return nil +} + +func (n *BaseNode) Check() error { + return nil +} + +func (n *BaseNode) Restart() error { + return nil +} + +func (n *BaseNode) Pause() error { + return nil +} + +func (n *BaseNode) Resume() error { + return nil +} + +func (n *BaseNode) Reverse() error { + return nil +} + +func (n *BaseNode) Close() error { + return nil +} + +func (n *BaseNode) SetLogger(l Logger) { + n.Logger = l +} diff --git a/go/pkg/nodes/example/node.go b/go/pkg/nodes/example/node.go new file mode 100644 index 000000000..2f0689ecd --- /dev/null +++ b/go/pkg/nodes/example/node.go @@ -0,0 +1,85 @@ +package nodes + +import ( + "encoding/json" + "fmt" + "time" + + "git.rwth-aachen.de/acs/public/villas/node/go/pkg" + "git.rwth-aachen.de/acs/public/villas/node/go/pkg/nodes" +) + +type Node struct { + nodes.BaseNode + + ticker time.Ticker + + Config Config +} + +type Config struct { + nodes.NodeConfig + + Value int `json:"value"` +} + +func NewNode() nodes.Node { + return &Node{ + BaseNode: nodes.NewBaseNode(), + ticker: *time.NewTicker(1 * time.Second), + } +} + +func (n *Node) Parse(c []byte) error { + return json.Unmarshal(c, &n.Config) +} + +func (n *Node) Check() error { + return nil +} + +func (n *Node) Prepare() error { + return nil +} + +func (n *Node) Start() error { + n.Logger.Infof("hello from node") + n.Logger.Warnf("hello from node") + n.Logger.Errorf("hello from node") + n.Logger.Tracef("hello from node") + n.Logger.Criticalf("hello from node") + + return n.BaseNode.Start() +} + +func (n *Node) Read() ([]byte, error) { + select { + case <-n.ticker.C: + return pkg.GenerateRandomSample().Bytes(), nil + case <-n.Stopped: + return nil, nil + } +} + +func (n *Node) Write(data []byte) error { + n.Logger.Infof("Data: %s", string(data)) + + return nil +} + +func (n *Node) PollFDs() ([]int, error) { + return []int{}, nil +} + +func (n *Node) NetemFDs() ([]int, error) { + return []int{}, nil +} + +func (n *Node) Details() string { + return fmt.Sprintf("value=%d", n.Config.Value) +} + +func init() { + // Do not forget to import the package in go/lib/main.go! + nodes.RegisterNodeType("go.example", "A example node implemented in Go", NewNode, nodes.NodeSupportsRead|nodes.NodeSupportsWrite|nodes.NodeHidden) +} diff --git a/go/pkg/nodes/logger.go b/go/pkg/nodes/logger.go new file mode 100644 index 000000000..ee3243b2a --- /dev/null +++ b/go/pkg/nodes/logger.go @@ -0,0 +1,18 @@ +package nodes + +type Logger interface { + Trace(msg string) + Debug(msg string) + Info(msg string) + Warn(msg string) + Error(msg string) + Critical(msg string) + Tracef(format string, args ...interface{}) + Debugf(format string, args ...interface{}) + Infof(format string, args ...interface{}) + Warnf(format string, args ...interface{}) + Errorf(format string, args ...interface{}) + Criticalf(format string, args ...interface{}) + Panic(msg string) + Panicf(format string, args ...interface{}) +} diff --git a/go/pkg/nodes/loopback/node.go b/go/pkg/nodes/loopback/node.go new file mode 100644 index 000000000..0a50b4591 --- /dev/null +++ b/go/pkg/nodes/loopback/node.go @@ -0,0 +1,77 @@ +package nodes + +import ( + "encoding/json" + "fmt" + + "git.rwth-aachen.de/acs/public/villas/node/go/pkg/errors" + "git.rwth-aachen.de/acs/public/villas/node/go/pkg/nodes" +) + +type Node struct { + nodes.BaseNode + + channel chan []byte + + Config LoopbackConfig +} + +type LoopbackConfig struct { + nodes.NodeConfig + + Value int `json:"value"` +} + +func NewNode() nodes.Node { + return &Node{ + BaseNode: nodes.NewBaseNode(), + channel: make(chan []byte, 1024), + } +} + +func (n *Node) Parse(c []byte) error { + return json.Unmarshal(c, &n.Config) +} + +func (n *Node) Check() error { + return nil +} + +func (n *Node) Prepare() error { + return nil +} + +func (n *Node) Start() error { + return n.BaseNode.Start() +} + +func (n *Node) Read() ([]byte, error) { + select { + case buf := <-n.channel: + return buf, nil + case <-n.Stopped: + return nil, errors.ErrEndOfFile + } +} + +func (n *Node) Write(data []byte) error { + n.channel <- data + + return nil +} + +func (n *Node) PollFDs() ([]int, error) { + return []int{}, nil +} + +func (n *Node) NetemFDs() ([]int, error) { + return []int{}, nil +} + +func (n *Node) Details() string { + return fmt.Sprintf("value=%d", n.Config.Value) +} + +func init() { + nodes.RegisterNodeType("go.loopback", "A loopback node implmented in Go", NewNode, nodes.NodeSupportsRead|nodes.NodeSupportsWrite|nodes.NodeHidden) +} diff --git a/lib/nodes/go/pkg/node.go b/go/pkg/nodes/node.go similarity index 50% rename from lib/nodes/go/pkg/node.go rename to go/pkg/nodes/node.go index 8fe878667..a3cc78f23 100644 --- a/lib/nodes/go/pkg/node.go +++ b/go/pkg/nodes/node.go @@ -1,6 +1,16 @@ -package node +package nodes -type NodeCtor func() Node +const ( + NodeSupportsPoll = (1 << iota) + NodeSupportsRead = (1 << iota) + NodeSupportsWrite = (1 << iota) + NodeRequiresWeb = (1 << iota) + NodeProvidesSignals = (1 << iota) + NodeInternal = (1 << iota) + NodeHidden = (1 << iota) +) + +type NodeConstructor func() Node type Node interface { Close() error @@ -23,12 +33,12 @@ type Node interface { Reverse() error - GetPollFDs() ([]int, error) - GetNetemFDs() ([]int, error) - - // GetMemoryType() + PollFDs() ([]int, error) + NetemFDs() ([]int, error) Details() string + + SetLogger(l Logger) } type NodeConfig struct { diff --git a/go/pkg/nodes/registry.go b/go/pkg/nodes/registry.go new file mode 100644 index 000000000..2a25041bb --- /dev/null +++ b/go/pkg/nodes/registry.go @@ -0,0 +1,23 @@ +package nodes + +var ( + goNodeTypes = map[string]NodeType{} +) + +type NodeType struct { + Constructor NodeConstructor + Flags int + Description string +} + +func RegisterNodeType(name string, desc string, ctor NodeConstructor, flags int) { + goNodeTypes[name] = NodeType{ + Constructor: ctor, + Flags: flags, + Description: desc, + } +} + +func NodeTypes() map[string]NodeType { + return goNodeTypes +} diff --git a/go/pkg/sample.go b/go/pkg/sample.go new file mode 100644 index 000000000..d2134d84d --- /dev/null +++ b/go/pkg/sample.go @@ -0,0 +1,45 @@ +package pkg + +import ( + "encoding/json" + "math/rand" + "time" +) + +type Timestamp [2]int64 + +func TimestampFromTime(t time.Time) Timestamp { + return Timestamp{t.Unix(), int64(t.Nanosecond())} +} + +type Timestamps struct { + Origin Timestamp `json:"origin"` + Received Timestamp `json:"received"` +} + +type Sample struct { + Timestamps Timestamps `json:"ts"` + Sequence uint64 `json:"sequence"` + Data []float64 `json:"data"` +} + +func GenerateRandomSample() Sample { + now := time.Now() + + return Sample{ + Timestamps: Timestamps{ + Origin: TimestampFromTime(now), + }, + Sequence: 1, + Data: []float64{ + 1 * rand.Float64(), + 10 * rand.Float64(), + 100 * rand.Float64(), + }, + } +} + +func (s Sample) Bytes() []byte { + b, _ := json.Marshal(s) + return b +} diff --git a/include/villas/nodes/go.h b/include/villas/nodes/go.h new file mode 100644 index 000000000..e4e7390bd --- /dev/null +++ b/include/villas/nodes/go.h @@ -0,0 +1,12 @@ +#pragma once + +typedef void *_go_plugin; +typedef void *_go_plugin_list; +typedef void *_go_logger; + +typedef void (*_go_register_node_factory_cb)(_go_plugin_list pl, char *name, char *desc, int flags); +typedef void (*_go_logger_log_cb)(_go_logger l, int level, char *msg); + +_go_logger * _go_logger_get(char *name); + +void _go_logger_log(_go_logger *l, int level, char *msg); diff --git a/include/villas/nodes/go.hpp b/include/villas/nodes/go.hpp index 9df6d4c5b..b70635399 100644 --- a/include/villas/nodes/go.hpp +++ b/include/villas/nodes/go.hpp @@ -31,11 +31,14 @@ namespace node { /* Forward declarations */ struct Sample; class Format; +class GoNodeFactory; class GoNode : public Node { + friend GoNodeFactory; + protected: - void *node; + uintptr_t node; // runtime/cgo.Handle std::string _details; @@ -48,7 +51,7 @@ protected: int _write(struct Sample * smps[], unsigned cnt); public: - GoNode(void *n); + GoNode(uintptr_t n); virtual ~GoNode(); @@ -84,41 +87,47 @@ public: int resume(); virtual - int restart() - { - assert(state == State::STARTED); - - logger->info("Restarting node"); - - return GoNodeRestart(node); - } + int restart(); virtual - int reverse() - { - return GoNodeReverse(node); - } + int reverse(); }; class GoNodeFactory : public NodeFactory { protected: - std::string type; + std::string name; + std::string description; + int flags; public: - GoNodeFactory(char *t) : + GoNodeFactory(char *n, char *d, int f = 0) : NodeFactory(), - type(t) + name(n), + description(d), + flags(f) { } virtual Node * make(); virtual - std::string getName() const; + std::string getName() const + { + return name; + } virtual - std::string getDescription() const; + std::string getDescription() const + { + return description; + } + + virtual + int getFlags() const + { + return flags; + } }; class GoPluginRegistry : public plugin::SubRegistry { diff --git a/lib/node.cpp b/lib/node.cpp index 94f7ec2a7..497d51076 100644 --- a/lib/node.cpp +++ b/lib/node.cpp @@ -274,10 +274,14 @@ int Node::stop() { int ret; - if (state != State::STOPPING && state != State::STARTED && state != State::CONNECTED && state != State::PENDING_CONNECT) + if (state != State::STOPPING && + state != State::STARTED && + state != State::CONNECTED && + state != State::PENDING_CONNECT) return 0; logger->info("Stopping node"); + setState(State::STOPPING); ret = in.stop(); if (ret) diff --git a/lib/nodes/CMakeLists.txt b/lib/nodes/CMakeLists.txt index 054f73556..73fe4bdd8 100644 --- a/lib/nodes/CMakeLists.txt +++ b/lib/nodes/CMakeLists.txt @@ -24,6 +24,12 @@ set(NODE_SRC loopback_internal.cpp ) +# Enable Golang support +if(WITH_NODE_GO) + list(APPEND NODE_SRC go.cpp) + list(APPEND LIBRARIES villas-go) +endif() + if(LIBNL3_ROUTE_FOUND) list(APPEND LIBRARIES PkgConfig::LIBNL3_ROUTE) endif() @@ -60,12 +66,6 @@ if(WITH_NODE_EXEC) list(APPEND NODE_SRC exec.cpp) endif() -if(WITH_NODE_GO) - add_subdirectory(go) - list(APPEND LIBRARIES nodes-go) - list(APPEND NODE_SRC go.cpp) -endif() - # Enable Universal Library for Linux DAQ devices (libuldaq) if(WITH_NODE_ULDAQ) list(APPEND NODE_SRC uldaq.cpp) @@ -194,3 +194,9 @@ endif() add_library(nodes STATIC ${NODE_SRC}) target_include_directories(nodes PUBLIC ${INCLUDE_DIRS}) target_link_libraries(nodes PUBLIC ${LIBRARIES}) + +if(WITH_NODE_GO) + add_dependencies(nodes villas-go-header) + target_include_directories(nodes PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/../../go/lib) + target_link_libraries(nodes PUBLIC villas-go) +endif() diff --git a/lib/nodes/go.cpp b/lib/nodes/go.cpp index fd113674a..7380d5b81 100644 --- a/lib/nodes/go.cpp +++ b/lib/nodes/go.cpp @@ -1,3 +1,4 @@ + /** Node-type implemeted in Go language * * @file @@ -21,19 +22,36 @@ * along with this program. If not, see . *********************************************************************************/ -#include -#include - -extern "C" { - #include -} - #include +#include #include +extern "C" { + #include + #include +} + +using namespace villas; using namespace villas::node; -GoNode::GoNode(void *n) : +void _go_register_node_factory(_go_plugin_list pl, char *name, char *desc, int flags) +{ + auto *plugins = (villas::plugin::List<> *) pl; + plugins->push_back(new villas::node::GoNodeFactory(name, desc, flags)); +} + +_go_logger * _go_logger_get(char *name) +{ + return (_go_logger *) villas::logging.get(name).get(); +} + +void _go_logger_log(_go_logger l, int level, char *msg) +{ + auto *log = (spdlog::logger *) l; + log->log((spdlog::level::level_enum) level, "{}", msg); +} + +GoNode::GoNode(uintptr_t n) : Node(), node(n) { } @@ -49,6 +67,8 @@ int GoNode::parse(json_t *json, const uuid_t sn_uuid) if (ret) return ret; + GoNodeSetLogger(node, _go_logger_log, logger.get()); + json_t *json_format = nullptr; json_error_t err; @@ -116,13 +136,13 @@ int GoNode::stop() { state == State::PAUSED || state == State::STOPPING); - ret = GoNodeStop(node); + ret = Node::stop(); if (ret) return ret; - ret = Node::stop(); - if (!ret) - state = State::STOPPED; + ret = GoNodeStop(node); + if (ret) + return ret; return ret; } @@ -195,17 +215,18 @@ std::vector GoNode::getNetemFDs() int GoNode::_read(struct Sample * smps[], unsigned cnt) { int ret; + char buf[4096]; size_t rbytes; - auto d = GoNodeRead(node); + auto d = GoNodeRead(node, buf, 4096); if (d.r1) return d.r1; - ret = formatter->sscan((const char*) d.r0.data, d.r0.len, &rbytes, smps, cnt); - if (ret < 0 || (size_t) d.r0.len != rbytes) - logger->warn("Received invalid packet: ret={}, bytes={}, rbytes={}", ret, d.r0.len, rbytes); - - logger->info("Received {} bytes: {}", d.r0.len, (char *) d.r0.data); + ret = formatter->sscan(buf, d.r0, &rbytes, smps, cnt); + if (ret < 0 || (size_t) d.r0 != rbytes) { + logger->warn("Received invalid packet: ret={}, bytes={}, rbytes={}", ret, d.r0, rbytes); + return ret; + } return ret; } @@ -233,9 +254,24 @@ int GoNode::_write(struct Sample * smps[], unsigned cnt) return cnt; } +int GoNode::restart() +{ + assert(state == State::STARTED); + + logger->info("Restarting node"); + + return GoNodeRestart(node); +} + +int GoNode::reverse() +{ + return GoNodeReverse(node); +} + + Node * GoNodeFactory::make() { - auto *nt = NewGoNode((char *) type.c_str()); + auto nt = NewGoNode((char *) name.c_str()); if (!nt) return nullptr; @@ -243,19 +279,11 @@ Node * GoNodeFactory::make() init(n); + GoNodeSetLogger(n->node, _go_logger_log, n->logger.get()); + return n; } -std::string GoNodeFactory::getName() const -{ - return type; -} - -std::string GoNodeFactory::getDescription() const -{ - return "Go-based node-type"; -} - GoPluginRegistry::GoPluginRegistry() { if (plugin::registry == nullptr) plugin::registry = new plugin::Registry(); @@ -267,15 +295,7 @@ villas::plugin::List<> GoPluginRegistry::lookup() { plugin::List<> plugins; - auto nt = GoNodeTypes(); - auto ntl = std::vector(nt.r1, nt.r1+nt.r0); - - for (auto nt : ntl) { - plugins.push_back(new GoNodeFactory(nt)); - free(nt); - } - - free(nt.r1); + RegisterGoNodeTypes(_go_register_node_factory, &plugins); return plugins; } diff --git a/lib/nodes/go/CMakeLists.txt b/lib/nodes/go/CMakeLists.txt deleted file mode 100644 index 42a206021..000000000 --- a/lib/nodes/go/CMakeLists.txt +++ /dev/null @@ -1,18 +0,0 @@ -set(LIB libnodes-go.a) -file(GLOB_RECURSE SRCS *.go) - -add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${LIB} - DEPENDS ${SRCS} - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - COMMAND env CGO_ENABLED=1 GOPATH=${GOPATH} go build -buildmode=c-archive -o "${CMAKE_CURRENT_BINARY_DIR}/${LIB}" ${CMAKE_GO_FLAGS} . - COMMENT "Building Go library ${LIB}") - -add_custom_target(libvillas-go DEPENDS ${LIB} ${HEADER}) - -add_library(nodes-go STATIC IMPORTED GLOBAL) -add_dependencies(nodes-go libvillas-go) -set_target_properties(nodes-go - PROPERTIES - IMPORTED_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/${LIB}" - INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_BINARY_DIR} -) diff --git a/lib/nodes/go/go.mod b/lib/nodes/go/go.mod deleted file mode 100644 index 0f9071218..000000000 --- a/lib/nodes/go/go.mod +++ /dev/null @@ -1,10 +0,0 @@ -module git.rwth-aachen.de/acs/public/villas/node - -go 1.16 - -require ( - github.com/gorilla/websocket v1.5.0 // indirect - github.com/mattn/go-pointer v0.0.1 - github.com/pion/webrtc/v3 v3.1.24 // indirect - github.com/sirupsen/logrus v1.8.1 // indirect -) diff --git a/lib/nodes/go/go.sum b/lib/nodes/go/go.sum deleted file mode 100644 index 6459724c1..000000000 --- a/lib/nodes/go/go.sum +++ /dev/null @@ -1,154 +0,0 @@ -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= -github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= -github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/mattn/go-pointer v0.0.1 h1:n+XhsuGeVO6MEAp7xyEukFINEa+Quek5psIR/ylA6o0= -github.com/mattn/go-pointer v0.0.1/go.mod h1:2zXcozF6qYGgmsG+SeTZz3oAbFLdD3OWqnUbNvJZAlc= -github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= -github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= -github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= -github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= -github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= -github.com/pion/datachannel v1.5.2 h1:piB93s8LGmbECrpO84DnkIVWasRMk3IimbcXkTQLE6E= -github.com/pion/datachannel v1.5.2/go.mod h1:FTGQWaHrdCwIJ1rw6xBIfZVkslikjShim5yr05XFuCQ= -github.com/pion/dtls/v2 v2.1.2/go.mod h1:o6+WvyLDAlXF7YiPB/RlskRoeK+/JtuaZa5emwQcWus= -github.com/pion/dtls/v2 v2.1.3 h1:3UF7udADqous+M2R5Uo2q/YaP4EzUoWKdfX2oscCUio= -github.com/pion/dtls/v2 v2.1.3/go.mod h1:o6+WvyLDAlXF7YiPB/RlskRoeK+/JtuaZa5emwQcWus= -github.com/pion/ice/v2 v2.2.1 h1:R3MeuJZpU1ty3diPqpD5OxaxcZ15eprAc+EtUiSoFxg= -github.com/pion/ice/v2 v2.2.1/go.mod h1:Op8jlPtjeiycsXh93Cs4jK82C9j/kh7vef6ztIOvtIQ= -github.com/pion/interceptor v0.1.7 h1:HThW0tIIKT9RRoDWGURe8rlZVOx0fJHxBHpA0ej0+bo= -github.com/pion/interceptor v0.1.7/go.mod h1:Lh3JSl/cbJ2wP8I3ccrjh1K/deRGRn3UlSPuOTiHb6U= -github.com/pion/logging v0.2.2 h1:M9+AIj/+pxNsDfAT64+MAVgJO0rsyLnoJKCqf//DoeY= -github.com/pion/logging v0.2.2/go.mod h1:k0/tDVsRCX2Mb2ZEmTqNa7CWsQPc+YYCB7Q+5pahoms= -github.com/pion/mdns v0.0.5 h1:Q2oj/JB3NqfzY9xGZ1fPzZzK7sDSD8rZPOvcIQ10BCw= -github.com/pion/mdns v0.0.5/go.mod h1:UgssrvdD3mxpi8tMxAXbsppL3vJ4Jipw1mTCW+al01g= -github.com/pion/randutil v0.1.0 h1:CFG1UdESneORglEsnimhUjf33Rwjubwj6xfiOXBa3mA= -github.com/pion/randutil v0.1.0/go.mod h1:XcJrSMMbbMRhASFVOlj/5hQial/Y8oH/HVo7TBZq+j8= -github.com/pion/rtcp v1.2.6/go.mod h1:52rMNPWFsjr39z9B9MhnkqhPLoeHTv1aN63o/42bWE0= -github.com/pion/rtcp v1.2.9 h1:1ujStwg++IOLIEoOiIQ2s+qBuJ1VN81KW+9pMPsif+U= -github.com/pion/rtcp v1.2.9/go.mod h1:qVPhiCzAm4D/rxb6XzKeyZiQK69yJpbUDJSF7TgrqNo= -github.com/pion/rtp v1.7.0/go.mod h1:bDb5n+BFZxXx0Ea7E5qe+klMuqiBrP+w8XSjiWtCUko= -github.com/pion/rtp v1.7.4 h1:4dMbjb1SuynU5OpA3kz1zHK+u+eOCQjW3MAeVHf1ODA= -github.com/pion/rtp v1.7.4/go.mod h1:bDb5n+BFZxXx0Ea7E5qe+klMuqiBrP+w8XSjiWtCUko= -github.com/pion/sctp v1.8.0/go.mod h1:xFe9cLMZ5Vj6eOzpyiKjT9SwGM4KpK/8Jbw5//jc+0s= -github.com/pion/sctp v1.8.2 h1:yBBCIrUMJ4yFICL3RIvR4eh/H2BTTvlligmSTy+3kiA= -github.com/pion/sctp v1.8.2/go.mod h1:xFe9cLMZ5Vj6eOzpyiKjT9SwGM4KpK/8Jbw5//jc+0s= -github.com/pion/sdp/v3 v3.0.4 h1:2Kf+dgrzJflNCSw3TV5v2VLeI0s/qkzy2r5jlR0wzf8= -github.com/pion/sdp/v3 v3.0.4/go.mod h1:bNiSknmJE0HYBprTHXKPQ3+JjacTv5uap92ueJZKsRk= -github.com/pion/srtp/v2 v2.0.5 h1:ks3wcTvIUE/GHndO3FAvROQ9opy0uLELpwHJaQ1yqhQ= -github.com/pion/srtp/v2 v2.0.5/go.mod h1:8k6AJlal740mrZ6WYxc4Dg6qDqqhxoRG2GSjlUhDF0A= -github.com/pion/stun v0.3.5 h1:uLUCBCkQby4S1cf6CGuR9QrVOKcvUwFeemaC865QHDg= -github.com/pion/stun v0.3.5/go.mod h1:gDMim+47EeEtfWogA37n6qXZS88L5V6LqFcf+DZA2UA= -github.com/pion/transport v0.12.2/go.mod h1:N3+vZQD9HlDP5GWkZ85LohxNsDcNgofQmyL6ojX5d8Q= -github.com/pion/transport v0.12.3/go.mod h1:OViWW9SP2peE/HbwBvARicmAVnesphkNkCVZIWJ6q9A= -github.com/pion/transport v0.13.0 h1:KWTA5ZrQogizzYwPEciGtHPLwpAjE91FgXnyu+Hv2uY= -github.com/pion/transport v0.13.0/go.mod h1:yxm9uXpK9bpBBWkITk13cLo1y5/ur5VQpG22ny6EP7g= -github.com/pion/turn/v2 v2.0.8 h1:KEstL92OUN3k5k8qxsXHpr7WWfrdp7iJZHx99ud8muw= -github.com/pion/turn/v2 v2.0.8/go.mod h1:+y7xl719J8bAEVpSXBXvTxStjJv3hbz9YFflvkpcGPw= -github.com/pion/udp v0.1.1 h1:8UAPvyqmsxK8oOjloDk4wUt63TzFe9WEJkg5lChlj7o= -github.com/pion/udp v0.1.1/go.mod h1:6AFo+CMdKQm7UiA0eUPA8/eVCTx8jBIITLZHc9DWX5M= -github.com/pion/webrtc/v3 v3.1.24 h1:s9PuwisrgHe1FTqfwK4p3T7rXtAHaUNhycbdMjADT28= -github.com/pion/webrtc/v3 v3.1.24/go.mod h1:mO/yv7fBN3Lp7YNlnYcTj1jtpvNvssJG+7eh6itZ4xM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= -github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= -github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20220131195533-30dcbda58838 h1:71vQrMauZZhcTVK6KdYM+rklehEEwb3E+ZhaE5jrPrE= -golang.org/x/crypto v0.0.0-20220131195533-30dcbda58838/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201201195509-5d6afe98e0b7/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= -golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211201190559-0a0e4e1bb54c/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd h1:O7DYs+zxREGLKzKoMQrtrEacpb0ZVXA5rIwylE2Xchk= -golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e h1:fLOSk5Q00efkSvAm+4xcoXD+RRmLmmulPn5I3Y9F2EM= -golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/lib/nodes/go/helper.go b/lib/nodes/go/helper.go deleted file mode 100644 index 895612cb3..000000000 --- a/lib/nodes/go/helper.go +++ /dev/null @@ -1,13 +0,0 @@ -package main - -import ( - "C" -) - -func errorToInt(e error) C.int { - if e == nil { - return 0 - } else { - return -1 - } -} diff --git a/lib/nodes/go/log.c b/lib/nodes/go/log.c deleted file mode 100644 index e69de29bb..000000000 diff --git a/lib/nodes/go/log.cpp b/lib/nodes/go/log.cpp deleted file mode 100644 index 55adaa368..000000000 --- a/lib/nodes/go/log.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#include - -extern "C" { - #include "log.h" -} - -using namespace villas; - -void log(char *logger, int level, char *msg); -{ - auto logger = logging.get(logger); - - spdlog::log(level, "{}", msg); - - free(logger); - free(msg); -} diff --git a/lib/nodes/go/log.h b/lib/nodes/go/log.h deleted file mode 100644 index 725c92ffa..000000000 --- a/lib/nodes/go/log.h +++ /dev/null @@ -1 +0,0 @@ -void log(char *logger, int level, char *msg); diff --git a/lib/nodes/go/logger.go b/lib/nodes/go/logger.go deleted file mode 100644 index f430f57d3..000000000 --- a/lib/nodes/go/logger.go +++ /dev/null @@ -1,81 +0,0 @@ -package main - -//// #include "log.h" -import "C" -import "fmt" - -type LogLevel int - -const ( - // https://github.com/gabime/spdlog/blob/a51b4856377a71f81b6d74b9af459305c4c644f8/include/spdlog/common.h#L76 - LogLevelTrace LogLevel = iota - LogLevelDebug LogLevel = iota - LogLevelInfo LogLevel = iota - LogLevelWarn LogLevel = iota - LogLevelError LogLevel = iota - LogLevelCritical LogLevel = iota - LogLevelOff LogLevel = iota -) - -type Logger struct { - Name string - - cName *C.char -} - -func GetLogger(name string) *Logger { - return &Logger{ - Name: name, - } -} - -func (l *Logger) log(lvl LogLevel, msg string) { - cMsg := C.CString(msg) - C.log(l.cName, lvl, cMsg) - C.free(cMsg) -} - -func (l *Logger) Trace(msg string) { - l.log(LogLevelTrace, msg) -} - -func (l *Logger) Info(msg string) { - l.log(LogLevelInfo, msg) -} - -func (l *Logger) Warn(msg string) { - l.log(LogLevelWarn, msg) -} - -func (l *Logger) Error(msg string) { - l.log(LogLevelError, msg) -} - -func (l *Logger) Critical(msg string) { - l.log(LogLevelCritical, msg) -} - -func (l *Logger) Tracef(format string, args ...interface{}) { - msg := fmt.Sprintf(format, args...) - l.log(LogLevelTrace, msg) -} - -func (l *Logger) Infof(format string, args ...interface{}) { - msg := fmt.Sprintf(format, args...) - l.log(LogLevelInfo, msg) -} - -func (l *Logger) Warnf(format string, args ...interface{}) { - msg := fmt.Sprintf(format, args...) - l.log(LogLevelWarn, msg) -} - -func (l *Logger) Errorf(format string, args ...interface{}) { - msg := fmt.Sprintf(format, args...) - l.log(LogLevelError, msg) -} - -func (l *Logger) Criticalf(format string, args ...interface{}) { - msg := fmt.Sprintf(format, args...) - l.log(LogLevelCritical, msg) -} diff --git a/lib/nodes/go/main.go b/lib/nodes/go/main.go deleted file mode 100644 index 65bbe73d8..000000000 --- a/lib/nodes/go/main.go +++ /dev/null @@ -1,160 +0,0 @@ -package main - -/* - */ -import "C" - -import ( - "unsafe" - - node "git.rwth-aachen.de/acs/public/villas/node/pkg" - gopointer "github.com/mattn/go-pointer" - - _ "git.rwth-aachen.de/acs/public/villas/node/pkg/nodes/loopback" - _ "git.rwth-aachen.de/acs/public/villas/node/pkg/nodes/webrtc" -) - -func main() {} - -//export GoNodeTypes -func GoNodeTypes() (int, **C.char) { - var nodeTypes = node.NodeTypes() - var n = len(nodeTypes) - - types := (**C.char)(C.malloc(C.size_t(n) * C.size_t(unsafe.Sizeof(uintptr(0))))) - slice := (*[1 << 31]*C.char)(unsafe.Pointer(types))[:n:n] - - i := 0 - for typ, _ := range nodeTypes { - slice[i] = C.CString(typ) - i++ - } - - return n, types -} - -//export NewGoNode -func NewGoNode(t *C.char) unsafe.Pointer { - var nodeTypes = node.NodeTypes() - - typ := C.GoString(t) - ctor, ok := nodeTypes[typ] - if !ok { - return unsafe.Pointer(nil) - } - - node := ctor() - - ptr := gopointer.Save(node) - return ptr -} - -//export GoNodeClose -func GoNodeClose(p unsafe.Pointer) C.int { - n := gopointer.Restore(p).(node.Node) - return errorToInt(n.Close()) -} - -//export GoNodePrepare -func GoNodePrepare(p unsafe.Pointer) C.int { - n := gopointer.Restore(p).(node.Node) - return errorToInt(n.Prepare()) -} - -//export GoNodeParse -func GoNodeParse(p unsafe.Pointer, c *C.char) C.int { - scfg := C.GoString(c) - bcfg := []byte(scfg) - - n := gopointer.Restore(p).(node.Node) - return errorToInt(n.Parse(bcfg)) -} - -//export GoNodeCheck -func GoNodeCheck(p unsafe.Pointer) C.int { - n := gopointer.Restore(p).(node.Node) - return errorToInt(n.Check()) -} - -//export GoNodeStart -func GoNodeStart(p unsafe.Pointer) C.int { - n := gopointer.Restore(p).(node.Node) - return errorToInt(n.Start()) -} - -//export GoNodeStop -func GoNodeStop(p unsafe.Pointer) C.int { - n := gopointer.Restore(p).(node.Node) - return errorToInt(n.Stop()) -} - -//export GoNodePause -func GoNodePause(p unsafe.Pointer) C.int { - n := gopointer.Restore(p).(node.Node) - return errorToInt(n.Pause()) -} - -//export GoNodeResume -func GoNodeResume(p unsafe.Pointer) C.int { - n := gopointer.Restore(p).(node.Node) - return errorToInt(n.Resume()) -} - -//export GoNodeRestart -func GoNodeRestart(p unsafe.Pointer) C.int { - n := gopointer.Restore(p).(node.Node) - return errorToInt(n.Restart()) -} - -//export GoNodeRead -func GoNodeRead(p unsafe.Pointer) ([]byte, C.int) { - n := gopointer.Restore(p).(node.Node) - - d, err := n.Read() - if err != nil { - return nil, errorToInt(err) - } - - return d, 0 -} - -//export GoNodeWrite -func GoNodeWrite(p unsafe.Pointer, data []byte) C.int { - n := gopointer.Restore(p).(node.Node) - return errorToInt(n.Write(data)) -} - -//export GoNodeReverse -func GoNodeReverse(p unsafe.Pointer) C.int { - n := gopointer.Restore(p).(node.Node) - return errorToInt(n.Reverse()) -} - -//export GoNodeGetPollFDs -func GoNodeGetPollFDs(p unsafe.Pointer) ([]int, C.int) { - n := gopointer.Restore(p).(node.Node) - f, err := n.GetPollFDs() - if err != nil { - return nil, errorToInt(err) - } - - return f, 0 -} - -//export GoNodeGetNetemFDs -func GoNodeGetNetemFDs(p unsafe.Pointer) ([]int, C.int) { - n := gopointer.Restore(p).(node.Node) - f, err := n.GetNetemFDs() - if err != nil { - return nil, errorToInt(err) - } - - return f, 0 -} - -//export GoNodeDetails -func GoNodeDetails(p unsafe.Pointer) *C.char { - n := gopointer.Restore(p).(node.Node) - d := n.Details() - return C.CString(d) -} diff --git a/lib/nodes/go/pkg/nodes/loopback/loopback.go b/lib/nodes/go/pkg/nodes/loopback/loopback.go deleted file mode 100644 index 11bdfb870..000000000 --- a/lib/nodes/go/pkg/nodes/loopback/loopback.go +++ /dev/null @@ -1,74 +0,0 @@ -package nodes - -import ( - "encoding/json" - "fmt" - - node "git.rwth-aachen.de/acs/public/villas/node/pkg" -) - -type LoopbackNode struct { - node.Node - - channel chan []byte - - Config LoopbackConfig -} - -type LoopbackConfig struct { - node.NodeConfig - - Value int `json:"value"` -} - -func NewLoopbackNode() node.Node { - return &LoopbackNode{ - channel: make(chan []byte, 1024), - } -} - -func (n *LoopbackNode) Parse(c []byte) error { - return json.Unmarshal(c, &n.Config) -} - -func (n *LoopbackNode) Check() error { - return nil -} - -func (n *LoopbackNode) Prepare() error { - return nil -} - -func (n *LoopbackNode) Start() error { - return nil -} - -func (n *LoopbackNode) Stop() error { - return nil -} - -func (n *LoopbackNode) Read() ([]byte, error) { - return <-n.channel, nil -} - -func (n *LoopbackNode) Write(data []byte) error { - n.channel <- data - - return nil -} - -func (n *LoopbackNode) PollFDs() []int { - return nil -} - -func (n *LoopbackNode) NetemFDs() []int { - return nil -} - -func (n *LoopbackNode) Details() string { - return fmt.Sprintf("value=%d", n.Config.Value) -} - -func init() { - node.RegisterNode("go.loopback", NewLoopbackNode) -} diff --git a/lib/nodes/go/pkg/nodes/webrtc/backoff.go b/lib/nodes/go/pkg/nodes/webrtc/backoff.go deleted file mode 100644 index 8aeb7a09f..000000000 --- a/lib/nodes/go/pkg/nodes/webrtc/backoff.go +++ /dev/null @@ -1,33 +0,0 @@ -package webrtc - -import "time" - -var ( - DefaultExponentialBackoff = ExponentialBackoff{ - Factor: 1.5, - Maximum: 1 * time.Minute, - Initial: 1 * time.Second, - Duration: 1 * time.Second, - } -) - -type ExponentialBackoff struct { - Factor float32 - Maximum time.Duration - Initial time.Duration - - Duration time.Duration -} - -func (e *ExponentialBackoff) Next() time.Duration { - e.Duration = time.Duration(1.5 * float32(e.Duration)).Round(time.Second) - if e.Duration > e.Maximum { - e.Duration = e.Maximum - } - - return e.Duration -} - -func (e *ExponentialBackoff) Reset() { - e.Duration = e.Initial -} diff --git a/lib/nodes/go/pkg/nodes/webrtc/client.go b/lib/nodes/go/pkg/nodes/webrtc/client.go deleted file mode 100644 index 37de3ff9f..000000000 --- a/lib/nodes/go/pkg/nodes/webrtc/client.go +++ /dev/null @@ -1,164 +0,0 @@ -package webrtc - -import ( - "fmt" - "net/url" - "time" - - "github.com/gorilla/websocket" - "github.com/sirupsen/logrus" -) - -type SignalingClient struct { - *websocket.Conn - - URL *url.URL - - done chan struct{} - - isClosing bool - backoff ExponentialBackoff - - messageCallbacks []func(msg *SignalingMessage) - connectCallbacks []func() - disconnectCallbacks []func() -} - -func NewSignalingClient(u *url.URL) (*SignalingClient, error) { - c := &SignalingClient{ - messageCallbacks: []func(msg *SignalingMessage){}, - connectCallbacks: []func(){}, - disconnectCallbacks: []func(){}, - isClosing: false, - backoff: DefaultExponentialBackoff, - URL: u, - } - - return c, nil -} - -func (c *SignalingClient) OnConnect(cb func()) { - c.connectCallbacks = append(c.connectCallbacks, cb) -} - -func (c *SignalingClient) OnDisconnect(cb func()) { - c.disconnectCallbacks = append(c.connectCallbacks, cb) -} - -func (c *SignalingClient) OnMessage(cb func(msg *SignalingMessage)) { - c.messageCallbacks = append(c.messageCallbacks, cb) -} - -func (c *SignalingClient) SendSignalingMessage(msg *SignalingMessage) error { - logrus.Infof("Sending signaling message: %s", msg) - return c.Conn.WriteJSON(msg) -} - -func (c *SignalingClient) Close() error { - // Return immediatly if there is no open connection - if c.Conn == nil { - return nil - } - - c.isClosing = true - - // Cleanly close the connection by sending a close message and then - // waiting (with timeout) for the server to close the connection. - err := c.Conn.WriteControl(websocket.CloseMessage, websocket.FormatCloseMessage(websocket.CloseNormalClosure, ""), time.Now().Add(5*time.Second)) - if err != nil { - return fmt.Errorf("failed to send close message: %s", err) - } - - select { - case <-c.done: - logrus.Infof("Connection closed") - case <-time.After(3 * time.Second): - logrus.Warn("Timed-out waiting for connection close") - } - - return nil -} - -func (c *SignalingClient) Connect() error { - var err error - - dialer := websocket.Dialer{ - HandshakeTimeout: 1 * time.Second, - } - - c.Conn, _, err = dialer.Dial(c.URL.String(), nil) - if err != nil { - return fmt.Errorf("failed to dial %s: %w", c.URL, err) - } - - for _, cb := range c.connectCallbacks { - cb() - } - - go c.read() - - // Reset reconnect timer - c.backoff.Reset() - - c.done = make(chan struct{}) - - return nil -} - -func (c *SignalingClient) ConnectWithBackoff() error { - t := time.NewTimer(c.backoff.Duration) - for range t.C { - if err := c.Connect(); err != nil { - t.Reset(c.backoff.Next()) - - logrus.Errorf("Failed to connect: %s. Reconnecting in %s", err, c.backoff.Duration) - } else { - break - } - } - - return nil -} - -func (c *SignalingClient) read() { - for { - msg := &SignalingMessage{} - if err := c.Conn.ReadJSON(msg); err != nil { - if websocket.IsCloseError(err, websocket.CloseGoingAway, websocket.CloseNormalClosure) { - - } else { - logrus.Errorf("Failed to read: %s", err) - } - break - } - - logrus.Infof("Received signaling message: %s", msg) - - for _, cb := range c.messageCallbacks { - cb(msg) - } - } - - c.closed() -} - -func (c *SignalingClient) closed() { - if err := c.Conn.Close(); err != nil { - logrus.Errorf("Failed to close connection: %s", err) - } - - c.Conn = nil - - for _, cb := range c.disconnectCallbacks { - cb() - } - - close(c.done) - - if c.isClosing { - logrus.Infof("Connection closed") - } else { - logrus.Warnf("Connection lost. Reconnecting in %s", c.backoff.Duration) - go c.ConnectWithBackoff() - } -} diff --git a/lib/nodes/go/pkg/nodes/webrtc/node.go b/lib/nodes/go/pkg/nodes/webrtc/node.go deleted file mode 100644 index dfa0232c8..000000000 --- a/lib/nodes/go/pkg/nodes/webrtc/node.go +++ /dev/null @@ -1,179 +0,0 @@ -package webrtc - -import ( - "encoding/json" - "errors" - "fmt" - "net/url" - "strings" - - node "git.rwth-aachen.de/acs/public/villas/node/pkg" - "github.com/pion/webrtc/v3" -) - -var ( - DefaultConfig = Config{ - Server: &url.URL{ - Scheme: "wss", - Host: "https://ws-signal.villas.k8s.eonerc.rwth-aachen.de", - }, - WebRTC: webrtc.Configuration{ - ICEServers: []webrtc.ICEServer{ - { - URLs: []string{"stun:stun.l.google.com:19302"}, - }, - }, - }, - } -) - -type Node struct { - node.Node - - *PeerConnection - - Config Config - - receive chan []byte - send chan []byte - - stop chan struct{} -} - -type Config struct { - Server *url.URL - Session string - - WebRTC webrtc.Configuration -} - -func NewNode() node.Node { - return &Node{ - stop: make(chan struct{}), - send: make(chan []byte), - receive: make(chan []byte), - - Config: DefaultConfig, - } -} - -func (n *Node) Parse(c []byte) error { - var err error - var cfg struct { - Session *string `json:"session"` - Server *string `json:"server,omitempty"` - Ice *struct { - Servers []struct { - URLs []string `json:"urls,omitempty"` - Username *string `json:"username,omitempty"` - Password *string `json:"password,omitempty"` - } `json:"servers,omitempty"` - } `json:"ice,omitempty"` - } - - if err := json.Unmarshal(c, &cfg); err != nil { - return fmt.Errorf("failed to unmarshal config: %w", err) - } - - if cfg.Session == nil || *cfg.Session == "" { - return errors.New("missing or invalid session name") - } else { - n.Config.Session = *cfg.Session - } - - if cfg.Server != nil { - n.Config.Server, err = url.Parse(*cfg.Server) - if err != nil { - return fmt.Errorf("failed to parse server address: %w", err) - } - } - - if cfg.Ice != nil { - for _, server := range cfg.Ice.Servers { - iceServer := webrtc.ICEServer{ - URLs: server.URLs, - } - - if server.Username != nil && server.Password != nil { - iceServer.Username = *server.Username - iceServer.CredentialType = webrtc.ICECredentialTypePassword - iceServer.Credential = *server.Password - } - - n.Config.WebRTC.ICEServers = append(n.Config.WebRTC.ICEServers, iceServer) - } - } - - return nil -} - -func (n *Node) Check() error { - return nil -} - -func (n *Node) Prepare() error { - var err error - - n.PeerConnection, err = NewPeerConnection(n.config) - if err != nil { - return fmt.Errorf("failed to create peer connection: %w", err) - } - - return nil -} - -func (n *Node) Start() error { - return nil -} - -func (n *Node) Stop() error { - close(n.stop) - - return nil -} - -func (n *Node) Read() ([]byte, error) { - select { - case <-n.stop: - case b := <-n.receive: - return b, nil - } - - return nil, nil -} - -func (n *Node) Write(data []byte) error { - n.send <- data - - return nil -} - -func (n *Node) PollFDs() []int { - return []int{} -} - -func (n *Node) NetemFDs() []int { - return []int{} -} - -func (n *Node) Details() string { - details := map[string]string{ - "server": n.Config.Server.String(), - "session": n.Config.Session, - } - - kv := []string{} - for k, v := range details { - kv = append(kv, fmt.Sprintf("%s=%s", k, v)) - } - - return strings.Join(kv, ", ") -} - -func (n *Node) Close() error { - return nil -} - -func init() { - node.RegisterNode("webrtc", NewNode) -} diff --git a/lib/nodes/go/pkg/nodes/webrtc/types.go b/lib/nodes/go/pkg/nodes/webrtc/types.go deleted file mode 100644 index 3c8736831..000000000 --- a/lib/nodes/go/pkg/nodes/webrtc/types.go +++ /dev/null @@ -1,37 +0,0 @@ -package webrtc - -import ( - "encoding/json" - "time" - - "github.com/pion/webrtc/v3" -) - -type Connection struct { - ID int `json:"id"` - - Remote string `json:"remote"` - UserAgent string `json:"user_agent"` - Created time.Time `json:"created"` -} - -type ControlMessage struct { - ConnectionID int `json:"connection_id"` - Connections []Connection `json:"connections"` -} - -type Role struct { - Polite bool `json:"polite"` - First bool `json:"first"` -} - -type SignalingMessage struct { - Description *webrtc.SessionDescription `json:"description,omitempty"` - Candidate *webrtc.ICECandidate `json:"candidate,omitempty"` - Control *ControlMessage `json:"control,omitempty"` -} - -func (msg SignalingMessage) String() string { - b, _ := json.Marshal(msg) - return string(b) -} diff --git a/lib/nodes/go/pkg/nodes/webrtc/webrtc.go b/lib/nodes/go/pkg/nodes/webrtc/webrtc.go deleted file mode 100644 index 3cf6fc817..000000000 --- a/lib/nodes/go/pkg/nodes/webrtc/webrtc.go +++ /dev/null @@ -1,309 +0,0 @@ -package webrtc - -import ( - "fmt" - "time" - - "github.com/pion/webrtc/v3" - "github.com/sirupsen/logrus" -) - -type PeerConnection struct { - *webrtc.PeerConnection - *SignalingClient - - config *Config - - makingOffer bool - ignoreOffer bool - - first bool - polite bool - - rollback bool -} - -func NewPeerConnection(config *Config) (*PeerConnection, error) { - sc, err := NewSignalingClient(config.Server) - if err != nil { - return nil, fmt.Errorf("failed to create signaling client: %w", err) - } - - ppc := &PeerConnection{ - SignalingClient: sc, - config: config, - } - - ppc.SignalingClient.OnMessage(ppc.OnSignalingMessageHandler) - ppc.SignalingClient.OnConnect(ppc.OnSignalingConnectedHandler) - - if err := ppc.SignalingClient.ConnectWithBackoff(); err != nil { - return nil, fmt.Errorf("failed to connect signaling client: %w", err) - } - - return ppc, nil -} - -func (pc *PeerConnection) createPeerConnection() (*webrtc.PeerConnection, error) { - logrus.Info("Created new peer connection") - - // Create a new RTCPeerConnection - ppc, err := webrtc.NewPeerConnection(pc.config.WebRTC) - if err != nil { - return nil, fmt.Errorf("failed to create peer connection: %w", err) - } - - // Set the handler for ICE connection state - // This will notify you when the peer has connected/disconnected - ppc.OnConnectionStateChange(pc.OnConnectionStateChangeHandler) - ppc.OnSignalingStateChange(pc.OnSignalingStateChangeHandler) - ppc.OnICECandidate(pc.OnICECandidateHandler) - ppc.OnNegotiationNeeded(pc.OnNegotiationNeededHandler) - ppc.OnDataChannel(pc.OnDataChannelHandler) - - if !pc.first { - dc, err := ppc.CreateDataChannel("demo", nil) - if err != nil { - logrus.Panicf("Failed to create datachannel: %s", err) - } - - close := make(chan struct{}) - - dc.OnClose(func() { pc.OnDataChannelCloseHandler(dc, close) }) - dc.OnOpen(func() { pc.OnDataChannelOpenHandler(dc, close) }) - dc.OnMessage(func(msg webrtc.DataChannelMessage) { pc.OnDataChannelMessageHandler(dc, &msg, close) }) - } - - return ppc, nil -} - -func (pc *PeerConnection) rollbackPeerConnection() (*webrtc.PeerConnection, error) { - pc.rollback = true - defer func() { pc.rollback = false }() - - // Close previous peer connection in before creating a new one - // We need to do this as pion/webrtc currently does not support rollbacks - if err := pc.PeerConnection.Close(); err != nil { - return nil, fmt.Errorf("failed to close peer connection: %w", err) - } - - if ppc, err := pc.createPeerConnection(); err != nil { - return nil, err - } else { - return ppc, nil - } -} - -func (pc *PeerConnection) OnDataChannelOpenHandler(dc *webrtc.DataChannel, close chan struct{}) { - logrus.Infof("DataChannel opened: %s", dc.Label()) - - pc.SendMessages(dc, close) -} - -func (pc *PeerConnection) OnDataChannelCloseHandler(dc *webrtc.DataChannel, cl chan struct{}) { - logrus.Infof("DataChannel closed: %s", dc.Label()) - - close(cl) - - // We close the connection here to avoid waiting for the disconnected event - if err := pc.PeerConnection.Close(); err != nil { - logrus.Errorf("Failed to close peer connection: %s", err) - } -} - -func (pc *PeerConnection) OnDataChannelMessageHandler(dc *webrtc.DataChannel, msg *webrtc.DataChannelMessage, close chan struct{}) { - logrus.Infof("Received: %s", string(msg.Data)) -} - -func (pc *PeerConnection) SendMessages(dc *webrtc.DataChannel, close chan struct{}) { - logrus.Info("Start sending messages") - - i := 0 - t := time.NewTicker(1 * time.Second) - -loop: - for { - select { - case <-t.C: - msg := fmt.Sprintf("Hello %d", i) - - logrus.Infof("Send: %s", msg) - - if err := dc.SendText(msg); err != nil { - logrus.Errorf("Failed to send message: %s", err) - break loop - } - - case <-close: - break loop - } - - i++ - } - - logrus.Info("Stopped sending messages") -} - -func (pc *PeerConnection) OnDataChannelHandler(dc *webrtc.DataChannel) { - logrus.Infof("New DataChannel opened: %s", dc.Label()) - - close := make(chan struct{}) - - dc.OnOpen(func() { pc.OnDataChannelOpenHandler(dc, close) }) - dc.OnClose(func() { pc.OnDataChannelCloseHandler(dc, close) }) - dc.OnMessage(func(msg webrtc.DataChannelMessage) { pc.OnDataChannelMessageHandler(dc, &msg, close) }) -} - -func (pc *PeerConnection) OnICECandidateHandler(c *webrtc.ICECandidate) { - if c == nil { - logrus.Info("Candidate gathering concluded") - return - } - - logrus.Infof("Found new candidate: %s", c) - - if err := pc.SendSignalingMessage(&SignalingMessage{ - Candidate: c, - }); err != nil { - logrus.Errorf("Failed to send candidate: %s", err) - } -} - -func (pc *PeerConnection) OnNegotiationNeededHandler() { - logrus.Info("Negotation needed!") - - pc.makingOffer = true - - offer, err := pc.CreateOffer(nil) - if err != nil { - logrus.Panicf("Failed to create offer: %s", err) - } - - if err := pc.SetLocalDescription(offer); err != nil { - logrus.Panicf("Failed to set local description: %s", err) - } - - if err := pc.SendSignalingMessage(&SignalingMessage{ - Description: &offer, - }); err != nil { - logrus.Panicf("Failed to send offer: %s", err) - } - - pc.makingOffer = false -} - -func (pc *PeerConnection) OnSignalingStateChangeHandler(ss webrtc.SignalingState) { - logrus.Infof("Signaling State has changed: %s", ss.String()) -} - -func (pc *PeerConnection) OnConnectionStateChangeHandler(pcs webrtc.PeerConnectionState) { - logrus.Infof("Connection State has changed: %s", pcs.String()) - - switch pcs { - case webrtc.PeerConnectionStateFailed: - fallthrough - case webrtc.PeerConnectionStateDisconnected: - logrus.Info("Closing peer connection") - - if err := pc.PeerConnection.Close(); err != nil { - logrus.Panicf("Failed to close peer connection: %s", err) - } - - case webrtc.PeerConnectionStateClosed: - if pc.rollback { - return - } - - logrus.Info("Closed peer connection") - - var err error - pc.PeerConnection, err = pc.createPeerConnection() - if err != nil { - logrus.Panicf("Failed to set re-create peer connection: %s", err) - } - } -} - -func (pc *PeerConnection) OnSignalingConnectedHandler() { - var err error - - logrus.Info("Signaling connected") - - // Create initial peer connection - if pc.PeerConnection == nil { - if pc.PeerConnection, err = pc.createPeerConnection(); err != nil { - logrus.Warnf("failed to create peer connection: %s", err) - } - } -} - -func (pc *PeerConnection) OnSignalingMessageHandler(msg *SignalingMessage) { - var err error - - if msg.Control != nil { - if len(msg.Control.Connections) > 2 { - logrus.Panicf("There are already two peers connected to this session.") - } - - pc.first = true - for _, c := range msg.Control.Connections { - if c.ID < msg.Control.ConnectionID { - pc.first = false - } - } - - pc.polite = pc.first - - logrus.Infof("New role: polite=%v, first=%v", pc.polite, pc.first) - } else if msg.Description != nil { - readyForOffer := !pc.makingOffer && pc.SignalingState() == webrtc.SignalingStateStable - offerCollision := msg.Description.Type == webrtc.SDPTypeOffer && !readyForOffer - - pc.ignoreOffer = !pc.polite && offerCollision - if pc.ignoreOffer { - return - } - - if msg.Description.Type == webrtc.SDPTypeOffer && pc.PeerConnection.SignalingState() != webrtc.SignalingStateStable { - pc.PeerConnection, err = pc.rollbackPeerConnection() - if err != nil { - logrus.Panicf("Failed to rollback peer connection: %s", err) - } - } - - if err := pc.PeerConnection.SetRemoteDescription(*msg.Description); err != nil { - logrus.Panicf("Failed to set remote description: %s", err) - } - - if msg.Description.Type == webrtc.SDPTypeOffer { - answer, err := pc.PeerConnection.CreateAnswer(nil) - if err != nil { - logrus.Panicf("Failed to create answer: %s", err) - } - - if err := pc.SetLocalDescription(answer); err != nil { - logrus.Panicf("Failed to rollback signaling state: %s", err) - } - - pc.SendSignalingMessage(&SignalingMessage{ - Description: pc.LocalDescription(), - }) - } - } else if msg.Candidate != nil { - if err := pc.AddICECandidate(msg.Candidate.ToJSON()); err != nil && !pc.ignoreOffer { - logrus.Panicf("Failed to add new ICE candidate: %s", err) - } - } -} - -func (pc *PeerConnection) Close() error { - if err := pc.SignalingClient.Close(); err != nil { - return fmt.Errorf("failed to close signaling client: %w", err) - } - - if err := pc.PeerConnection.Close(); err != nil { - return fmt.Errorf("failed to close peer connection: %w", err) - } - - return nil -} diff --git a/lib/nodes/go/pkg/registry.go b/lib/nodes/go/pkg/registry.go deleted file mode 100644 index d8948ece9..000000000 --- a/lib/nodes/go/pkg/registry.go +++ /dev/null @@ -1,13 +0,0 @@ -package node - -var ( - goNodeTypes = map[string]NodeCtor{} -) - -func RegisterNode(name string, ctor NodeCtor) { - goNodeTypes[name] = ctor -} - -func NodeTypes() map[string]NodeCtor { - return goNodeTypes -} diff --git a/lib/nodes/go/test/CMakeLists.txt b/lib/nodes/go/test/CMakeLists.txt deleted file mode 100644 index 8eb104d9f..000000000 --- a/lib/nodes/go/test/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -cmake_minimum_required(VERSION 3.0) -project (test) - -add_subdirectory(go) - -add_executable(test test.c) - -target_link_libraries(test goshim pthread) diff --git a/lib/nodes/go/test/build/CMakeCache.txt b/lib/nodes/go/test/build/CMakeCache.txt deleted file mode 100644 index 479e29484..000000000 --- a/lib/nodes/go/test/build/CMakeCache.txt +++ /dev/null @@ -1,374 +0,0 @@ -# This is the CMakeCache file. -# For build in directory: /global/projects/villas/node/lib/nodes/go/test/build -# It was generated by CMake: /usr/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_ADDR2LINE:FILEPATH=/usr/bin/addr2line - -//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 - -//A wrapper around 'ranlib' adding the appropriate '--plugin' option -// for the GCC compiler -CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib - -//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=-O2 -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 - -//A wrapper around 'ranlib' adding the appropriate '--plugin' option -// for the GCC compiler -CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib - -//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=-O2 -DNDEBUG - -//Flags used by the C compiler during RELWITHDEBINFO builds. -CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG - -//Path to a program. -CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND - -//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= - -//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/gmake - -//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=test - -//Path to a program. -CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib - -//Path to a program. -CMAKE_READELF:FILEPATH=/usr/bin/readelf - -//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 -test_BINARY_DIR:STATIC=/global/projects/villas/node/lib/nodes/go/test/build - -//Value Computed by CMake -test_SOURCE_DIR:STATIC=/global/projects/villas/node/lib/nodes/go/test - -//Value Computed by CMake -test_go_BINARY_DIR:STATIC=/global/projects/villas/node/lib/nodes/go/test/build/go - -//Value Computed by CMake -test_go_SOURCE_DIR:STATIC=/global/projects/villas/node/lib/nodes/go/test/go - - -######################## -# INTERNAL cache entries -######################## - -//ADVANCED property for variable: CMAKE_ADDR2LINE -CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 -//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=/global/projects/villas/node/lib/nodes/go/test/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=18 -//Patch version of cmake used to create the current loaded cache -CMAKE_CACHE_PATCH_VERSION:INTERNAL=2 -//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE -CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 -//Path to CMake executable. -CMAKE_COMMAND:INTERNAL=/usr/bin/cmake -//Path to cpack program executable. -CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack -//Path to ctest program executable. -CMAKE_CTEST_COMMAND:INTERNAL=/usr/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 -//ADVANCED property for variable: CMAKE_DLLTOOL -CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 -//Path to cache edit program executable. -CMAKE_EDIT_COMMAND:INTERNAL=/usr/bin/ccmake -//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=/global/projects/villas/node/lib/nodes/go/test -//Install .so files without execute permission. -CMAKE_INSTALL_SO_NO_EXE:INTERNAL=0 -//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=2 -//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 -//ADVANCED property for variable: CMAKE_READELF -CMAKE_READELF-ADVANCED:INTERNAL=1 -//Path to CMake installation. -CMAKE_ROOT:INTERNAL=/usr/share/cmake -//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=/usr/bin/uname -//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE -CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 - diff --git a/lib/nodes/go/test/build/CMakeFiles/3.18.2/CMakeCCompiler.cmake b/lib/nodes/go/test/build/CMakeFiles/3.18.2/CMakeCCompiler.cmake deleted file mode 100644 index e583039e4..000000000 --- a/lib/nodes/go/test/build/CMakeFiles/3.18.2/CMakeCCompiler.cmake +++ /dev/null @@ -1,77 +0,0 @@ -set(CMAKE_C_COMPILER "/usr/bin/cc") -set(CMAKE_C_COMPILER_ARG1 "") -set(CMAKE_C_COMPILER_ID "GNU") -set(CMAKE_C_COMPILER_VERSION "8.4.1") -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_COMPILER_FRONTEND_VARIANT "") -set(CMAKE_C_SIMULATE_VERSION "") - - - - -set(CMAKE_AR "/usr/bin/ar") -set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar") -set(CMAKE_RANLIB "/usr/bin/ranlib") -set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib") -set(CMAKE_LINKER "/usr/bin/ld") -set(CMAKE_MT "") -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 "") - -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 "") -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_INCLUDE_DIRECTORIES "/usr/lib/gcc/x86_64-redhat-linux/8/include;/usr/local/include;/usr/include") -set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s") -set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-redhat-linux/8;/usr/lib64;/lib64;/usr/lib") -set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/lib/nodes/go/test/build/CMakeFiles/3.18.2/CMakeCXXCompiler.cmake b/lib/nodes/go/test/build/CMakeFiles/3.18.2/CMakeCXXCompiler.cmake deleted file mode 100644 index 10d2b4206..000000000 --- a/lib/nodes/go/test/build/CMakeFiles/3.18.2/CMakeCXXCompiler.cmake +++ /dev/null @@ -1,89 +0,0 @@ -set(CMAKE_CXX_COMPILER "/usr/bin/c++") -set(CMAKE_CXX_COMPILER_ARG1 "") -set(CMAKE_CXX_COMPILER_ID "GNU") -set(CMAKE_CXX_COMPILER_VERSION "8.4.1") -set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") -set(CMAKE_CXX_COMPILER_WRAPPER "") -set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14") -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;cxx_std_20") -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 "cxx_std_20") - -set(CMAKE_CXX_PLATFORM_ID "Linux") -set(CMAKE_CXX_SIMULATE_ID "") -set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "") -set(CMAKE_CXX_SIMULATE_VERSION "") - - - - -set(CMAKE_AR "/usr/bin/ar") -set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar") -set(CMAKE_RANLIB "/usr/bin/ranlib") -set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib") -set(CMAKE_LINKER "/usr/bin/ld") -set(CMAKE_MT "") -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_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;CPP) -set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) - -foreach (lang C OBJC OBJCXX) - if (CMAKE_${lang}_COMPILER_ID_RUN) - foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) - list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) - endforeach() - endif() -endforeach() - -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 "") - -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 "") -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_INCLUDE_DIRECTORIES "/usr/include/c++/8;/usr/include/c++/8/x86_64-redhat-linux;/usr/include/c++/8/backward;/usr/lib/gcc/x86_64-redhat-linux/8/include;/usr/local/include;/usr/include") -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-redhat-linux/8;/usr/lib64;/lib64;/usr/lib") -set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/lib/nodes/go/test/build/CMakeFiles/3.18.2/CMakeDetermineCompilerABI_C.bin b/lib/nodes/go/test/build/CMakeFiles/3.18.2/CMakeDetermineCompilerABI_C.bin deleted file mode 100755 index 106875da1bfa2afef444079ee551343c0ae0861c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17280 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 diff --git a/lib/nodes/go/test/build/CMakeFiles/3.18.2/CMakeDetermineCompilerABI_CXX.bin b/lib/nodes/go/test/build/CMakeFiles/3.18.2/CMakeDetermineCompilerABI_CXX.bin deleted file mode 100755 index a9be1ade778eb7e6c45137fd39b934766f7fbbdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17296 zcmeHOeQaCR6~DHdFKC?rEeo`xMgyrI%gYC8mlnF&Nu0cFX;YdM${>Al?3cvUu`~M_ z(vAtV7PP<$(ImENe=wNFR5bqRq`@CdZ0QPglVE~r8%zZ$d=zD)uuN=F7&JTQzH{vN zp5LpgX@geyw$8ctcRuc?{m#Abp4+3nU4EZWaPo^U3t6fROUV2y#Pl^RAw*cTi5mF3 zLM#`R055_M%Y`Y&^dy;PT1{pGq}S#*fi{0wW|*!pVW`7Q+(M)kgqb8vC6mrm1x$qq zNj~afTkC?d2y{qhm@cMv)DdMpETUeB^g^V^bcPznl>3Kcf}a7hH{cIL3Cm$5qEr4Y zQk2EC^|+D1{K+a=1R9nZrmZF{n6lorpoi@|(^N--+o(RTaha$7F{PqtOeKfcw>G8{ z4XI>0KiM$Zw!UF~tCGtoEwbNeA7#6@Y?n3ReDly^o0q}|G31Aze6!+%U(AQ{le_ER zf9TaM$LDXq1bH~mXaoE8oog?z2=k}JpiJfX(ez%F5FuIyU+#4euZ4{t3B{3!0W^^ zv7&Csru8Gj>mB%`62Dl49QZ?khro_gej4x##1b(>>x9?CKEN*&=ZiNh!;ljK+lT34 z_#iF_Z3lO*3n_H~kfj_?NwuOM8&y2u%c_}aC&7S;<*8y(N2wVV;l z8k#1wo`KC;LeJ`>$(*5Q2R3)4GHHDvHk{H;o+}4zj+^EnHyV#?IV?3}U2(1k^Hj}v zESVOXo`@MSFxm%bBAM3mIXwZ*LDZB3ku)O1xf}zUv=YzdwPZSJ0IyIU0YG&3_Oy3s zElP{B&g`zaqJ6MR-TsY(5P#3|mnLiQ8}JH^(`@aK%;DPh5r$;Wg7fzU@p%i5-wjSD zEjZ6T^4_hz>_c_$iE8zpikkC6LcMdw@Gm^C?tQBI2&+npa?Nk|OuevEoqA2(`^Nm% zfu5r?IIHT>!#L^c(WAJA7M49x6B7TNM)@NnO6|&hQhi$8zv(Z)Q1@5-0m+7w#xkh# zF3dxfH4C$~EAK$bBSb;|5h=g!$4FM6QV*XBs8jRm;kmDb?g$4ES#{pwy^D*jw@6?CAQ}1<7{XMd<^ksGL5udu@ zmHgjuUTz$W+!Ps%?2KqfM(pj!8N+(zd^%>(SNK)MUJ22&rK@jaF1bg~jA)4oBYR_0 z+h75Y4JU7e=RE?x<$sf44FD_G}Zr z$vWTi#Z}eQuz+!$IINK zV5mJ<-yW=M4_3?eJPPVFV2A5QbLCVXf$|8HN1!|c?jtZ;8J3JgMA$GFFfBHTc&Q>Rb4#dvu*xi7LS^2EEvGU*3ou=35>X!lmU&#}sl1W+r2eT9-p9H%pu3}EV`vrZ&{l`qlvbrV)Y8<_)U=_cEwpNzo(QQi z!^9h!SIcq5=RG>J-H|JNS50hKhtK{-T1QNAza^6?SCP%9)5-K`2)uenB|YjtraY8Tsd*UH_(jvZR0zds66eOvm0?`TgI?{lT9Y~$r} zi8*X##*>CNl8ue)+C(OqhOJYntxDXlULXy@AJdlEx2zsZB}dc9!u4;Pr!jM$ct6P0 zIrimwD*m?6*nYC}6fe&c?!M3Z?^CWkPv^uu>E(GkC+3O#h$iwQ))6f~pYUl8$@FVJ zaX$k6AoL^f)lqk3jm-~o&K3GHMOk;h$f;BIQ_fL;vh1gv8-9P;PdPW{sqCkmmGgv~ zKifV!)?9q2N z*TR|Dcj}a^v$OOZ>a)JiO6KV-_3z5_cYW9{4d2 z{Cy96F?JaGUV_mZzYf0tAsnp{{s(v89szE+%Y`F(b)_wyi+RylqGOPHFd-rrKaCJK^pLBkKXmYmO#O(2is&)*km z7L;C-cS(gP2T9B~AqkxeD-*rOerO4_q|nb6E^_X@na}jS%Ict#56}>WQ(K zVMe|*wlykB@jpmHSWG-?G%FdQ(2XS-O`yb`Wf_0qkWt1mhMSxluH@6HdWg84tUF zG*CJ&cA?VovGb)7fU<^l4DB+f9TsW8KA>76We!@*&@mPT2XP{)n@uT>yO$WovFNFh z1`JwJGW|sb087?h5yOVK$=c_@F7L&28GDCf>9`jKO2@p&b06;_-!axjhTAw71A63G z$!RPOfhFEYvTfsIVPY^)$=no8OE&7l&p^(|Lo`QR6l0z=V;n9ULex_ZqmeS&Xeu)t zOKAxslg(+d{G^Cy#wSv`p(m6twQOj07t*i}Etbv3c0)If>~3LR4ou|7$9IE@r6d=C zO|)ZkY?lrV?p4bCIo2_L-k&h_&-&_;61E+b*~(^!t_F5u%GdM@*M z(GF4wk-oG21dBb8!KSkQB%QHMlKv10a{bQ!?*l##5!%PZ?^)3=#l-OmW~p@k?goZc zpZ#Pu_%Mw>>&thxTmU-l(C2-~L0puO@V%Th(X^w-N$@sG29 z43@U)pCtX0q~BUpl{shq7;|UU=X10s8t55^K94`ck3$CcfVc)R@xF)S)1C5MX8Ie@ z!S}+f&*yUWw6SD4w2g_&On(m;&OPh%{w+lMGc(@kP)@5!UB(zFB%%9Ri*; zu|Ct6foat*oCi_`{5@qGtjF}YL!b9!^`!5dFX|4P6K_EdZE^cKZhgfW>d#aCO$Cc) zhV{Sbz`1^=9{``0nv~@8N|ov#a(n^Z`onAATGhd|W@(ZFb}+8!die0T@wg(J`)+EO fe?#j`dJ|7PF}d9=i}4q3`nO$eO4K?O97XXTD?#WD diff --git a/lib/nodes/go/test/build/CMakeFiles/3.18.2/CMakeSystem.cmake b/lib/nodes/go/test/build/CMakeFiles/3.18.2/CMakeSystem.cmake deleted file mode 100644 index e53f7ee39..000000000 --- a/lib/nodes/go/test/build/CMakeFiles/3.18.2/CMakeSystem.cmake +++ /dev/null @@ -1,15 +0,0 @@ -set(CMAKE_HOST_SYSTEM "Linux-4.18.0-305.3.1.el8_4.x86_64") -set(CMAKE_HOST_SYSTEM_NAME "Linux") -set(CMAKE_HOST_SYSTEM_VERSION "4.18.0-305.3.1.el8_4.x86_64") -set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") - - - -set(CMAKE_SYSTEM "Linux-4.18.0-305.3.1.el8_4.x86_64") -set(CMAKE_SYSTEM_NAME "Linux") -set(CMAKE_SYSTEM_VERSION "4.18.0-305.3.1.el8_4.x86_64") -set(CMAKE_SYSTEM_PROCESSOR "x86_64") - -set(CMAKE_CROSSCOMPILING "FALSE") - -set(CMAKE_SYSTEM_LOADED 1) diff --git a/lib/nodes/go/test/build/CMakeFiles/3.18.2/CompilerIdC/CMakeCCompilerId.c b/lib/nodes/go/test/build/CMakeFiles/3.18.2/CompilerIdC/CMakeCCompilerId.c deleted file mode 100644 index 6c0aa93cb..000000000 --- a/lib/nodes/go/test/build/CMakeFiles/3.18.2/CompilerIdC/CMakeCCompilerId.c +++ /dev/null @@ -1,674 +0,0 @@ -#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 -# if defined(__GNUC__) -# define SIMULATE_ID "GNU" -# 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 -# if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -# elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -# endif -# if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# 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" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__ibmxl__) && defined(__clang__) -# define COMPILER_ID "XLClang" -# 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__) - - -#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 -# define COMPILER_ID "XL" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 -# define COMPILER_ID "VisualAge" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#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(__ghs__) -# define COMPILER_ID "GHS" -/* __GHS_VERSION_NUMBER = VVVVRP */ -# ifdef __GHS_VERSION_NUMBER -# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) -# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) -# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) -# endif - -#elif defined(__TINYC__) -# define COMPILER_ID "TinyCC" - -#elif defined(__BCC__) -# define COMPILER_ID "Bruce" - -#elif defined(__SCO_VERSION__) -# define COMPILER_ID "SCO" - -#elif defined(__ARMCC_VERSION) && !defined(__clang__) -# 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(__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__) && defined(__ARMCOMPILER_VERSION) -# define COMPILER_ID "ARMClang" - # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) -# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_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__) && defined(__ICCARM__) -# 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__) -# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__)) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) -# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) -# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# 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 - - -/* 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(__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(__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" - -# elif defined(__VXWORKS__) -# define PLATFORM_ID "VxWorks" - -# else /* unknown platform */ -# define PLATFORM_ID -# endif - -#elif defined(__INTEGRITY) -# if defined(INT_178B) -# define PLATFORM_ID "Integrity178" - -# else /* regular Integrity */ -# define PLATFORM_ID "Integrity" -# 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(__ICCRX__) -# define ARCHITECTURE_ID "RX" - -# elif defined(__ICCRH850__) -# define ARCHITECTURE_ID "RH850" - -# elif defined(__ICCRL78__) -# define ARCHITECTURE_ID "RL78" - -# elif defined(__ICCRISCV__) -# define ARCHITECTURE_ID "RISCV" - -# elif defined(__ICCAVR__) -# define ARCHITECTURE_ID "AVR" - -# elif defined(__ICC430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__ICCV850__) -# define ARCHITECTURE_ID "V850" - -# elif defined(__ICC8051__) -# define ARCHITECTURE_ID "8051" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__ghs__) -# if defined(__PPC64__) -# define ARCHITECTURE_ID "PPC64" - -# elif defined(__ppc__) -# define ARCHITECTURE_ID "PPC" - -# elif defined(__ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__x86_64__) -# define ARCHITECTURE_ID "x64" - -# elif defined(__i386__) -# define ARCHITECTURE_ID "X86" - -# 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/lib/nodes/go/test/build/CMakeFiles/3.18.2/CompilerIdC/a.out b/lib/nodes/go/test/build/CMakeFiles/3.18.2/CompilerIdC/a.out deleted file mode 100755 index c5e1fe4434470449217c1606599383703b45849b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17448 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 diff --git a/lib/nodes/go/test/build/CMakeFiles/3.18.2/CompilerIdCXX/CMakeCXXCompilerId.cpp b/lib/nodes/go/test/build/CMakeFiles/3.18.2/CompilerIdCXX/CMakeCXXCompilerId.cpp deleted file mode 100644 index 37c21cafe..000000000 --- a/lib/nodes/go/test/build/CMakeFiles/3.18.2/CompilerIdCXX/CMakeCXXCompilerId.cpp +++ /dev/null @@ -1,663 +0,0 @@ -/* 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 -# if defined(__GNUC__) -# define SIMULATE_ID "GNU" -# 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 -# if defined(__GNUC__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -# elif defined(__GNUG__) -# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) -# endif -# if defined(__GNUC_MINOR__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# 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" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__ibmxl__) && defined(__clang__) -# define COMPILER_ID "XLClang" -# 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__) - - -#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 -# define COMPILER_ID "XL" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 -# define COMPILER_ID "VisualAge" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#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(__ghs__) -# define COMPILER_ID "GHS" -/* __GHS_VERSION_NUMBER = VVVVRP */ -# ifdef __GHS_VERSION_NUMBER -# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) -# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) -# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) -# endif - -#elif defined(__SCO_VERSION__) -# define COMPILER_ID "SCO" - -#elif defined(__ARMCC_VERSION) && !defined(__clang__) -# 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(__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__) && defined(__ARMCOMPILER_VERSION) -# define COMPILER_ID "ARMClang" - # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) -# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_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__) && defined(__ICCARM__) -# 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__) -# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__)) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) -# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) -# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# 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(__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(__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" - -# elif defined(__VXWORKS__) -# define PLATFORM_ID "VxWorks" - -# else /* unknown platform */ -# define PLATFORM_ID -# endif - -#elif defined(__INTEGRITY) -# if defined(INT_178B) -# define PLATFORM_ID "Integrity178" - -# else /* regular Integrity */ -# define PLATFORM_ID "Integrity" -# 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(__ICCRX__) -# define ARCHITECTURE_ID "RX" - -# elif defined(__ICCRH850__) -# define ARCHITECTURE_ID "RH850" - -# elif defined(__ICCRL78__) -# define ARCHITECTURE_ID "RL78" - -# elif defined(__ICCRISCV__) -# define ARCHITECTURE_ID "RISCV" - -# elif defined(__ICCAVR__) -# define ARCHITECTURE_ID "AVR" - -# elif defined(__ICC430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__ICCV850__) -# define ARCHITECTURE_ID "V850" - -# elif defined(__ICC8051__) -# define ARCHITECTURE_ID "8051" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__ghs__) -# if defined(__PPC64__) -# define ARCHITECTURE_ID "PPC64" - -# elif defined(__ppc__) -# define ARCHITECTURE_ID "PPC" - -# elif defined(__ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__x86_64__) -# define ARCHITECTURE_ID "x64" - -# elif defined(__i386__) -# define ARCHITECTURE_ID "X86" - -# 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(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L -# if defined(__INTEL_CXX11_MODE__) -# if defined(__cpp_aggregate_nsdmi) -# define CXX_STD 201402L -# else -# define CXX_STD 201103L -# endif -# else -# define CXX_STD 199711L -# endif -#elif 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/lib/nodes/go/test/build/CMakeFiles/3.18.2/CompilerIdCXX/a.out b/lib/nodes/go/test/build/CMakeFiles/3.18.2/CompilerIdCXX/a.out deleted file mode 100755 index 472a537f8229cd55387cae5370f0aaeecb06851a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17456 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

hwmD6u>0C*hEM?$uXa+8LEY0A?SuK4a2lf=T z3yMQWx?BYVcyLcQQ9)=p(n7PX{qT#^5O{exhMF})6K^IB8eCEuYHlbE&VxB~HUrPa zX?*Cxk2aTuj4}qE7a9!FEX;4!8rcQSwCzG>vSh>c^FK(qza3*~e2u}x>oI%|n)kOW zu9D?E(l5Xt?n!5TUbo?M#xdYI6UT>)bwI|c&+9uj8N7`JiF)<>0Dlkmuyg%K!*MBj zlmKo&$3+~^N+I~!0e`p;oAr6U=mi4ylOTjg(od}4LiqhaUzMu; z_Yg2}Pd?Yr>rbaiAHQW_;`Xx~(|y3hJ^ozgb*i(ZA46qG-u5e0h({oUK4pDg&srq? z2@>S`z5Ra-_&9&iKBm#SI8jO9M7}$D$L|SXJM}pZpCiFPBh!)O_iIP_2;`mmypE<* zgYcW6GkNR(0WeXY`#(`1m*Nwok7pE}DdsFd{zvfV)aP^Yd|tlGBk!#r?K|~({Vt9d z1*DVmxAMdOXXFHA@V^3};VQ55@%eeLJeQgN4s`LGH0$$vU<>{K0xSn2GI5#dOMs%Q zSfAfl`Tr+4iJgN)?kt~^;c3N#83^?qGGX2sy;s%ZSRb{v95i^_hMMe3~j! zlGjPIRR4tM0`$&5w8L}XS=HIis&tYL6ydq2`{0lJ!+u3J_g!hI-y>TTeToO3nA~ob T#j_uN`nTSrBpN*mo}%~<`knTv diff --git a/lib/nodes/go/test/build/CMakeFiles/CMakeDirectoryInformation.cmake b/lib/nodes/go/test/build/CMakeFiles/CMakeDirectoryInformation.cmake deleted file mode 100644 index 98d218353..000000000 --- a/lib/nodes/go/test/build/CMakeFiles/CMakeDirectoryInformation.cmake +++ /dev/null @@ -1,16 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.18 - -# Relative path conversion top directories. -set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/global/projects/villas/node/lib/nodes/go/test") -set(CMAKE_RELATIVE_PATH_TOP_BINARY "/global/projects/villas/node/lib/nodes/go/test/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/lib/nodes/go/test/build/CMakeFiles/CMakeOutput.log b/lib/nodes/go/test/build/CMakeFiles/CMakeOutput.log deleted file mode 100644 index 2236771f4..000000000 --- a/lib/nodes/go/test/build/CMakeFiles/CMakeOutput.log +++ /dev/null @@ -1,409 +0,0 @@ -The system is: Linux - 4.18.0-305.3.1.el8_4.x86_64 - 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 "/global/projects/villas/node/lib/nodes/go/test/build/CMakeFiles/3.18.2/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 "/global/projects/villas/node/lib/nodes/go/test/build/CMakeFiles/3.18.2/CompilerIdCXX/a.out" - -Detecting C compiler ABI info compiled with the following output: -Change Dir: /global/projects/villas/node/lib/nodes/go/test/build/CMakeFiles/CMakeTmp - -Run Build Command(s):/usr/bin/gmake cmTC_194bc/fast && /usr/bin/gmake -f CMakeFiles/cmTC_194bc.dir/build.make CMakeFiles/cmTC_194bc.dir/build -gmake[1]: Entering directory '/global/projects/villas/node/lib/nodes/go/test/build/CMakeFiles/CMakeTmp' -Building C object CMakeFiles/cmTC_194bc.dir/CMakeCCompilerABI.c.o -/usr/bin/cc -v -o CMakeFiles/cmTC_194bc.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake/Modules/CMakeCCompilerABI.c -Using built-in specs. -COLLECT_GCC=/usr/bin/cc -OFFLOAD_TARGET_NAMES=nvptx-none -OFFLOAD_TARGET_DEFAULT=1 -Target: x86_64-redhat-linux -Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --disable-libmpx --enable-offload-targets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --enable-cet --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux -Thread model: posix -gcc version 8.4.1 20200928 (Red Hat 8.4.1-1) (GCC) -COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_194bc.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' - /usr/libexec/gcc/x86_64-redhat-linux/8/cc1 -quiet -v /usr/share/cmake/Modules/CMakeCCompilerABI.c -quiet -dumpbase CMakeCCompilerABI.c -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_194bc.dir/CMakeCCompilerABI.c.o -version -o /tmp/ccQ2G8ES.s -GNU C17 (GCC) version 8.4.1 20200928 (Red Hat 8.4.1-1) (x86_64-redhat-linux) - compiled by GNU C version 8.4.1 20200928 (Red Hat 8.4.1-1), GMP version 6.1.2, MPFR version 3.1.6-p2, MPC version 1.0.2, isl version isl-0.16.1-GMP - -warning: MPC header version 1.0.2 differs from library version 1.1.0. -GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 -ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/8/include-fixed" -ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/8/../../../../x86_64-redhat-linux/include" -#include "..." search starts here: -#include <...> search starts here: - /usr/lib/gcc/x86_64-redhat-linux/8/include - /usr/local/include - /usr/include -End of search list. -GNU C17 (GCC) version 8.4.1 20200928 (Red Hat 8.4.1-1) (x86_64-redhat-linux) - compiled by GNU C version 8.4.1 20200928 (Red Hat 8.4.1-1), GMP version 6.1.2, MPFR version 3.1.6-p2, MPC version 1.0.2, isl version isl-0.16.1-GMP - -warning: MPC header version 1.0.2 differs from library version 1.1.0. -GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 -Compiler executable checksum: 4200654a8a5e4de8e22bfb5ed3a1f615 -COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_194bc.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' - as -v --64 -o CMakeFiles/cmTC_194bc.dir/CMakeCCompilerABI.c.o /tmp/ccQ2G8ES.s -GNU assembler version 2.30 (x86_64-redhat-linux) using BFD version version 2.30-93.el8 -COMPILER_PATH=/usr/libexec/gcc/x86_64-redhat-linux/8/:/usr/libexec/gcc/x86_64-redhat-linux/8/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/8/:/usr/lib/gcc/x86_64-redhat-linux/ -LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/8/:/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/usr/lib/gcc/x86_64-redhat-linux/8/../../../:/lib/:/usr/lib/ -COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_194bc.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' -Linking C executable cmTC_194bc -/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_194bc.dir/link.txt --verbose=1 -/usr/bin/cc -v -rdynamic CMakeFiles/cmTC_194bc.dir/CMakeCCompilerABI.c.o -o cmTC_194bc -Using built-in specs. -COLLECT_GCC=/usr/bin/cc -COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/8/lto-wrapper -OFFLOAD_TARGET_NAMES=nvptx-none -OFFLOAD_TARGET_DEFAULT=1 -Target: x86_64-redhat-linux -Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --disable-libmpx --enable-offload-targets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --enable-cet --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux -Thread model: posix -gcc version 8.4.1 20200928 (Red Hat 8.4.1-1) (GCC) -COMPILER_PATH=/usr/libexec/gcc/x86_64-redhat-linux/8/:/usr/libexec/gcc/x86_64-redhat-linux/8/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/8/:/usr/lib/gcc/x86_64-redhat-linux/ -LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/8/:/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/usr/lib/gcc/x86_64-redhat-linux/8/../../../:/lib/:/usr/lib/ -COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_194bc' '-mtune=generic' '-march=x86-64' - /usr/libexec/gcc/x86_64-redhat-linux/8/collect2 -plugin /usr/libexec/gcc/x86_64-redhat-linux/8/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-redhat-linux/8/lto-wrapper -plugin-opt=-fresolution=/tmp/ccStT1og.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 --build-id --no-add-needed --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTC_194bc /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/8/crtbegin.o -L/usr/lib/gcc/x86_64-redhat-linux/8 -L/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/8/../../.. CMakeFiles/cmTC_194bc.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-redhat-linux/8/crtend.o /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crtn.o -COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_194bc' '-mtune=generic' '-march=x86-64' -gmake[1]: Leaving directory '/global/projects/villas/node/lib/nodes/go/test/build/CMakeFiles/CMakeTmp' - - - -Parsed C implicit include dir info from above output: rv=done - found start of include info - found start of implicit include info - add: [/usr/lib/gcc/x86_64-redhat-linux/8/include] - add: [/usr/local/include] - add: [/usr/include] - end of search list found - collapse include dir [/usr/lib/gcc/x86_64-redhat-linux/8/include] ==> [/usr/lib/gcc/x86_64-redhat-linux/8/include] - collapse include dir [/usr/local/include] ==> [/usr/local/include] - collapse include dir [/usr/include] ==> [/usr/include] - implicit include dirs: [/usr/lib/gcc/x86_64-redhat-linux/8/include;/usr/local/include;/usr/include] - - -Parsed C implicit link information from above output: - link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] - ignore line: [Change Dir: /global/projects/villas/node/lib/nodes/go/test/build/CMakeFiles/CMakeTmp] - ignore line: [] - ignore line: [Run Build Command(s):/usr/bin/gmake cmTC_194bc/fast && /usr/bin/gmake -f CMakeFiles/cmTC_194bc.dir/build.make CMakeFiles/cmTC_194bc.dir/build] - ignore line: [gmake[1]: Entering directory '/global/projects/villas/node/lib/nodes/go/test/build/CMakeFiles/CMakeTmp'] - ignore line: [Building C object CMakeFiles/cmTC_194bc.dir/CMakeCCompilerABI.c.o] - ignore line: [/usr/bin/cc -v -o CMakeFiles/cmTC_194bc.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake/Modules/CMakeCCompilerABI.c] - ignore line: [Using built-in specs.] - ignore line: [COLLECT_GCC=/usr/bin/cc] - ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none] - ignore line: [OFFLOAD_TARGET_DEFAULT=1] - ignore line: [Target: x86_64-redhat-linux] - ignore line: [Configured with: ../configure --enable-bootstrap --enable-languages=c c++ fortran lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --disable-libmpx --enable-offload-targets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --enable-cet --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux] - ignore line: [Thread model: posix] - ignore line: [gcc version 8.4.1 20200928 (Red Hat 8.4.1-1) (GCC) ] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_194bc.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64'] - ignore line: [ /usr/libexec/gcc/x86_64-redhat-linux/8/cc1 -quiet -v /usr/share/cmake/Modules/CMakeCCompilerABI.c -quiet -dumpbase CMakeCCompilerABI.c -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_194bc.dir/CMakeCCompilerABI.c.o -version -o /tmp/ccQ2G8ES.s] - ignore line: [GNU C17 (GCC) version 8.4.1 20200928 (Red Hat 8.4.1-1) (x86_64-redhat-linux)] - ignore line: [ compiled by GNU C version 8.4.1 20200928 (Red Hat 8.4.1-1) GMP version 6.1.2 MPFR version 3.1.6-p2 MPC version 1.0.2 isl version isl-0.16.1-GMP] - ignore line: [] - ignore line: [warning: MPC header version 1.0.2 differs from library version 1.1.0.] - ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] - ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/8/include-fixed"] - ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/8/../../../../x86_64-redhat-linux/include"] - ignore line: [#include "..." search starts here:] - ignore line: [#include <...> search starts here:] - ignore line: [ /usr/lib/gcc/x86_64-redhat-linux/8/include] - ignore line: [ /usr/local/include] - ignore line: [ /usr/include] - ignore line: [End of search list.] - ignore line: [GNU C17 (GCC) version 8.4.1 20200928 (Red Hat 8.4.1-1) (x86_64-redhat-linux)] - ignore line: [ compiled by GNU C version 8.4.1 20200928 (Red Hat 8.4.1-1) GMP version 6.1.2 MPFR version 3.1.6-p2 MPC version 1.0.2 isl version isl-0.16.1-GMP] - ignore line: [] - ignore line: [warning: MPC header version 1.0.2 differs from library version 1.1.0.] - ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] - ignore line: [Compiler executable checksum: 4200654a8a5e4de8e22bfb5ed3a1f615] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_194bc.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64'] - ignore line: [ as -v --64 -o CMakeFiles/cmTC_194bc.dir/CMakeCCompilerABI.c.o /tmp/ccQ2G8ES.s] - ignore line: [GNU assembler version 2.30 (x86_64-redhat-linux) using BFD version version 2.30-93.el8] - ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-redhat-linux/8/:/usr/libexec/gcc/x86_64-redhat-linux/8/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/8/:/usr/lib/gcc/x86_64-redhat-linux/] - ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/8/:/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/usr/lib/gcc/x86_64-redhat-linux/8/../../../:/lib/:/usr/lib/] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_194bc.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64'] - ignore line: [Linking C executable cmTC_194bc] - ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_194bc.dir/link.txt --verbose=1] - ignore line: [/usr/bin/cc -v -rdynamic CMakeFiles/cmTC_194bc.dir/CMakeCCompilerABI.c.o -o cmTC_194bc ] - ignore line: [Using built-in specs.] - ignore line: [COLLECT_GCC=/usr/bin/cc] - ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/8/lto-wrapper] - ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none] - ignore line: [OFFLOAD_TARGET_DEFAULT=1] - ignore line: [Target: x86_64-redhat-linux] - ignore line: [Configured with: ../configure --enable-bootstrap --enable-languages=c c++ fortran lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --disable-libmpx --enable-offload-targets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --enable-cet --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux] - ignore line: [Thread model: posix] - ignore line: [gcc version 8.4.1 20200928 (Red Hat 8.4.1-1) (GCC) ] - ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-redhat-linux/8/:/usr/libexec/gcc/x86_64-redhat-linux/8/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/8/:/usr/lib/gcc/x86_64-redhat-linux/] - ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/8/:/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/usr/lib/gcc/x86_64-redhat-linux/8/../../../:/lib/:/usr/lib/] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_194bc' '-mtune=generic' '-march=x86-64'] - link line: [ /usr/libexec/gcc/x86_64-redhat-linux/8/collect2 -plugin /usr/libexec/gcc/x86_64-redhat-linux/8/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-redhat-linux/8/lto-wrapper -plugin-opt=-fresolution=/tmp/ccStT1og.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 --build-id --no-add-needed --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTC_194bc /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/8/crtbegin.o -L/usr/lib/gcc/x86_64-redhat-linux/8 -L/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/8/../../.. CMakeFiles/cmTC_194bc.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-redhat-linux/8/crtend.o /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crtn.o] - arg [/usr/libexec/gcc/x86_64-redhat-linux/8/collect2] ==> ignore - arg [-plugin] ==> ignore - arg [/usr/libexec/gcc/x86_64-redhat-linux/8/liblto_plugin.so] ==> ignore - arg [-plugin-opt=/usr/libexec/gcc/x86_64-redhat-linux/8/lto-wrapper] ==> ignore - arg [-plugin-opt=-fresolution=/tmp/ccStT1og.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 [--build-id] ==> ignore - arg [--no-add-needed] ==> ignore - arg [--eh-frame-hdr] ==> ignore - arg [--hash-style=gnu] ==> ignore - arg [-m] ==> ignore - arg [elf_x86_64] ==> ignore - arg [-export-dynamic] ==> ignore - arg [-dynamic-linker] ==> ignore - arg [/lib64/ld-linux-x86-64.so.2] ==> ignore - arg [-o] ==> ignore - arg [cmTC_194bc] ==> ignore - arg [/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o] ==> ignore - arg [/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crti.o] ==> ignore - arg [/usr/lib/gcc/x86_64-redhat-linux/8/crtbegin.o] ==> ignore - arg [-L/usr/lib/gcc/x86_64-redhat-linux/8] ==> dir [/usr/lib/gcc/x86_64-redhat-linux/8] - arg [-L/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64] ==> dir [/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64] - arg [-L/lib/../lib64] ==> dir [/lib/../lib64] - arg [-L/usr/lib/../lib64] ==> dir [/usr/lib/../lib64] - arg [-L/usr/lib/gcc/x86_64-redhat-linux/8/../../..] ==> dir [/usr/lib/gcc/x86_64-redhat-linux/8/../../..] - arg [CMakeFiles/cmTC_194bc.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-redhat-linux/8/crtend.o] ==> ignore - arg [/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crtn.o] ==> ignore - collapse library dir [/usr/lib/gcc/x86_64-redhat-linux/8] ==> [/usr/lib/gcc/x86_64-redhat-linux/8] - collapse library dir [/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64] ==> [/usr/lib64] - collapse library dir [/lib/../lib64] ==> [/lib64] - collapse library dir [/usr/lib/../lib64] ==> [/usr/lib64] - collapse library dir [/usr/lib/gcc/x86_64-redhat-linux/8/../../..] ==> [/usr/lib] - implicit libs: [gcc;gcc_s;c;gcc;gcc_s] - implicit dirs: [/usr/lib/gcc/x86_64-redhat-linux/8;/usr/lib64;/lib64;/usr/lib] - implicit fwks: [] - - -Detecting CXX compiler ABI info compiled with the following output: -Change Dir: /global/projects/villas/node/lib/nodes/go/test/build/CMakeFiles/CMakeTmp - -Run Build Command(s):/usr/bin/gmake cmTC_bce9b/fast && /usr/bin/gmake -f CMakeFiles/cmTC_bce9b.dir/build.make CMakeFiles/cmTC_bce9b.dir/build -gmake[1]: Entering directory '/global/projects/villas/node/lib/nodes/go/test/build/CMakeFiles/CMakeTmp' -Building CXX object CMakeFiles/cmTC_bce9b.dir/CMakeCXXCompilerABI.cpp.o -/usr/bin/c++ -v -o CMakeFiles/cmTC_bce9b.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp -Using built-in specs. -COLLECT_GCC=/usr/bin/c++ -OFFLOAD_TARGET_NAMES=nvptx-none -OFFLOAD_TARGET_DEFAULT=1 -Target: x86_64-redhat-linux -Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --disable-libmpx --enable-offload-targets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --enable-cet --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux -Thread model: posix -gcc version 8.4.1 20200928 (Red Hat 8.4.1-1) (GCC) -COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_bce9b.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' - /usr/libexec/gcc/x86_64-redhat-linux/8/cc1plus -quiet -v -D_GNU_SOURCE /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpbase CMakeCXXCompilerABI.cpp -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_bce9b.dir/CMakeCXXCompilerABI.cpp.o -version -o /tmp/ccT60iIG.s -GNU C++14 (GCC) version 8.4.1 20200928 (Red Hat 8.4.1-1) (x86_64-redhat-linux) - compiled by GNU C version 8.4.1 20200928 (Red Hat 8.4.1-1), GMP version 6.1.2, MPFR version 3.1.6-p2, MPC version 1.0.2, isl version isl-0.16.1-GMP - -warning: MPC header version 1.0.2 differs from library version 1.1.0. -GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 -ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/8/include-fixed" -ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/8/../../../../x86_64-redhat-linux/include" -#include "..." search starts here: -#include <...> search starts here: - /usr/lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8 - /usr/lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/x86_64-redhat-linux - /usr/lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/backward - /usr/lib/gcc/x86_64-redhat-linux/8/include - /usr/local/include - /usr/include -End of search list. -GNU C++14 (GCC) version 8.4.1 20200928 (Red Hat 8.4.1-1) (x86_64-redhat-linux) - compiled by GNU C version 8.4.1 20200928 (Red Hat 8.4.1-1), GMP version 6.1.2, MPFR version 3.1.6-p2, MPC version 1.0.2, isl version isl-0.16.1-GMP - -warning: MPC header version 1.0.2 differs from library version 1.1.0. -GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 -Compiler executable checksum: b52810184d801135c3a3dd4ab4785304 -COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_bce9b.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' - as -v --64 -o CMakeFiles/cmTC_bce9b.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccT60iIG.s -GNU assembler version 2.30 (x86_64-redhat-linux) using BFD version version 2.30-93.el8 -COMPILER_PATH=/usr/libexec/gcc/x86_64-redhat-linux/8/:/usr/libexec/gcc/x86_64-redhat-linux/8/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/8/:/usr/lib/gcc/x86_64-redhat-linux/ -LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/8/:/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/usr/lib/gcc/x86_64-redhat-linux/8/../../../:/lib/:/usr/lib/ -COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_bce9b.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' -Linking CXX executable cmTC_bce9b -/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_bce9b.dir/link.txt --verbose=1 -/usr/bin/c++ -v -rdynamic CMakeFiles/cmTC_bce9b.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_bce9b -Using built-in specs. -COLLECT_GCC=/usr/bin/c++ -COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/8/lto-wrapper -OFFLOAD_TARGET_NAMES=nvptx-none -OFFLOAD_TARGET_DEFAULT=1 -Target: x86_64-redhat-linux -Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --disable-libmpx --enable-offload-targets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --enable-cet --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux -Thread model: posix -gcc version 8.4.1 20200928 (Red Hat 8.4.1-1) (GCC) -COMPILER_PATH=/usr/libexec/gcc/x86_64-redhat-linux/8/:/usr/libexec/gcc/x86_64-redhat-linux/8/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/8/:/usr/lib/gcc/x86_64-redhat-linux/ -LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/8/:/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/usr/lib/gcc/x86_64-redhat-linux/8/../../../:/lib/:/usr/lib/ -COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_bce9b' '-shared-libgcc' '-mtune=generic' '-march=x86-64' - /usr/libexec/gcc/x86_64-redhat-linux/8/collect2 -plugin /usr/libexec/gcc/x86_64-redhat-linux/8/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-redhat-linux/8/lto-wrapper -plugin-opt=-fresolution=/tmp/ccMOKZ64.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 --build-id --no-add-needed --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTC_bce9b /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/8/crtbegin.o -L/usr/lib/gcc/x86_64-redhat-linux/8 -L/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/8/../../.. CMakeFiles/cmTC_bce9b.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-redhat-linux/8/crtend.o /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crtn.o -COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_bce9b' '-shared-libgcc' '-mtune=generic' '-march=x86-64' -gmake[1]: Leaving directory '/global/projects/villas/node/lib/nodes/go/test/build/CMakeFiles/CMakeTmp' - - - -Parsed CXX implicit include dir info from above output: rv=done - found start of include info - found start of implicit include info - add: [/usr/lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8] - add: [/usr/lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/x86_64-redhat-linux] - add: [/usr/lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/backward] - add: [/usr/lib/gcc/x86_64-redhat-linux/8/include] - add: [/usr/local/include] - add: [/usr/include] - end of search list found - collapse include dir [/usr/lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8] ==> [/usr/include/c++/8] - collapse include dir [/usr/lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/x86_64-redhat-linux] ==> [/usr/include/c++/8/x86_64-redhat-linux] - collapse include dir [/usr/lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/backward] ==> [/usr/include/c++/8/backward] - collapse include dir [/usr/lib/gcc/x86_64-redhat-linux/8/include] ==> [/usr/lib/gcc/x86_64-redhat-linux/8/include] - collapse include dir [/usr/local/include] ==> [/usr/local/include] - collapse include dir [/usr/include] ==> [/usr/include] - implicit include dirs: [/usr/include/c++/8;/usr/include/c++/8/x86_64-redhat-linux;/usr/include/c++/8/backward;/usr/lib/gcc/x86_64-redhat-linux/8/include;/usr/local/include;/usr/include] - - -Parsed CXX implicit link information from above output: - link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] - ignore line: [Change Dir: /global/projects/villas/node/lib/nodes/go/test/build/CMakeFiles/CMakeTmp] - ignore line: [] - ignore line: [Run Build Command(s):/usr/bin/gmake cmTC_bce9b/fast && /usr/bin/gmake -f CMakeFiles/cmTC_bce9b.dir/build.make CMakeFiles/cmTC_bce9b.dir/build] - ignore line: [gmake[1]: Entering directory '/global/projects/villas/node/lib/nodes/go/test/build/CMakeFiles/CMakeTmp'] - ignore line: [Building CXX object CMakeFiles/cmTC_bce9b.dir/CMakeCXXCompilerABI.cpp.o] - ignore line: [/usr/bin/c++ -v -o CMakeFiles/cmTC_bce9b.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp] - ignore line: [Using built-in specs.] - ignore line: [COLLECT_GCC=/usr/bin/c++] - ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none] - ignore line: [OFFLOAD_TARGET_DEFAULT=1] - ignore line: [Target: x86_64-redhat-linux] - ignore line: [Configured with: ../configure --enable-bootstrap --enable-languages=c c++ fortran lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --disable-libmpx --enable-offload-targets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --enable-cet --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux] - ignore line: [Thread model: posix] - ignore line: [gcc version 8.4.1 20200928 (Red Hat 8.4.1-1) (GCC) ] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_bce9b.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] - ignore line: [ /usr/libexec/gcc/x86_64-redhat-linux/8/cc1plus -quiet -v -D_GNU_SOURCE /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpbase CMakeCXXCompilerABI.cpp -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_bce9b.dir/CMakeCXXCompilerABI.cpp.o -version -o /tmp/ccT60iIG.s] - ignore line: [GNU C++14 (GCC) version 8.4.1 20200928 (Red Hat 8.4.1-1) (x86_64-redhat-linux)] - ignore line: [ compiled by GNU C version 8.4.1 20200928 (Red Hat 8.4.1-1) GMP version 6.1.2 MPFR version 3.1.6-p2 MPC version 1.0.2 isl version isl-0.16.1-GMP] - ignore line: [] - ignore line: [warning: MPC header version 1.0.2 differs from library version 1.1.0.] - ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] - ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/8/include-fixed"] - ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-redhat-linux/8/../../../../x86_64-redhat-linux/include"] - ignore line: [#include "..." search starts here:] - ignore line: [#include <...> search starts here:] - ignore line: [ /usr/lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8] - ignore line: [ /usr/lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/x86_64-redhat-linux] - ignore line: [ /usr/lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/backward] - ignore line: [ /usr/lib/gcc/x86_64-redhat-linux/8/include] - ignore line: [ /usr/local/include] - ignore line: [ /usr/include] - ignore line: [End of search list.] - ignore line: [GNU C++14 (GCC) version 8.4.1 20200928 (Red Hat 8.4.1-1) (x86_64-redhat-linux)] - ignore line: [ compiled by GNU C version 8.4.1 20200928 (Red Hat 8.4.1-1) GMP version 6.1.2 MPFR version 3.1.6-p2 MPC version 1.0.2 isl version isl-0.16.1-GMP] - ignore line: [] - ignore line: [warning: MPC header version 1.0.2 differs from library version 1.1.0.] - ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] - ignore line: [Compiler executable checksum: b52810184d801135c3a3dd4ab4785304] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_bce9b.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] - ignore line: [ as -v --64 -o CMakeFiles/cmTC_bce9b.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccT60iIG.s] - ignore line: [GNU assembler version 2.30 (x86_64-redhat-linux) using BFD version version 2.30-93.el8] - ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-redhat-linux/8/:/usr/libexec/gcc/x86_64-redhat-linux/8/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/8/:/usr/lib/gcc/x86_64-redhat-linux/] - ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/8/:/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/usr/lib/gcc/x86_64-redhat-linux/8/../../../:/lib/:/usr/lib/] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_bce9b.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] - ignore line: [Linking CXX executable cmTC_bce9b] - ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_bce9b.dir/link.txt --verbose=1] - ignore line: [/usr/bin/c++ -v -rdynamic CMakeFiles/cmTC_bce9b.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_bce9b ] - ignore line: [Using built-in specs.] - ignore line: [COLLECT_GCC=/usr/bin/c++] - ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/8/lto-wrapper] - ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none] - ignore line: [OFFLOAD_TARGET_DEFAULT=1] - ignore line: [Target: x86_64-redhat-linux] - ignore line: [Configured with: ../configure --enable-bootstrap --enable-languages=c c++ fortran lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl --disable-libmpx --enable-offload-targets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --enable-cet --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux] - ignore line: [Thread model: posix] - ignore line: [gcc version 8.4.1 20200928 (Red Hat 8.4.1-1) (GCC) ] - ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-redhat-linux/8/:/usr/libexec/gcc/x86_64-redhat-linux/8/:/usr/libexec/gcc/x86_64-redhat-linux/:/usr/lib/gcc/x86_64-redhat-linux/8/:/usr/lib/gcc/x86_64-redhat-linux/] - ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-redhat-linux/8/:/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/usr/lib/gcc/x86_64-redhat-linux/8/../../../:/lib/:/usr/lib/] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_bce9b' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] - link line: [ /usr/libexec/gcc/x86_64-redhat-linux/8/collect2 -plugin /usr/libexec/gcc/x86_64-redhat-linux/8/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-redhat-linux/8/lto-wrapper -plugin-opt=-fresolution=/tmp/ccMOKZ64.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 --build-id --no-add-needed --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o cmTC_bce9b /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/8/crtbegin.o -L/usr/lib/gcc/x86_64-redhat-linux/8 -L/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/8/../../.. CMakeFiles/cmTC_bce9b.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-redhat-linux/8/crtend.o /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crtn.o] - arg [/usr/libexec/gcc/x86_64-redhat-linux/8/collect2] ==> ignore - arg [-plugin] ==> ignore - arg [/usr/libexec/gcc/x86_64-redhat-linux/8/liblto_plugin.so] ==> ignore - arg [-plugin-opt=/usr/libexec/gcc/x86_64-redhat-linux/8/lto-wrapper] ==> ignore - arg [-plugin-opt=-fresolution=/tmp/ccMOKZ64.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 [--build-id] ==> ignore - arg [--no-add-needed] ==> ignore - arg [--eh-frame-hdr] ==> ignore - arg [--hash-style=gnu] ==> ignore - arg [-m] ==> ignore - arg [elf_x86_64] ==> ignore - arg [-export-dynamic] ==> ignore - arg [-dynamic-linker] ==> ignore - arg [/lib64/ld-linux-x86-64.so.2] ==> ignore - arg [-o] ==> ignore - arg [cmTC_bce9b] ==> ignore - arg [/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o] ==> ignore - arg [/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crti.o] ==> ignore - arg [/usr/lib/gcc/x86_64-redhat-linux/8/crtbegin.o] ==> ignore - arg [-L/usr/lib/gcc/x86_64-redhat-linux/8] ==> dir [/usr/lib/gcc/x86_64-redhat-linux/8] - arg [-L/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64] ==> dir [/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64] - arg [-L/lib/../lib64] ==> dir [/lib/../lib64] - arg [-L/usr/lib/../lib64] ==> dir [/usr/lib/../lib64] - arg [-L/usr/lib/gcc/x86_64-redhat-linux/8/../../..] ==> dir [/usr/lib/gcc/x86_64-redhat-linux/8/../../..] - arg [CMakeFiles/cmTC_bce9b.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-redhat-linux/8/crtend.o] ==> ignore - arg [/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crtn.o] ==> ignore - collapse library dir [/usr/lib/gcc/x86_64-redhat-linux/8] ==> [/usr/lib/gcc/x86_64-redhat-linux/8] - collapse library dir [/usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64] ==> [/usr/lib64] - collapse library dir [/lib/../lib64] ==> [/lib64] - collapse library dir [/usr/lib/../lib64] ==> [/usr/lib64] - collapse library dir [/usr/lib/gcc/x86_64-redhat-linux/8/../../..] ==> [/usr/lib] - implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc] - implicit dirs: [/usr/lib/gcc/x86_64-redhat-linux/8;/usr/lib64;/lib64;/usr/lib] - implicit fwks: [] - - diff --git a/lib/nodes/go/test/build/CMakeFiles/CMakeRuleHashes.txt b/lib/nodes/go/test/build/CMakeFiles/CMakeRuleHashes.txt deleted file mode 100644 index 859133061..000000000 --- a/lib/nodes/go/test/build/CMakeFiles/CMakeRuleHashes.txt +++ /dev/null @@ -1,3 +0,0 @@ -# Hashes of file build rules. -e95f75a28652e6ca21e4beba0a9f3dc4 go/CMakeFiles/shim_go -fa0c0014583ef68ee4d523d5a4786b76 go/test.so diff --git a/lib/nodes/go/test/build/CMakeFiles/Makefile.cmake b/lib/nodes/go/test/build/CMakeFiles/Makefile.cmake deleted file mode 100644 index 3cd514faf..000000000 --- a/lib/nodes/go/test/build/CMakeFiles/Makefile.cmake +++ /dev/null @@ -1,124 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.18 - -# 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.18.2/CMakeCCompiler.cmake" - "CMakeFiles/3.18.2/CMakeCXXCompiler.cmake" - "CMakeFiles/3.18.2/CMakeSystem.cmake" - "../go/CMakeLists.txt" - "/usr/share/cmake/Modules/CMakeCCompiler.cmake.in" - "/usr/share/cmake/Modules/CMakeCCompilerABI.c" - "/usr/share/cmake/Modules/CMakeCInformation.cmake" - "/usr/share/cmake/Modules/CMakeCXXCompiler.cmake.in" - "/usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp" - "/usr/share/cmake/Modules/CMakeCXXInformation.cmake" - "/usr/share/cmake/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake" - "/usr/share/cmake/Modules/CMakeCommonLanguageInclude.cmake" - "/usr/share/cmake/Modules/CMakeCompilerIdDetection.cmake" - "/usr/share/cmake/Modules/CMakeDetermineCCompiler.cmake" - "/usr/share/cmake/Modules/CMakeDetermineCXXCompiler.cmake" - "/usr/share/cmake/Modules/CMakeDetermineCompileFeatures.cmake" - "/usr/share/cmake/Modules/CMakeDetermineCompiler.cmake" - "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake" - "/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake" - "/usr/share/cmake/Modules/CMakeDetermineSystem.cmake" - "/usr/share/cmake/Modules/CMakeFindBinUtils.cmake" - "/usr/share/cmake/Modules/CMakeGenericSystem.cmake" - "/usr/share/cmake/Modules/CMakeInitializeConfigs.cmake" - "/usr/share/cmake/Modules/CMakeLanguageInformation.cmake" - "/usr/share/cmake/Modules/CMakeParseImplicitIncludeInfo.cmake" - "/usr/share/cmake/Modules/CMakeParseImplicitLinkInfo.cmake" - "/usr/share/cmake/Modules/CMakeSystem.cmake.in" - "/usr/share/cmake/Modules/CMakeSystemSpecificInformation.cmake" - "/usr/share/cmake/Modules/CMakeSystemSpecificInitialize.cmake" - "/usr/share/cmake/Modules/CMakeTestCCompiler.cmake" - "/usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake" - "/usr/share/cmake/Modules/CMakeTestCompilerCommon.cmake" - "/usr/share/cmake/Modules/CMakeUnixFindMake.cmake" - "/usr/share/cmake/Modules/Compiler/ADSP-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/ARMCC-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/ARMClang-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/AppleClang-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/Borland-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/Bruce-C-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/CMakeCommonCompilerMacros.cmake" - "/usr/share/cmake/Modules/Compiler/Clang-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" - "/usr/share/cmake/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/Compaq-C-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/Cray-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/GHS-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/GNU-C-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/GNU-C.cmake" - "/usr/share/cmake/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/GNU-CXX.cmake" - "/usr/share/cmake/Modules/Compiler/GNU-FindBinUtils.cmake" - "/usr/share/cmake/Modules/Compiler/GNU.cmake" - "/usr/share/cmake/Modules/Compiler/HP-C-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/HP-CXX-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/IAR-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" - "/usr/share/cmake/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" - "/usr/share/cmake/Modules/Compiler/Intel-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/MIPSpro-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/MSVC-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/NVIDIA-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/PGI-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/PathScale-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/SCO-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/SDCC-C-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/SunPro-C-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/TI-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/Watcom-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/XL-C-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/XL-CXX-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/XLClang-C-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/zOS-C-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake" - "/usr/share/cmake/Modules/Internal/CMakeCheckCompilerFlag.cmake" - "/usr/share/cmake/Modules/Internal/FeatureTesting.cmake" - "/usr/share/cmake/Modules/Platform/Linux-Determine-CXX.cmake" - "/usr/share/cmake/Modules/Platform/Linux-GNU-C.cmake" - "/usr/share/cmake/Modules/Platform/Linux-GNU-CXX.cmake" - "/usr/share/cmake/Modules/Platform/Linux-GNU.cmake" - "/usr/share/cmake/Modules/Platform/Linux.cmake" - "/usr/share/cmake/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/3.18.2/CMakeSystem.cmake" - "CMakeFiles/3.18.2/CMakeCCompiler.cmake" - "CMakeFiles/3.18.2/CMakeCXXCompiler.cmake" - "CMakeFiles/3.18.2/CMakeCCompiler.cmake" - "CMakeFiles/3.18.2/CMakeCXXCompiler.cmake" - "CMakeFiles/CMakeDirectoryInformation.cmake" - "go/CMakeFiles/CMakeDirectoryInformation.cmake" - ) - -# Dependency information for all targets: -set(CMAKE_DEPEND_INFO_FILES - "CMakeFiles/test.dir/DependInfo.cmake" - "go/CMakeFiles/shim_go.dir/DependInfo.cmake" - ) diff --git a/lib/nodes/go/test/build/CMakeFiles/Makefile2 b/lib/nodes/go/test/build/CMakeFiles/Makefile2 deleted file mode 100644 index 6b4a4d957..000000000 --- a/lib/nodes/go/test/build/CMakeFiles/Makefile2 +++ /dev/null @@ -1,172 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.18 - -# Default target executed when no arguments are given to make. -default_target: all - -.PHONY : default_target - -#============================================================================= -# Special targets provided by cmake. - -# Disable implicit rules so canonical targets will work. -.SUFFIXES: - - -# Disable VCS-based implicit rules. -% : %,v - - -# Disable VCS-based implicit rules. -% : RCS/% - - -# Disable VCS-based implicit rules. -% : RCS/%,v - - -# Disable VCS-based implicit rules. -% : SCCS/s.% - - -# Disable VCS-based implicit rules. -% : s.% - - -.SUFFIXES: .hpux_make_needs_suffix_list - - -# Command-line flag to silence nested $(MAKE). -$(VERBOSE)MAKESILENT = -s - -#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/bin/cmake - -# The command to remove a file. -RM = /usr/bin/cmake -E rm -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /global/projects/villas/node/lib/nodes/go/test - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /global/projects/villas/node/lib/nodes/go/test/build - -#============================================================================= -# Directory level rules for the build root directory - -# The main recursive "all" target. -all: CMakeFiles/test.dir/all -all: go/all - -.PHONY : all - -# The main recursive "preinstall" target. -preinstall: go/preinstall - -.PHONY : preinstall - -# The main recursive "clean" target. -clean: CMakeFiles/test.dir/clean -clean: go/clean - -.PHONY : clean - -#============================================================================= -# Directory level rules for directory go - -# Recursive "all" directory target. -go/all: - -.PHONY : go/all - -# Recursive "preinstall" directory target. -go/preinstall: - -.PHONY : go/preinstall - -# Recursive "clean" directory target. -go/clean: go/CMakeFiles/shim_go.dir/clean - -.PHONY : go/clean - -#============================================================================= -# Target rules for target CMakeFiles/test.dir - -# All Build rule for target. -CMakeFiles/test.dir/all: go/CMakeFiles/shim_go.dir/all - $(MAKE) $(MAKESILENT) -f CMakeFiles/test.dir/build.make CMakeFiles/test.dir/depend - $(MAKE) $(MAKESILENT) -f CMakeFiles/test.dir/build.make CMakeFiles/test.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/global/projects/villas/node/lib/nodes/go/test/build/CMakeFiles --progress-num=2,3 "Built target test" -.PHONY : CMakeFiles/test.dir/all - -# Build rule for subdir invocation for target. -CMakeFiles/test.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /global/projects/villas/node/lib/nodes/go/test/build/CMakeFiles 3 - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/test.dir/all - $(CMAKE_COMMAND) -E cmake_progress_start /global/projects/villas/node/lib/nodes/go/test/build/CMakeFiles 0 -.PHONY : CMakeFiles/test.dir/rule - -# Convenience name for target. -test: CMakeFiles/test.dir/rule - -.PHONY : test - -# clean rule for target. -CMakeFiles/test.dir/clean: - $(MAKE) $(MAKESILENT) -f CMakeFiles/test.dir/build.make CMakeFiles/test.dir/clean -.PHONY : CMakeFiles/test.dir/clean - -#============================================================================= -# Target rules for target go/CMakeFiles/shim_go.dir - -# All Build rule for target. -go/CMakeFiles/shim_go.dir/all: - $(MAKE) $(MAKESILENT) -f go/CMakeFiles/shim_go.dir/build.make go/CMakeFiles/shim_go.dir/depend - $(MAKE) $(MAKESILENT) -f go/CMakeFiles/shim_go.dir/build.make go/CMakeFiles/shim_go.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/global/projects/villas/node/lib/nodes/go/test/build/CMakeFiles --progress-num=1 "Built target shim_go" -.PHONY : go/CMakeFiles/shim_go.dir/all - -# Build rule for subdir invocation for target. -go/CMakeFiles/shim_go.dir/rule: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /global/projects/villas/node/lib/nodes/go/test/build/CMakeFiles 1 - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 go/CMakeFiles/shim_go.dir/all - $(CMAKE_COMMAND) -E cmake_progress_start /global/projects/villas/node/lib/nodes/go/test/build/CMakeFiles 0 -.PHONY : go/CMakeFiles/shim_go.dir/rule - -# Convenience name for target. -shim_go: go/CMakeFiles/shim_go.dir/rule - -.PHONY : shim_go - -# clean rule for target. -go/CMakeFiles/shim_go.dir/clean: - $(MAKE) $(MAKESILENT) -f go/CMakeFiles/shim_go.dir/build.make go/CMakeFiles/shim_go.dir/clean -.PHONY : go/CMakeFiles/shim_go.dir/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/lib/nodes/go/test/build/CMakeFiles/TargetDirectories.txt b/lib/nodes/go/test/build/CMakeFiles/TargetDirectories.txt deleted file mode 100644 index db3796e52..000000000 --- a/lib/nodes/go/test/build/CMakeFiles/TargetDirectories.txt +++ /dev/null @@ -1,6 +0,0 @@ -/global/projects/villas/node/lib/nodes/go/test/build/CMakeFiles/rebuild_cache.dir -/global/projects/villas/node/lib/nodes/go/test/build/CMakeFiles/test.dir -/global/projects/villas/node/lib/nodes/go/test/build/CMakeFiles/edit_cache.dir -/global/projects/villas/node/lib/nodes/go/test/build/go/CMakeFiles/rebuild_cache.dir -/global/projects/villas/node/lib/nodes/go/test/build/go/CMakeFiles/shim_go.dir -/global/projects/villas/node/lib/nodes/go/test/build/go/CMakeFiles/edit_cache.dir diff --git a/lib/nodes/go/test/build/CMakeFiles/cmake.check_cache b/lib/nodes/go/test/build/CMakeFiles/cmake.check_cache deleted file mode 100644 index 3dccd7317..000000000 --- a/lib/nodes/go/test/build/CMakeFiles/cmake.check_cache +++ /dev/null @@ -1 +0,0 @@ -# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/lib/nodes/go/test/build/CMakeFiles/progress.marks b/lib/nodes/go/test/build/CMakeFiles/progress.marks deleted file mode 100644 index 00750edc0..000000000 --- a/lib/nodes/go/test/build/CMakeFiles/progress.marks +++ /dev/null @@ -1 +0,0 @@ -3 diff --git a/lib/nodes/go/test/build/CMakeFiles/test.dir/C.includecache b/lib/nodes/go/test/build/CMakeFiles/test.dir/C.includecache deleted file mode 100644 index 304e5e2f9..000000000 --- a/lib/nodes/go/test/build/CMakeFiles/test.dir/C.includecache +++ /dev/null @@ -1,18 +0,0 @@ -#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) - -#IncludeRegexScan: ^.*$ - -#IncludeRegexComplain: ^$ - -#IncludeRegexTransform: - -/global/projects/villas/node/lib/nodes/go/test/test.c -stdio.h -- -test.h -/global/projects/villas/node/lib/nodes/go/test/test.h - -go/test.h -stddef.h -- - diff --git a/lib/nodes/go/test/build/CMakeFiles/test.dir/DependInfo.cmake b/lib/nodes/go/test/build/CMakeFiles/test.dir/DependInfo.cmake deleted file mode 100644 index 33c31d609..000000000 --- a/lib/nodes/go/test/build/CMakeFiles/test.dir/DependInfo.cmake +++ /dev/null @@ -1,21 +0,0 @@ -# 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 - "/global/projects/villas/node/lib/nodes/go/test/test.c" "/global/projects/villas/node/lib/nodes/go/test/build/CMakeFiles/test.dir/test.c.o" - ) -set(CMAKE_C_COMPILER_ID "GNU") - -# The include file search paths: -set(CMAKE_C_TARGET_INCLUDE_PATH - "go" - ) - -# 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/lib/nodes/go/test/build/CMakeFiles/test.dir/build.make b/lib/nodes/go/test/build/CMakeFiles/test.dir/build.make deleted file mode 100644 index e7d58c6d4..000000000 --- a/lib/nodes/go/test/build/CMakeFiles/test.dir/build.make +++ /dev/null @@ -1,118 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.18 - -# Delete rule output on recipe failure. -.DELETE_ON_ERROR: - - -#============================================================================= -# Special targets provided by cmake. - -# Disable implicit rules so canonical targets will work. -.SUFFIXES: - - -# Disable VCS-based implicit rules. -% : %,v - - -# Disable VCS-based implicit rules. -% : RCS/% - - -# Disable VCS-based implicit rules. -% : RCS/%,v - - -# Disable VCS-based implicit rules. -% : SCCS/s.% - - -# Disable VCS-based implicit rules. -% : s.% - - -.SUFFIXES: .hpux_make_needs_suffix_list - - -# Command-line flag to silence nested $(MAKE). -$(VERBOSE)MAKESILENT = -s - -#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/bin/cmake - -# The command to remove a file. -RM = /usr/bin/cmake -E rm -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /global/projects/villas/node/lib/nodes/go/test - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /global/projects/villas/node/lib/nodes/go/test/build - -# Include any dependencies generated for this target. -include CMakeFiles/test.dir/depend.make - -# Include the progress variables for this target. -include CMakeFiles/test.dir/progress.make - -# Include the compile flags for this target's objects. -include CMakeFiles/test.dir/flags.make - -CMakeFiles/test.dir/test.c.o: CMakeFiles/test.dir/flags.make -CMakeFiles/test.dir/test.c.o: ../test.c - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/global/projects/villas/node/lib/nodes/go/test/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building C object CMakeFiles/test.dir/test.c.o" - /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -o CMakeFiles/test.dir/test.c.o -c /global/projects/villas/node/lib/nodes/go/test/test.c - -CMakeFiles/test.dir/test.c.i: cmake_force - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing C source to CMakeFiles/test.dir/test.c.i" - /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /global/projects/villas/node/lib/nodes/go/test/test.c > CMakeFiles/test.dir/test.c.i - -CMakeFiles/test.dir/test.c.s: cmake_force - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling C source to assembly CMakeFiles/test.dir/test.c.s" - /usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /global/projects/villas/node/lib/nodes/go/test/test.c -o CMakeFiles/test.dir/test.c.s - -# Object files for target test -test_OBJECTS = \ -"CMakeFiles/test.dir/test.c.o" - -# External object files for target test -test_EXTERNAL_OBJECTS = - -test: CMakeFiles/test.dir/test.c.o -test: CMakeFiles/test.dir/build.make -test: go/test.so -test: CMakeFiles/test.dir/link.txt - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/global/projects/villas/node/lib/nodes/go/test/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking C executable test" - $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/test.dir/link.txt --verbose=$(VERBOSE) - -# Rule to build all files generated by this target. -CMakeFiles/test.dir/build: test - -.PHONY : CMakeFiles/test.dir/build - -CMakeFiles/test.dir/clean: - $(CMAKE_COMMAND) -P CMakeFiles/test.dir/cmake_clean.cmake -.PHONY : CMakeFiles/test.dir/clean - -CMakeFiles/test.dir/depend: - cd /global/projects/villas/node/lib/nodes/go/test/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /global/projects/villas/node/lib/nodes/go/test /global/projects/villas/node/lib/nodes/go/test /global/projects/villas/node/lib/nodes/go/test/build /global/projects/villas/node/lib/nodes/go/test/build /global/projects/villas/node/lib/nodes/go/test/build/CMakeFiles/test.dir/DependInfo.cmake --color=$(COLOR) -.PHONY : CMakeFiles/test.dir/depend - diff --git a/lib/nodes/go/test/build/CMakeFiles/test.dir/cmake_clean.cmake b/lib/nodes/go/test/build/CMakeFiles/test.dir/cmake_clean.cmake deleted file mode 100644 index b11d7054e..000000000 --- a/lib/nodes/go/test/build/CMakeFiles/test.dir/cmake_clean.cmake +++ /dev/null @@ -1,10 +0,0 @@ -file(REMOVE_RECURSE - "CMakeFiles/test.dir/test.c.o" - "test" - "test.pdb" -) - -# Per-language clean rules from dependency scanning. -foreach(lang C) - include(CMakeFiles/test.dir/cmake_clean_${lang}.cmake OPTIONAL) -endforeach() diff --git a/lib/nodes/go/test/build/CMakeFiles/test.dir/depend.internal b/lib/nodes/go/test/build/CMakeFiles/test.dir/depend.internal deleted file mode 100644 index 5a1200cfa..000000000 --- a/lib/nodes/go/test/build/CMakeFiles/test.dir/depend.internal +++ /dev/null @@ -1,6 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.18 - -CMakeFiles/test.dir/test.c.o - /global/projects/villas/node/lib/nodes/go/test/test.c - go/test.h diff --git a/lib/nodes/go/test/build/CMakeFiles/test.dir/depend.make b/lib/nodes/go/test/build/CMakeFiles/test.dir/depend.make deleted file mode 100644 index 0c69726bc..000000000 --- a/lib/nodes/go/test/build/CMakeFiles/test.dir/depend.make +++ /dev/null @@ -1,6 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.18 - -CMakeFiles/test.dir/test.c.o: ../test.c -CMakeFiles/test.dir/test.c.o: go/test.h - diff --git a/lib/nodes/go/test/build/CMakeFiles/test.dir/flags.make b/lib/nodes/go/test/build/CMakeFiles/test.dir/flags.make deleted file mode 100644 index 05235f075..000000000 --- a/lib/nodes/go/test/build/CMakeFiles/test.dir/flags.make +++ /dev/null @@ -1,10 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.18 - -# compile C with /usr/bin/cc -C_DEFINES = - -C_INCLUDES = -isystem /global/projects/villas/node/lib/nodes/go/test/build/go - -C_FLAGS = - diff --git a/lib/nodes/go/test/build/CMakeFiles/test.dir/link.txt b/lib/nodes/go/test/build/CMakeFiles/test.dir/link.txt deleted file mode 100644 index afd57cd7f..000000000 --- a/lib/nodes/go/test/build/CMakeFiles/test.dir/link.txt +++ /dev/null @@ -1 +0,0 @@ -/usr/bin/cc -rdynamic CMakeFiles/test.dir/test.c.o -o test go/test.so -lpthread diff --git a/lib/nodes/go/test/build/CMakeFiles/test.dir/progress.make b/lib/nodes/go/test/build/CMakeFiles/test.dir/progress.make deleted file mode 100644 index 251317162..000000000 --- a/lib/nodes/go/test/build/CMakeFiles/test.dir/progress.make +++ /dev/null @@ -1,3 +0,0 @@ -CMAKE_PROGRESS_1 = 2 -CMAKE_PROGRESS_2 = 3 - diff --git a/lib/nodes/go/test/build/CMakeFiles/test.dir/test.c.o b/lib/nodes/go/test/build/CMakeFiles/test.dir/test.c.o deleted file mode 100644 index ea60da3c302d89c5e120cb4dcd17efd7ee5fecdd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1760 zcmbu8&ubGw6vy9Ywe?3*Vi74+WG|Ig%#wtnsRxM(u{lVUU=dGcnrvujvXSh7(TfK` z2)+0xc<|uKv$q}u#lOLe7r}!Up$88_ec$X%J5Dwr`ohe-_nG%&_RZv3?au9#zQedP}V{MC;Y+4R3jUV{^qT`Kx}xE9Q&&{93W(EjNOeR~Itoxxxyv z5S@<~a-KHG8D^cu^z5mZ{DBvlV?bJ%Zp~$1q^g;j)E0XHBnx_Tf_@w(?YfDbBXaqd zBra!45|>UUVa_r;g(n}_rI`tTc+MN=9Dh5r43F%DH_?SD{L&OoGKi$#q@L)6v=KbM z&t{P@SGs~84LYH0qs$y87Ic8`m3|$@g1iv$vph7v0?1vN>yFk2L09-P7)tV6LJIP?qlo-LKQ@~EUM~oFFYL>} z=ck;Dq-gH41Hyuxt@c3lf}=YBsdyZZH*3FyGBb$2|JaIswT^X>2YO!SVaiZ7DZcR7}Z;g{u3naf6kl`}0&o^*x~vh}H3$<2-h4Mzo*~ nT2d?itEYL`@nH7dF`|1a=@JY>?C(Fvdr9#n1%(j{)sFuSKdYn@ diff --git a/lib/nodes/go/test/build/Makefile b/lib/nodes/go/test/build/Makefile deleted file mode 100644 index 21813ce5f..000000000 --- a/lib/nodes/go/test/build/Makefile +++ /dev/null @@ -1,211 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.18 - -# 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: - - -# Disable VCS-based implicit rules. -% : %,v - - -# Disable VCS-based implicit rules. -% : RCS/% - - -# Disable VCS-based implicit rules. -% : RCS/%,v - - -# Disable VCS-based implicit rules. -% : SCCS/s.% - - -# Disable VCS-based implicit rules. -% : s.% - - -.SUFFIXES: .hpux_make_needs_suffix_list - - -# Command-line flag to silence nested $(MAKE). -$(VERBOSE)MAKESILENT = -s - -#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/bin/cmake - -# The command to remove a file. -RM = /usr/bin/cmake -E rm -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /global/projects/villas/node/lib/nodes/go/test - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /global/projects/villas/node/lib/nodes/go/test/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/bin/cmake --regenerate-during-build -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 "Running CMake cache editor..." - /usr/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) -.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 /global/projects/villas/node/lib/nodes/go/test/build/CMakeFiles /global/projects/villas/node/lib/nodes/go/test/build//CMakeFiles/progress.marks - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all - $(CMAKE_COMMAND) -E cmake_progress_start /global/projects/villas/node/lib/nodes/go/test/build/CMakeFiles 0 -.PHONY : all - -# The main clean target -clean: - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean -.PHONY : clean - -# The main clean target -clean/fast: clean - -.PHONY : clean/fast - -# Prepare targets for installation. -preinstall: all - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall -.PHONY : preinstall - -# Prepare targets for installation. -preinstall/fast: - $(MAKE) $(MAKESILENT) -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 test - -# Build rule for target. -test: cmake_check_build_system - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 test -.PHONY : test - -# fast build rule for target. -test/fast: - $(MAKE) $(MAKESILENT) -f CMakeFiles/test.dir/build.make CMakeFiles/test.dir/build -.PHONY : test/fast - -#============================================================================= -# Target rules for targets named shim_go - -# Build rule for target. -shim_go: cmake_check_build_system - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 shim_go -.PHONY : shim_go - -# fast build rule for target. -shim_go/fast: - $(MAKE) $(MAKESILENT) -f go/CMakeFiles/shim_go.dir/build.make go/CMakeFiles/shim_go.dir/build -.PHONY : shim_go/fast - -test.o: test.c.o - -.PHONY : test.o - -# target to build an object file -test.c.o: - $(MAKE) $(MAKESILENT) -f CMakeFiles/test.dir/build.make CMakeFiles/test.dir/test.c.o -.PHONY : test.c.o - -test.i: test.c.i - -.PHONY : test.i - -# target to preprocess a source file -test.c.i: - $(MAKE) $(MAKESILENT) -f CMakeFiles/test.dir/build.make CMakeFiles/test.dir/test.c.i -.PHONY : test.c.i - -test.s: test.c.s - -.PHONY : test.s - -# target to generate assembly for a file -test.c.s: - $(MAKE) $(MAKESILENT) -f CMakeFiles/test.dir/build.make CMakeFiles/test.dir/test.c.s -.PHONY : test.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 "... edit_cache" - @echo "... rebuild_cache" - @echo "... shim_go" - @echo "... test" - @echo "... test.o" - @echo "... test.i" - @echo "... test.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: - $(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/lib/nodes/go/test/build/cmake_install.cmake b/lib/nodes/go/test/build/cmake_install.cmake deleted file mode 100644 index 6014c382c..000000000 --- a/lib/nodes/go/test/build/cmake_install.cmake +++ /dev/null @@ -1,60 +0,0 @@ -# Install script for directory: /global/projects/villas/node/lib/nodes/go/test - -# 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 "0") -endif() - -# Is this installation the result of a crosscompile? -if(NOT DEFINED CMAKE_CROSSCOMPILING) - set(CMAKE_CROSSCOMPILING "FALSE") -endif() - -# Set default install directory permissions. -if(NOT DEFINED CMAKE_OBJDUMP) - set(CMAKE_OBJDUMP "/usr/bin/objdump") -endif() - -if(NOT CMAKE_INSTALL_LOCAL_ONLY) - # Include the install script for each subdirectory. - include("/global/projects/villas/node/lib/nodes/go/test/build/go/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 "/global/projects/villas/node/lib/nodes/go/test/build/${CMAKE_INSTALL_MANIFEST}" - "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/lib/nodes/go/test/build/go/CMakeFiles/CMakeDirectoryInformation.cmake b/lib/nodes/go/test/build/go/CMakeFiles/CMakeDirectoryInformation.cmake deleted file mode 100644 index 98d218353..000000000 --- a/lib/nodes/go/test/build/go/CMakeFiles/CMakeDirectoryInformation.cmake +++ /dev/null @@ -1,16 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.18 - -# Relative path conversion top directories. -set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/global/projects/villas/node/lib/nodes/go/test") -set(CMAKE_RELATIVE_PATH_TOP_BINARY "/global/projects/villas/node/lib/nodes/go/test/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/lib/nodes/go/test/build/go/CMakeFiles/progress.marks b/lib/nodes/go/test/build/go/CMakeFiles/progress.marks deleted file mode 100644 index 573541ac9..000000000 --- a/lib/nodes/go/test/build/go/CMakeFiles/progress.marks +++ /dev/null @@ -1 +0,0 @@ -0 diff --git a/lib/nodes/go/test/build/go/CMakeFiles/shim_go.dir/DependInfo.cmake b/lib/nodes/go/test/build/go/CMakeFiles/shim_go.dir/DependInfo.cmake deleted file mode 100644 index 19fab2149..000000000 --- a/lib/nodes/go/test/build/go/CMakeFiles/shim_go.dir/DependInfo.cmake +++ /dev/null @@ -1,11 +0,0 @@ -# The set of languages for which implicit dependencies are needed: -set(CMAKE_DEPENDS_LANGUAGES - ) -# The set of files for implicit dependencies of each language: - -# 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/lib/nodes/go/test/build/go/CMakeFiles/shim_go.dir/build.make b/lib/nodes/go/test/build/go/CMakeFiles/shim_go.dir/build.make deleted file mode 100644 index 26ca3bca0..000000000 --- a/lib/nodes/go/test/build/go/CMakeFiles/shim_go.dir/build.make +++ /dev/null @@ -1,100 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.18 - -# Delete rule output on recipe failure. -.DELETE_ON_ERROR: - - -#============================================================================= -# Special targets provided by cmake. - -# Disable implicit rules so canonical targets will work. -.SUFFIXES: - - -# Disable VCS-based implicit rules. -% : %,v - - -# Disable VCS-based implicit rules. -% : RCS/% - - -# Disable VCS-based implicit rules. -% : RCS/%,v - - -# Disable VCS-based implicit rules. -% : SCCS/s.% - - -# Disable VCS-based implicit rules. -% : s.% - - -.SUFFIXES: .hpux_make_needs_suffix_list - - -# Command-line flag to silence nested $(MAKE). -$(VERBOSE)MAKESILENT = -s - -#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/bin/cmake - -# The command to remove a file. -RM = /usr/bin/cmake -E rm -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /global/projects/villas/node/lib/nodes/go/test - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /global/projects/villas/node/lib/nodes/go/test/build - -# Utility rule file for shim_go. - -# Include the progress variables for this target. -include go/CMakeFiles/shim_go.dir/progress.make - -go/CMakeFiles/shim_go: go/test.so - - -go/test.so: ../go/test.go - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --blue --bold --progress-dir=/global/projects/villas/node/lib/nodes/go/test/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building Go library" - cd /global/projects/villas/node/lib/nodes/go/test/go && env GOPATH= go build -buildmode=c-archive -o /global/projects/villas/node/lib/nodes/go/test/build/go/test.so ./... - -shim_go: go/CMakeFiles/shim_go -shim_go: go/test.so -shim_go: go/CMakeFiles/shim_go.dir/build.make - -.PHONY : shim_go - -# Rule to build all files generated by this target. -go/CMakeFiles/shim_go.dir/build: shim_go - -.PHONY : go/CMakeFiles/shim_go.dir/build - -go/CMakeFiles/shim_go.dir/clean: - cd /global/projects/villas/node/lib/nodes/go/test/build/go && $(CMAKE_COMMAND) -P CMakeFiles/shim_go.dir/cmake_clean.cmake -.PHONY : go/CMakeFiles/shim_go.dir/clean - -go/CMakeFiles/shim_go.dir/depend: - cd /global/projects/villas/node/lib/nodes/go/test/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /global/projects/villas/node/lib/nodes/go/test /global/projects/villas/node/lib/nodes/go/test/go /global/projects/villas/node/lib/nodes/go/test/build /global/projects/villas/node/lib/nodes/go/test/build/go /global/projects/villas/node/lib/nodes/go/test/build/go/CMakeFiles/shim_go.dir/DependInfo.cmake --color=$(COLOR) -.PHONY : go/CMakeFiles/shim_go.dir/depend - diff --git a/lib/nodes/go/test/build/go/CMakeFiles/shim_go.dir/cmake_clean.cmake b/lib/nodes/go/test/build/go/CMakeFiles/shim_go.dir/cmake_clean.cmake deleted file mode 100644 index 792ddd3db..000000000 --- a/lib/nodes/go/test/build/go/CMakeFiles/shim_go.dir/cmake_clean.cmake +++ /dev/null @@ -1,9 +0,0 @@ -file(REMOVE_RECURSE - "CMakeFiles/shim_go" - "test.so" -) - -# Per-language clean rules from dependency scanning. -foreach(lang ) - include(CMakeFiles/shim_go.dir/cmake_clean_${lang}.cmake OPTIONAL) -endforeach() diff --git a/lib/nodes/go/test/build/go/CMakeFiles/shim_go.dir/depend.internal b/lib/nodes/go/test/build/go/CMakeFiles/shim_go.dir/depend.internal deleted file mode 100644 index 756f521ce..000000000 --- a/lib/nodes/go/test/build/go/CMakeFiles/shim_go.dir/depend.internal +++ /dev/null @@ -1,3 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.18 - diff --git a/lib/nodes/go/test/build/go/CMakeFiles/shim_go.dir/depend.make b/lib/nodes/go/test/build/go/CMakeFiles/shim_go.dir/depend.make deleted file mode 100644 index 756f521ce..000000000 --- a/lib/nodes/go/test/build/go/CMakeFiles/shim_go.dir/depend.make +++ /dev/null @@ -1,3 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.18 - diff --git a/lib/nodes/go/test/build/go/CMakeFiles/shim_go.dir/progress.make b/lib/nodes/go/test/build/go/CMakeFiles/shim_go.dir/progress.make deleted file mode 100644 index 781c7de27..000000000 --- a/lib/nodes/go/test/build/go/CMakeFiles/shim_go.dir/progress.make +++ /dev/null @@ -1,2 +0,0 @@ -CMAKE_PROGRESS_1 = 1 - diff --git a/lib/nodes/go/test/build/go/Makefile b/lib/nodes/go/test/build/go/Makefile deleted file mode 100644 index 2742263b1..000000000 --- a/lib/nodes/go/test/build/go/Makefile +++ /dev/null @@ -1,169 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.18 - -# 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: - - -# Disable VCS-based implicit rules. -% : %,v - - -# Disable VCS-based implicit rules. -% : RCS/% - - -# Disable VCS-based implicit rules. -% : RCS/%,v - - -# Disable VCS-based implicit rules. -% : SCCS/s.% - - -# Disable VCS-based implicit rules. -% : s.% - - -.SUFFIXES: .hpux_make_needs_suffix_list - - -# Command-line flag to silence nested $(MAKE). -$(VERBOSE)MAKESILENT = -s - -#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/bin/cmake - -# The command to remove a file. -RM = /usr/bin/cmake -E rm -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /global/projects/villas/node/lib/nodes/go/test - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /global/projects/villas/node/lib/nodes/go/test/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/bin/cmake --regenerate-during-build -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 "Running CMake cache editor..." - /usr/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) -.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 /global/projects/villas/node/lib/nodes/go/test/build && $(CMAKE_COMMAND) -E cmake_progress_start /global/projects/villas/node/lib/nodes/go/test/build/CMakeFiles /global/projects/villas/node/lib/nodes/go/test/build/go//CMakeFiles/progress.marks - cd /global/projects/villas/node/lib/nodes/go/test/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 go/all - $(CMAKE_COMMAND) -E cmake_progress_start /global/projects/villas/node/lib/nodes/go/test/build/CMakeFiles 0 -.PHONY : all - -# The main clean target -clean: - cd /global/projects/villas/node/lib/nodes/go/test/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 go/clean -.PHONY : clean - -# The main clean target -clean/fast: clean - -.PHONY : clean/fast - -# Prepare targets for installation. -preinstall: all - cd /global/projects/villas/node/lib/nodes/go/test/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 go/preinstall -.PHONY : preinstall - -# Prepare targets for installation. -preinstall/fast: - cd /global/projects/villas/node/lib/nodes/go/test/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 go/preinstall -.PHONY : preinstall/fast - -# clear depends -depend: - cd /global/projects/villas/node/lib/nodes/go/test/build && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 -.PHONY : depend - -# Convenience name for target. -go/CMakeFiles/shim_go.dir/rule: - cd /global/projects/villas/node/lib/nodes/go/test/build && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 go/CMakeFiles/shim_go.dir/rule -.PHONY : go/CMakeFiles/shim_go.dir/rule - -# Convenience name for target. -shim_go: go/CMakeFiles/shim_go.dir/rule - -.PHONY : shim_go - -# fast build rule for target. -shim_go/fast: - cd /global/projects/villas/node/lib/nodes/go/test/build && $(MAKE) $(MAKESILENT) -f go/CMakeFiles/shim_go.dir/build.make go/CMakeFiles/shim_go.dir/build -.PHONY : shim_go/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 "... edit_cache" - @echo "... rebuild_cache" - @echo "... shim_go" -.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 /global/projects/villas/node/lib/nodes/go/test/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/lib/nodes/go/test/build/go/cmake_install.cmake b/lib/nodes/go/test/build/go/cmake_install.cmake deleted file mode 100644 index d417fb486..000000000 --- a/lib/nodes/go/test/build/go/cmake_install.cmake +++ /dev/null @@ -1,44 +0,0 @@ -# Install script for directory: /global/projects/villas/node/lib/nodes/go/test/go - -# 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 "0") -endif() - -# Is this installation the result of a crosscompile? -if(NOT DEFINED CMAKE_CROSSCOMPILING) - set(CMAKE_CROSSCOMPILING "FALSE") -endif() - -# Set default install directory permissions. -if(NOT DEFINED CMAKE_OBJDUMP) - set(CMAKE_OBJDUMP "/usr/bin/objdump") -endif() - diff --git a/lib/nodes/go/test/build/go/test.h b/lib/nodes/go/test/build/go/test.h deleted file mode 100644 index 4c98e5be0..000000000 --- a/lib/nodes/go/test/build/go/test.h +++ /dev/null @@ -1,82 +0,0 @@ -/* Code generated by cmd/cgo; DO NOT EDIT. */ - -/* package git.rwth-aachen.de/acs/public/villas/node */ - - -#line 1 "cgo-builtin-export-prolog" - -#include /* for ptrdiff_t below */ - -#ifndef GO_CGO_EXPORT_PROLOGUE_H -#define GO_CGO_EXPORT_PROLOGUE_H - -#ifndef GO_CGO_GOSTRING_TYPEDEF -typedef struct { const char *p; ptrdiff_t n; } _GoString_; -#endif - -#endif - -/* Start of preamble from import "C" comments. */ - - -#line 3 "test.go" - - - -#line 1 "cgo-generated-wrapper" - - -/* End of preamble from import "C" comments. */ - - -/* Start of boilerplate cgo prologue. */ -#line 1 "cgo-gcc-export-header-prolog" - -#ifndef GO_CGO_PROLOGUE_H -#define GO_CGO_PROLOGUE_H - -typedef signed char GoInt8; -typedef unsigned char GoUint8; -typedef short GoInt16; -typedef unsigned short GoUint16; -typedef int GoInt32; -typedef unsigned int GoUint32; -typedef long long GoInt64; -typedef unsigned long long GoUint64; -typedef GoInt64 GoInt; -typedef GoUint64 GoUint; -typedef __SIZE_TYPE__ GoUintptr; -typedef float GoFloat32; -typedef double GoFloat64; -typedef float _Complex GoComplex64; -typedef double _Complex GoComplex128; - -/* - static assertion to make sure the file is being used on architecture - at least with matching size of GoInt. -*/ -typedef char _check_for_64_bit_pointer_matching_GoInt[sizeof(void*)==64/8 ? 1:-1]; - -#ifndef GO_CGO_GOSTRING_TYPEDEF -typedef _GoString_ GoString; -#endif -typedef void *GoMap; -typedef void *GoChan; -typedef struct { void *t; void *v; } GoInterface; -typedef struct { void *data; GoInt len; GoInt cap; } GoSlice; - -#endif - -/* End of boilerplate cgo prologue. */ - -#ifdef __cplusplus -extern "C" { -#endif - -extern GoInt TestBla(void* ptr); -extern void* NewTest(GoInt number); -extern void* NewTest2(GoInt number); - -#ifdef __cplusplus -} -#endif diff --git a/lib/nodes/go/test/build/go/test.so b/lib/nodes/go/test/build/go/test.so deleted file mode 100644 index 0c0516b92a7e5729ddcf6226708513e07c9675cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5109064 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 m$fU{YP$;8 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,z?S4+=4Q>W&g8b%ZeYx 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≦=R_ola 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%0De78Yv| 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