[llvm-commits] [llvm] r163098 - /llvm/trunk/test/Makefile

Rick Foos rfoos at codeaurora.org
Wed Sep 5 09:17:44 PDT 2012


On 09/02/2012 10:16 AM, Nuno Lopes wrote:
> Author: nlopes
> Date: Sun Sep  2 10:16:51 2012
> New Revision: 163098
>
> URL: http://llvm.org/viewvc/llvm-project?rev=163098&view=rev
> Log:
> escape special char when handling CXX_FOR_OCAMLOPT
>
> Modified:
>      llvm/trunk/test/Makefile
>
> Modified: llvm/trunk/test/Makefile
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Makefile?rev=163098&r1=163097&r2=163098&view=diff
> ==============================================================================
> --- llvm/trunk/test/Makefile (original)
> +++ llvm/trunk/test/Makefile Sun Sep  2 10:16:51 2012
> @@ -131,7 +131,7 @@
>   	@$(ECHOPATH) s=@SHLIBDIR@=$(SharedLibDir)=g>>  lit.tmp
>   	@$(ECHOPATH) s=@SHLIBEXT@=$(SHLIBEXT)=g>>  lit.tmp
>   	@$(ECHOPATH) s=@PYTHON_EXECUTABLE@=python=g>>  lit.tmp
> -	@$(ECHOPATH) s, at OCAMLOPT@,$(OCAMLOPT) -cc \\\\\"$(CXX_FOR_OCAMLOPT)\\\\\" -I $(LibDir)/ocaml,g>>  lit.tmp
> +	@$(ECHOPATH) s=@OCAMLOPT@=$(OCAMLOPT) -cc \\\\\"$(subst =,"\\=",$(CXX_FOR_OCAMLOPT))\\\\\" -I $(LibDir)/ocaml=g>>  lit.tmp
>   	@$(ECHOPATH) s=@ENABLE_SHARED@=$(ENABLE_SHARED)=g>>  lit.tmp
>   	@$(ECHOPATH) s=@ENABLE_ASSERTIONS@=$(ENABLE_ASSERTIONS)=g>>  lit.tmp
>   	@$(ECHOPATH) s=@TARGETS_TO_BUILD@=$(TARGETS_TO_BUILD)=g>>  lit.tmp
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Nuno, Will,

I'm still getting errors on check-all with OCAML on Ubuntu 12.04.1. The 
double quote escaping isn't working manually or in a Jenkins JNLP slave.

I found two workarounds.

1) When I switch the \\\\\" to \\\\\', the quote problem disappears and 
check-all completes.

2) Another way is to limit the shell interference requiring all the 
\\\\\'s. Since $(subst) is used, need to do it with make builtins, then 
it's done outside of shell.

I wrapped it again, $(subst *,'\\\"',*$(subst blah )*), and it gave me 
an escaped version in lit.site.cfg:

config.ocamlopt_executable = "/usr/bin/ocamlopt -cc \"g++ 
-D_FILE_OFFSET_BITS=64 -D_REENTRANT\" -I 
/local/jenkins-swarm-u1204/workspace/llvm-repo/build-x86_64-linux-gnu/Release+Asserts/lib/ocaml"

I have no preference either way.

You should probably have the final word since you fixed the first part 
of the bug, and can test it better.

Many of the bots that run check-all don't have ocaml installed. 
Installing OCAML on the bot slaves might be a simple thing to do to 
improve test coverage.

-rick

---

make[1]: Entering directory `/local/jenkins-swarm-u1204/workspace/llvm-repo/build-x86_64-linux-gnu/test'
Making LLVM 'lit.site.cfg' file...
Making LLVM unittest 'lit.site.cfg' file...
make -C /local/jenkins-swarm-u1204/workspace/llvm-repo/build-x86_64-linux-gnu/test/../tools/clang/test lit.site.cfg Unit/lit.site.cfg
make[2]: Entering directory `/local/jenkins-swarm-u1204/workspace/llvm-repo/build-x86_64-linux-gnu/tools/clang/test'
Making Clang 'lit.site.cfg' file...
Making Clang 'Unit/lit.site.cfg' file...
make[2]: Leaving directory `/local/jenkins-swarm-u1204/workspace/llvm-repo/build-x86_64-linux-gnu/tools/clang/test'
( ulimit -t 600 ; ulimit -d 512000 ; ulimit -m 512000 ; ulimit -v 1024000 ; \
	  /local/jenkins-swarm-u1204/workspace/llvm-repo/llvm/utils/lit/lit.py -s -v . /local/jenkins-swarm-u1204/workspace/llvm-repo/build-x86_64-linux-gnu/test/../tools/clang/test )
Traceback (most recent call last):
   File "/local/jenkins-swarm-u1204/workspace/llvm-repo/llvm/utils/lit/lit.py", line 5, in<module>
     lit.main()
   File "/local/jenkins-swarm-u1204/workspace/llvm-repo/llvm/utils/lit/lit/main.py", line 522, in main
     testSuiteCache, localConfigCache)[1])
   File "/local/jenkins-swarm-u1204/workspace/llvm-repo/llvm/utils/lit/lit/main.py", line 230, in getTests
     ts,path_in_suite = getTestSuite(path, litConfig, testSuiteCache)
   File "/local/jenkins-swarm-u1204/workspace/llvm-repo/llvm/utils/lit/lit/main.py", line 199, in getTestSuite
     ts, relative = search(item)
   File "/local/jenkins-swarm-u1204/workspace/llvm-repo/llvm/utils/lit/lit/main.py", line 183, in search
     cache[path] = res = search1(path)
   File "/local/jenkins-swarm-u1204/workspace/llvm-repo/llvm/utils/lit/lit/main.py", line 174, in search1
     cfg = TestingConfig.frompath(cfgpath, None, litConfig, mustExist = True)
   File "/local/jenkins-swarm-u1204/workspace/llvm-repo/llvm/utils/lit/lit/TestingConfig.py", line 53, in frompath
     exec f in cfg_globals
   File "/local/jenkins-swarm-u1204/workspace/llvm-repo/build-x86_64-linux-gnu/test/lit.site.cfg", line 11
     config.ocamlopt_executable = "/usr/bin/ocamlopt -cc "g++ -D_FILE_OFFSET_BITS=64 -D_REENTRANT" -I /local/jenkins-swarm-u1204/workspace/llvm-repo/build-x86_64-linux-gnu/Release+Asserts/lib/ocaml"
                                                          ^
SyntaxError: invalid syntax

make[1]: *** [check-local-all] Error 1


-- 
Rick Foos
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation




More information about the llvm-commits mailing list