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

Nuno Lopes nunoplopes at sapo.pt
Wed Sep 5 10:54:42 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.

I guess it's better to go with solution 2), since it's more general, 
otherwise someone may come later and complain that ' needs to be changed 
again to ".
Please commit the fix you proposed, or let me know if you need me to commit 
it for you.

Nuno


> 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 




More information about the llvm-commits mailing list