Revert "Rework go bindings so that validation works fine"
authorPeter Collingbourne <peter@pcc.me.uk>
Mon, 24 Feb 2020 17:11:15 +0000 (09:11 -0800)
committerPeter Collingbourne <peter@pcc.me.uk>
Mon, 24 Feb 2020 17:20:08 +0000 (09:20 -0800)
And add llvm-go back to the test dependencies.

No longer necessary now that llvm-go has been brought back.

This reverts commit e8f8873da5eaad187f82dad78ebdb3ab3df22b36.

33 files changed:
llvm/bindings/go/build.sh [new file with mode: 0755]
llvm/bindings/go/llvm/IRBindings.cpp [moved from llvm/bindings/go/src/llvm/IRBindings.cpp with 100% similarity]
llvm/bindings/go/llvm/IRBindings.h [moved from llvm/bindings/go/src/llvm/IRBindings.h with 100% similarity]
llvm/bindings/go/llvm/InstrumentationBindings.cpp [moved from llvm/bindings/go/src/llvm/InstrumentationBindings.cpp with 100% similarity]
llvm/bindings/go/llvm/InstrumentationBindings.h [moved from llvm/bindings/go/src/llvm/InstrumentationBindings.h with 100% similarity]
llvm/bindings/go/llvm/SupportBindings.cpp [moved from llvm/bindings/go/src/llvm/SupportBindings.cpp with 100% similarity]
llvm/bindings/go/llvm/SupportBindings.h [moved from llvm/bindings/go/src/llvm/SupportBindings.h with 100% similarity]
llvm/bindings/go/llvm/analysis.go [moved from llvm/bindings/go/src/llvm/analysis.go with 100% similarity]
llvm/bindings/go/llvm/bitreader.go [moved from llvm/bindings/go/src/llvm/bitreader.go with 100% similarity]
llvm/bindings/go/llvm/bitwriter.go [moved from llvm/bindings/go/src/llvm/bitwriter.go with 100% similarity]
llvm/bindings/go/llvm/dibuilder.go [moved from llvm/bindings/go/src/llvm/dibuilder.go with 100% similarity]
llvm/bindings/go/llvm/executionengine.go [moved from llvm/bindings/go/src/llvm/executionengine.go with 100% similarity]
llvm/bindings/go/llvm/executionengine_test.go [moved from llvm/bindings/go/src/llvm/executionengine_test.go with 100% similarity]
llvm/bindings/go/llvm/ir.go [moved from llvm/bindings/go/src/llvm/ir.go with 100% similarity]
llvm/bindings/go/llvm/ir_test.go [moved from llvm/bindings/go/src/llvm/ir_test.go with 100% similarity]
llvm/bindings/go/llvm/linker.go [moved from llvm/bindings/go/src/llvm/linker.go with 100% similarity]
llvm/bindings/go/llvm/llvm_config.go.in [moved from llvm/bindings/go/src/llvm/llvm_config.go.in with 100% similarity]
llvm/bindings/go/llvm/llvm_dep.go [moved from llvm/bindings/go/src/llvm/llvm_dep.go with 96% similarity]
llvm/bindings/go/llvm/string.go [moved from llvm/bindings/go/src/llvm/string.go with 100% similarity]
llvm/bindings/go/llvm/string_test.go [moved from llvm/bindings/go/src/llvm/string_test.go with 100% similarity]
llvm/bindings/go/llvm/support.go [moved from llvm/bindings/go/src/llvm/support.go with 100% similarity]
llvm/bindings/go/llvm/target.go [moved from llvm/bindings/go/src/llvm/target.go with 100% similarity]
llvm/bindings/go/llvm/transforms_coroutines.go [moved from llvm/bindings/go/src/llvm/transforms_coroutines.go with 100% similarity]
llvm/bindings/go/llvm/transforms_instrumentation.go [moved from llvm/bindings/go/src/llvm/transforms_instrumentation.go with 100% similarity]
llvm/bindings/go/llvm/transforms_ipo.go [moved from llvm/bindings/go/src/llvm/transforms_ipo.go with 100% similarity]
llvm/bindings/go/llvm/transforms_pmbuilder.go [moved from llvm/bindings/go/src/llvm/transforms_pmbuilder.go with 100% similarity]
llvm/bindings/go/llvm/transforms_scalar.go [moved from llvm/bindings/go/src/llvm/transforms_scalar.go with 100% similarity]
llvm/bindings/go/llvm/version.go [moved from llvm/bindings/go/src/llvm/version.go with 100% similarity]
llvm/test/Bindings/Go/go.test
llvm/test/Bindings/Go/lit.local.cfg
llvm/test/CMakeLists.txt
llvm/test/lit.cfg.py
llvm/utils/lit/lit/llvm/subst.py

diff --git a/llvm/bindings/go/build.sh b/llvm/bindings/go/build.sh
new file mode 100755 (executable)
index 0000000..3177852
--- /dev/null
@@ -0,0 +1,28 @@
+#!/bin/sh -xe
+
+gollvmdir=$(dirname "$0")/llvm
+
+workdir=$gollvmdir/workdir
+llvmdir=$gollvmdir/../../..
+llvm_builddir=$workdir/llvm_build
+
+mkdir -p $llvm_builddir
+
+cmake_flags="../../../../.. $@"
+llvm_config="$llvm_builddir/bin/llvm-config"
+llvm_go="$llvm_builddir/bin/llvm-go"
+
+if test -n "`which ninja`" ; then
+  # If Ninja is available, we can speed up the build by building only the
+  # required subset of LLVM.
+  (cd $llvm_builddir && cmake -G Ninja $cmake_flags)
+  ninja -C $llvm_builddir llvm-config llvm-go
+  llvm_components="$($llvm_go print-components)"
+  llvm_buildtargets="$($llvm_config --libs $llvm_components | sed -e 's/-l//g')"
+  ninja -C $llvm_builddir $llvm_buildtargets FileCheck
+else
+  (cd $llvm_builddir && cmake $cmake_flags)
+  make -C $llvm_builddir -j4
+fi
+
+$llvm_go print-config > $gollvmdir/llvm_config.go
similarity index 96%
rename from llvm/bindings/go/src/llvm/llvm_dep.go
rename to llvm/bindings/go/llvm/llvm_dep.go
index e3ccce0..9484e6d 100644 (file)
@@ -14,3 +14,5 @@
 // +build !byollvm
 
 package llvm
+
+var _ run_build_sh
index 5901ccb..bb39e6c 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: CGO_CPPFLAGS="`llvm-config --cppflags`" CGO_CXXFLAGS=-std=c++14 CGO_LDFLAGS="`llvm-config --ldflags --libs --system-libs all`" go test llvm
+; RUN: llvm-go test llvm.org/llvm/bindings/go/llvm
 
 ; REQUIRES: shell
 ; UNSUPPORTED: asan, ubsan, msan
index 7c72c76..3021fc6 100644 (file)
@@ -57,5 +57,4 @@ def fixup_compiler_path(compiler):
 
 config.environment['CC'] = fixup_compiler_path(config.host_cc)
 config.environment['CXX'] = fixup_compiler_path(config.host_cxx)
-config.environment['LD_LIBRARY_PATH'] = config.llvm_shlib_dir
-config.environment['GOPATH'] = os.path.join(config.llvm_src_root, 'bindings', 'go')
+config.environment['CGO_LDFLAGS'] = config.host_ldflags
index fb19741..2f19963 100644 (file)
@@ -122,6 +122,10 @@ if(TARGET LLVMgold)
   set(LLVM_TEST_DEPENDS ${LLVM_TEST_DEPENDS} LLVMgold)
 endif()
 
+if(TARGET llvm-go)
+  set(LLVM_TEST_DEPENDS ${LLVM_TEST_DEPENDS} llvm-go)
+endif()
+
 if(TARGET LTO)
   set(LLVM_TEST_DEPENDS ${LLVM_TEST_DEPENDS} LTO)
 endif()
index 5789f9d..777322e 100644 (file)
@@ -160,7 +160,7 @@ tools.extend([
 
 # The following tools are optional
 tools.extend([
-    ToolSubst('go', unresolved='ignore'),
+    ToolSubst('llvm-go', unresolved='ignore'),
     ToolSubst('llvm-mt', unresolved='ignore'),
     ToolSubst('Kaleidoscope-Ch3', unresolved='ignore'),
     ToolSubst('Kaleidoscope-Ch4', unresolved='ignore'),
index c4a2692..4275b8a 100644 (file)
@@ -23,7 +23,7 @@ class FindTool(object):
 
         if self.name == 'llc' and os.environ.get('LLVM_ENABLE_MACHINE_VERIFIER') == '1':
             command += ' -verify-machineinstrs'
-        elif self.name == 'go':
+        elif self.name == 'llvm-go':
             exe = getattr(config.config, 'go_executable', None)
             if exe:
                 command += ' go=' + exe