diff options
| author | Peter Zotov <whitequark@whitequark.org> | 2014-10-28 22:39:36 +0000 |
|---|---|---|
| committer | Peter Zotov <whitequark@whitequark.org> | 2014-10-28 22:39:36 +0000 |
| commit | dacfc64b572bed8c40deefc6459519aea2caf008 (patch) | |
| tree | 9aee3e39e77abdb857a2b20612c7dcd8423136e8 | |
| parent | 54ce2958490fb41d5c8522e176e5bead0d0f310e (diff) | |
| download | bcm5719-llvm-dacfc64b572bed8c40deefc6459519aea2caf008.tar.gz bcm5719-llvm-dacfc64b572bed8c40deefc6459519aea2caf008.zip | |
[OCaml] PR9719, PR14727: Make tests run without ocamlopt.
Previously, tests hardcoded ocamlopt and cmxa, which broke builds on
machines without ocamlopt. Instead, they now fall back to ocamlc.
As a side effect this fixes PR14727, which was caused by a crude hack
that replaced gcc with g++ everywhere in the ocamlopt native compiler
path and passes it back using -cc. Now the tests use the same
technique as META, i.e. -cclib -lstdc++. It might be more fragile
than using g++ explicitly, but it will break when the installed
package will also break, which is good.
llvm-svn: 220828
| -rw-r--r-- | llvm/test/Bindings/Ocaml/analysis.ml | 2 | ||||
| -rw-r--r-- | llvm/test/Bindings/Ocaml/bitreader.ml | 2 | ||||
| -rw-r--r-- | llvm/test/Bindings/Ocaml/bitwriter.ml | 2 | ||||
| -rw-r--r-- | llvm/test/Bindings/Ocaml/executionengine.ml | 2 | ||||
| -rw-r--r-- | llvm/test/Bindings/Ocaml/ext_exc.ml | 2 | ||||
| -rw-r--r-- | llvm/test/Bindings/Ocaml/ipo_opts.ml | 2 | ||||
| -rw-r--r-- | llvm/test/Bindings/Ocaml/irreader.ml | 2 | ||||
| -rw-r--r-- | llvm/test/Bindings/Ocaml/linker.ml | 2 | ||||
| -rw-r--r-- | llvm/test/Bindings/Ocaml/passmgr_builder.ml | 2 | ||||
| -rw-r--r-- | llvm/test/Bindings/Ocaml/scalar_opts.ml | 2 | ||||
| -rw-r--r-- | llvm/test/Bindings/Ocaml/target.ml | 2 | ||||
| -rw-r--r-- | llvm/test/Bindings/Ocaml/vectorize_opts.ml | 2 | ||||
| -rw-r--r-- | llvm/test/Bindings/Ocaml/vmcore.ml | 2 | ||||
| -rw-r--r-- | llvm/test/Makefile | 9 | ||||
| -rw-r--r-- | llvm/test/lit.cfg | 12 | ||||
| -rw-r--r-- | llvm/test/lit.site.cfg.in | 2 |
16 files changed, 29 insertions, 20 deletions
diff --git a/llvm/test/Bindings/Ocaml/analysis.ml b/llvm/test/Bindings/Ocaml/analysis.ml index c02645c0bce..fe71f6898dd 100644 --- a/llvm/test/Bindings/Ocaml/analysis.ml +++ b/llvm/test/Bindings/Ocaml/analysis.ml @@ -1,7 +1,7 @@ (* RUN: rm -rf %t.builddir * RUN: mkdir -p %t.builddir * RUN: cp %s %t.builddir - * RUN: %ocamlopt -warn-error A llvm.cmxa llvm_analysis.cmxa %t.builddir/analysis.ml -o %t + * RUN: %ocamlcomp -warn-error A llvm.%cma llvm_analysis.%cma %t.builddir/analysis.ml -o %t * RUN: %t * XFAIL: vg_leak *) diff --git a/llvm/test/Bindings/Ocaml/bitreader.ml b/llvm/test/Bindings/Ocaml/bitreader.ml index f1d202ab049..f219550f92f 100644 --- a/llvm/test/Bindings/Ocaml/bitreader.ml +++ b/llvm/test/Bindings/Ocaml/bitreader.ml @@ -1,7 +1,7 @@ (* RUN: rm -rf %t.builddir * RUN: mkdir -p %t.builddir * RUN: cp %s %t.builddir - * RUN: %ocamlopt -warn-error A llvm.cmxa llvm_bitreader.cmxa llvm_bitwriter.cmxa %t.builddir/bitreader.ml -o %t + * RUN: %ocamlcomp -warn-error A llvm.%cma llvm_bitreader.%cma llvm_bitwriter.%cma %t.builddir/bitreader.ml -o %t * RUN: %t %t.bc * RUN: llvm-dis < %t.bc * XFAIL: vg_leak diff --git a/llvm/test/Bindings/Ocaml/bitwriter.ml b/llvm/test/Bindings/Ocaml/bitwriter.ml index d4d0417a80e..ece9a393325 100644 --- a/llvm/test/Bindings/Ocaml/bitwriter.ml +++ b/llvm/test/Bindings/Ocaml/bitwriter.ml @@ -1,7 +1,7 @@ (* RUN: rm -rf %t.builddir * RUN: mkdir -p %t.builddir * RUN: cp %s %t.builddir - * RUN: %ocamlopt -warn-error A-3 unix.cmxa llvm.cmxa llvm_bitwriter.cmxa %t.builddir/bitwriter.ml -o %t + * RUN: %ocamlcomp -warn-error A-3 unix.%cma llvm.%cma llvm_bitwriter.%cma %t.builddir/bitwriter.ml -o %t * RUN: %t %t.bc * RUN: llvm-dis < %t.bc * XFAIL: vg_leak diff --git a/llvm/test/Bindings/Ocaml/executionengine.ml b/llvm/test/Bindings/Ocaml/executionengine.ml index 3109081a71e..fa325ebc1df 100644 --- a/llvm/test/Bindings/Ocaml/executionengine.ml +++ b/llvm/test/Bindings/Ocaml/executionengine.ml @@ -1,7 +1,7 @@ (* RUN: rm -rf %t.builddir * RUN: mkdir -p %t.builddir * RUN: cp %s %t.builddir - * RUN: %ocamlopt -warn-error A llvm.cmxa llvm_target.cmxa llvm_executionengine.cmxa %t.builddir/executionengine.ml -o %t + * RUN: %ocamlcomp -warn-error A llvm.%cma llvm_target.%cma llvm_executionengine.%cma %t.builddir/executionengine.ml -o %t * RUN: %t * XFAIL: vg_leak hexagon *) diff --git a/llvm/test/Bindings/Ocaml/ext_exc.ml b/llvm/test/Bindings/Ocaml/ext_exc.ml index 9afc3c3ab4b..80924387110 100644 --- a/llvm/test/Bindings/Ocaml/ext_exc.ml +++ b/llvm/test/Bindings/Ocaml/ext_exc.ml @@ -1,7 +1,7 @@ (* RUN: rm -rf %t.builddir * RUN: mkdir -p %t.builddir * RUN: cp %s %t.builddir - * RUN: %ocamlopt -warn-error A llvm.cmxa llvm_bitreader.cmxa llvm_executionengine.cmxa %t.builddir/ext_exc.ml -o %t + * RUN: %ocamlcomp -warn-error A llvm.%cma llvm_bitreader.%cma llvm_executionengine.%cma %t.builddir/ext_exc.ml -o %t * RUN: %t </dev/null * XFAIL: vg_leak *) diff --git a/llvm/test/Bindings/Ocaml/ipo_opts.ml b/llvm/test/Bindings/Ocaml/ipo_opts.ml index e0bcbe5f561..50fc303a358 100644 --- a/llvm/test/Bindings/Ocaml/ipo_opts.ml +++ b/llvm/test/Bindings/Ocaml/ipo_opts.ml @@ -1,7 +1,7 @@ (* RUN: rm -rf %t.builddir * RUN: mkdir -p %t.builddir * RUN: cp %s %t.builddir - * RUN: %ocamlopt -warn-error A llvm.cmxa llvm_ipo.cmxa llvm_target.cmxa %t.builddir/ipo_opts.ml -o %t + * RUN: %ocamlcomp -warn-error A llvm.%cma llvm_ipo.%cma llvm_target.%cma %t.builddir/ipo_opts.ml -o %t * RUN: %t %t.bc * XFAIL: vg_leak *) diff --git a/llvm/test/Bindings/Ocaml/irreader.ml b/llvm/test/Bindings/Ocaml/irreader.ml index 3511c2b2364..efe9df6d593 100644 --- a/llvm/test/Bindings/Ocaml/irreader.ml +++ b/llvm/test/Bindings/Ocaml/irreader.ml @@ -1,7 +1,7 @@ (* RUN: rm -rf %t.builddir * RUN: mkdir -p %t.builddir * RUN: cp %s %t.builddir - * RUN: %ocamlopt -g -warn-error A llvm.cmxa llvm_irreader.cmxa %t.builddir/irreader.ml -o %t + * RUN: %ocamlcomp -g -warn-error A llvm.%cma llvm_irreader.%cma %t.builddir/irreader.ml -o %t * RUN: %t * XFAIL: vg_leak *) diff --git a/llvm/test/Bindings/Ocaml/linker.ml b/llvm/test/Bindings/Ocaml/linker.ml index 9359ae9f2c4..c187afa49af 100644 --- a/llvm/test/Bindings/Ocaml/linker.ml +++ b/llvm/test/Bindings/Ocaml/linker.ml @@ -1,7 +1,7 @@ (* RUN: rm -rf %t.builddir * RUN: mkdir -p %t.builddir * RUN: cp %s %t.builddir - * RUN: %ocamlopt -warn-error A llvm.cmxa llvm_linker.cmxa %t.builddir/linker.ml -o %t + * RUN: %ocamlcomp -warn-error A llvm.%cma llvm_linker.%cma %t.builddir/linker.ml -o %t * RUN: %t * XFAIL: vg_leak *) diff --git a/llvm/test/Bindings/Ocaml/passmgr_builder.ml b/llvm/test/Bindings/Ocaml/passmgr_builder.ml index 1a3102f70a3..cd431fa5580 100644 --- a/llvm/test/Bindings/Ocaml/passmgr_builder.ml +++ b/llvm/test/Bindings/Ocaml/passmgr_builder.ml @@ -1,7 +1,7 @@ (* RUN: rm -rf %t.builddir * RUN: mkdir -p %t.builddir * RUN: cp %s %t.builddir - * RUN: %ocamlopt -warn-error A llvm.cmxa llvm_passmgr_builder.cmxa %t.builddir/passmgr_builder.ml -o %t + * RUN: %ocamlcomp -warn-error A llvm.%cma llvm_passmgr_builder.%cma %t.builddir/passmgr_builder.ml -o %t * RUN: %t %t.bc * XFAIL: vg_leak *) diff --git a/llvm/test/Bindings/Ocaml/scalar_opts.ml b/llvm/test/Bindings/Ocaml/scalar_opts.ml index 39913e43119..a4bc47f7137 100644 --- a/llvm/test/Bindings/Ocaml/scalar_opts.ml +++ b/llvm/test/Bindings/Ocaml/scalar_opts.ml @@ -1,7 +1,7 @@ (* RUN: rm -rf %t.builddir * RUN: mkdir -p %t.builddir * RUN: cp %s %t.builddir - * RUN: %ocamlopt -warn-error A llvm.cmxa llvm_scalar_opts.cmxa llvm_target.cmxa %t.builddir/scalar_opts.ml -o %t + * RUN: %ocamlcomp -warn-error A llvm.%cma llvm_scalar_opts.%cma llvm_target.%cma %t.builddir/scalar_opts.ml -o %t * RUN: %t %t.bc * XFAIL: vg_leak *) diff --git a/llvm/test/Bindings/Ocaml/target.ml b/llvm/test/Bindings/Ocaml/target.ml index 0a2283aa3ed..35135880e29 100644 --- a/llvm/test/Bindings/Ocaml/target.ml +++ b/llvm/test/Bindings/Ocaml/target.ml @@ -1,7 +1,7 @@ (* RUN: rm -rf %t.builddir * RUN: mkdir -p %t.builddir * RUN: cp %s %t.builddir - * RUN: %ocamlopt -g -warn-error A llvm.cmxa llvm_target.cmxa llvm_executionengine.cmxa %t.builddir/target.ml -o %t + * RUN: %ocamlcomp -g -warn-error A llvm.%cma llvm_target.%cma llvm_executionengine.%cma %t.builddir/target.ml -o %t * RUN: %t %t.bc * REQUIRES: native, object-emission * XFAIL: vg_leak diff --git a/llvm/test/Bindings/Ocaml/vectorize_opts.ml b/llvm/test/Bindings/Ocaml/vectorize_opts.ml index 5ef985d5dc1..05bbfe227f6 100644 --- a/llvm/test/Bindings/Ocaml/vectorize_opts.ml +++ b/llvm/test/Bindings/Ocaml/vectorize_opts.ml @@ -1,7 +1,7 @@ (* RUN: rm -rf %t.builddir * RUN: mkdir -p %t.builddir * RUN: cp %s %t.builddir - * RUN: %ocamlopt -warn-error A llvm.cmxa llvm_vectorize.cmxa llvm_target.cmxa %t.builddir/vectorize_opts.ml -o %t + * RUN: %ocamlcomp -warn-error A llvm.%cma llvm_vectorize.%cma llvm_target.%cma %t.builddir/vectorize_opts.ml -o %t * RUN: %t %t.bc * XFAIL: vg_leak *) diff --git a/llvm/test/Bindings/Ocaml/vmcore.ml b/llvm/test/Bindings/Ocaml/vmcore.ml index dcfeaea1e02..a75f298ca2d 100644 --- a/llvm/test/Bindings/Ocaml/vmcore.ml +++ b/llvm/test/Bindings/Ocaml/vmcore.ml @@ -1,7 +1,7 @@ (* RUN: rm -rf %t.builddir * RUN: mkdir -p %t.builddir * RUN: cp %s %t.builddir - * RUN: %ocamlopt -warn-error A llvm.cmxa llvm_analysis.cmxa llvm_bitwriter.cmxa %t.builddir/vmcore.ml -o %t + * RUN: %ocamlcomp -warn-error A llvm.%cma llvm_analysis.%cma llvm_bitwriter.%cma %t.builddir/vmcore.ml -o %t * RUN: %t %t.bc * RUN: llvm-dis < %t.bc > %t.ll * RUN: FileCheck %s < %t.ll diff --git a/llvm/test/Makefile b/llvm/test/Makefile index 156009d026c..00626695bc1 100644 --- a/llvm/test/Makefile +++ b/llvm/test/Makefile @@ -108,11 +108,6 @@ check-local-all:: lit.site.cfg Unit/lit.site.cfg extra-site-cfgs clean:: $(RM) -rf `find $(LLVM_OBJ_ROOT)/test -name Output -type d -print` -ifneq ($(OCAMLOPT),) -CC_FOR_OCAMLOPT := $(shell $(OCAMLOPT) -config | grep native_c_compiler | sed -e 's/native_c_compiler: //') -CXX_FOR_OCAMLOPT := $(subst gcc,g++,$(CC_FOR_OCAMLOPT)) -endif - FORCE: ifeq ($(DISABLE_ASSERTIONS),1) @@ -132,7 +127,9 @@ lit.site.cfg: FORCE @$(ECHOPATH) s=@SHLIBEXT@=$(SHLIBEXT)=g >> lit.tmp @$(ECHOPATH) s=@EXEEXT@=$(EXEEXT)=g >> lit.tmp @$(ECHOPATH) s=@PYTHON_EXECUTABLE@=$(PYTHON)=g >> lit.tmp - @$(ECHOPATH) s=@OCAMLOPT@=$(OCAMLOPT) -cc $(subst *,'\\\"',*$(subst =,"\\=",$(CXX_FOR_OCAMLOPT))*) -cclib -L$(LibDir) -I $(LibDir)/ocaml=g >> lit.tmp + @$(ECHOPATH) s=@OCAMLC@=$(OCAMLC)=g >> lit.tmp + @$(ECHOPATH) s=@OCAMLOPT@=$(OCAMLOPT)=g >> lit.tmp + @$(ECHOPATH) s=@OCAMLFLAGS@=-cclib -lstdc++ -cclib -L$(LibDir) -I $(LibDir)/ocaml=g >> lit.tmp @$(ECHOPATH) s=@GO_EXECUTABLE@=$(GO)=g >> lit.tmp @$(ECHOPATH) s!@HOST_CC@!$(CC)!g >> lit.tmp @$(ECHOPATH) s!@HOST_CXX@!$(CXX)!g >> lit.tmp diff --git a/llvm/test/lit.cfg b/llvm/test/lit.cfg index 55f559e68dc..63880d0dac7 100644 --- a/llvm/test/lit.cfg +++ b/llvm/test/lit.cfg @@ -167,13 +167,23 @@ if re.search(r'win32', config.target_triple): config.substitutions.append( ('%llc_dwarf', llc_dwarf) ) # Add site-specific substitutions. -config.substitutions.append( ('%ocamlopt', config.ocamlopt_executable) ) config.substitutions.append( ('%go', config.go_executable) ) config.substitutions.append( ('%llvmshlibdir', config.llvm_shlib_dir) ) config.substitutions.append( ('%shlibext', config.llvm_shlib_ext) ) config.substitutions.append( ('%exeext', config.llvm_exe_ext) ) config.substitutions.append( ('%python', config.python_executable) ) +# OCaml substitutions. +# Support tests for both native and bytecode builds. +if config.ocamlopt_executable != "": + config.substitutions.append( ('%ocamlcomp', + "%s %s" % (config.ocamlopt_executable, config.ocaml_flags)) ) + config.substitutions.append( ('%cma', 'cmxa') ) +else: + config.substitutions.append( ('%ocamlcomp', + "%s %s" % (config.ocamlc_executable, config.ocaml_flags)) ) + config.substitutions.append( ('%cma', 'cma') ) + # For each occurrence of an llvm tool name as its own word, replace it # with the full path to the build directory holding that tool. This # ensures that we are testing the tools just built and not some random diff --git a/llvm/test/lit.site.cfg.in b/llvm/test/lit.site.cfg.in index f3141df3268..2a058e9fa3b 100644 --- a/llvm/test/lit.site.cfg.in +++ b/llvm/test/lit.site.cfg.in @@ -12,7 +12,9 @@ config.llvm_shlib_ext = "@SHLIBEXT@" config.llvm_exe_ext = "@EXEEXT@" config.lit_tools_dir = "@LLVM_LIT_TOOLS_DIR@" config.python_executable = "@PYTHON_EXECUTABLE@" +config.ocamlc_executable = "@OCAMLC@" config.ocamlopt_executable = "@OCAMLOPT@" +config.ocaml_flags = "@OCAMLFLAGS@" config.go_executable = "@GO_EXECUTABLE@" config.enable_shared = @ENABLE_SHARED@ config.enable_assertions = @ENABLE_ASSERTIONS@ |

