<div dir="ltr"><div>Hi David,<br><br></div>Thanks for your reply.  I am aware of the migration toward C++11.  In fact, I build LLVM with various compiler including GCC 4.8 and Clang everyday.  However, for some reason, I have to release LLVM prebuilt binaries for some user with old operating system, although I wish to deprecate them ASAP.  I know that I am taking risk.  I will give up when that day really comes.  Thanks.<br>
<br>Logan<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Feb 22, 2014 at 12:32 AM, David Blaikie <span dir="ltr"><<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote"><div class="">On Fri, Feb 21, 2014 at 7:51 AM, Logan Chien <span dir="ltr"><<a href="mailto:tzuhsiang.chien@gmail.com" target="_blank">tzuhsiang.chien@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div>Hi Gordon,<br><br></div>I have tried to use cmake as well.  I can build and test without problem as well.  These are the commands which I am using:<br>

<br>$ cmake ../llvm -DCMAKE_CXX_FLAGS=-std=c++0x -DLLVM_FORCE_USE_OLD_TOOLCHAIN=1<br></div></div></div></blockquote><div><br></div></div><div>Here</div><div class=""><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div dir="ltr"><div><div>
</div>$ make -j4<br></div>$ make check-all<br><div><div><br></div><div>Sincerely,<br></div><div>Logan<br></div></div></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Feb 21, 2014 at 10:20 PM, Logan Chien <span dir="ltr"><<a href="mailto:tzuhsiang.chien@gmail.com" target="_blank">tzuhsiang.chien@gmail.com</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div><div><div><div>Hi Gordon,<br><br></div>I am using autoconf.  I can build without problem with following commands:<br>


<br></div>$ export CXXFLAGS=-std=c++0x<br></div>$ ./configure --enable-optimized --disable-compiler-version-checks<br></div></div></div></div></div></div></blockquote></div></div></div></div></blockquote><div><br></div></div>
<div>
And here.<br><br>You've disabled the build system's version checks that are there to help you - within the next few weeks it's likely that those version checks won't be the only thing that breaks your build. They're there to warn you that you'll need to update your toolchain to a level that passes those checks or your build will be broken soon. (these versions are the minimum agreed versions we'll support when we start allowing C++11 code in the codebase - it won't take long for someone to commit some code that compiles/passes with these versions but is broken on older compilers such as the one you are running)</div>
<div><div class="h5">
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div dir="ltr"><div><div><div><div><div>

</div>$ make -j4<br></div>$ make check-all<br><br></div><div>The revision which I am using are LLVM/r201841, clang/r201849, and compiler-rt/r201845.<br></div><br></div>The gcc version I am using is:<br><br>$ gcc --version<br>




gcc-4.6.real (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3</div><div><br></div>Sincerely,<br>Logan<br></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Feb 21, 2014 at 2:45 AM, Gordon Keiser <span dir="ltr"><<a href="mailto:gkeiser@arxan.com" target="_blank">gkeiser@arxan.com</a>></span> wrote:<br>



<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div link="blue" vlink="purple" lang="EN-US"><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">I pulled down trunk on Tuesday night, and it errors in CMake on linux if GCC < 4.7, so I’m not really sure what purpose this serves. <u></u><u></u></span></p>



<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">-Gordon<u></u><u></u></span></p>



<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri","sans-serif"">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri","sans-serif""> <a href="mailto:llvm-commits-bounces@cs.uiuc.edu" target="_blank">llvm-commits-bounces@cs.uiuc.edu</a> [mailto:<a href="mailto:llvm-commits-bounces@cs.uiuc.edu" target="_blank">llvm-commits-bounces@cs.uiuc.edu</a>] <b>On Behalf Of </b>Logan Chien<br>



<b>Sent:</b> Wednesday, February 19, 2014 12:11 PM<br><b>To:</b> Aaron Ballman<br><b>Cc:</b> llvm-commits<br><b>Subject:</b> Re: [llvm] r201679 - Disable override and final C++ keyword in gcc 4.6.<u></u><u></u></span></p>



<div><div><p class="MsoNormal"><u></u> <u></u></p><div><div><div><div><p class="MsoNormal" style="margin-bottom:12.0pt">Hi Aaron,<u></u><u></u></p></div><p class="MsoNormal" style="margin-bottom:12.0pt">I know that GCC 4.7 is the minimum support compiler.  However, since the change is limited to the compiler compatibility header (there are even some checks for GCC 3.1 in this header) and this change fixes the build and passes all test cases, I feel it is acceptable in this case.<u></u><u></u></p>



</div><p class="MsoNormal" style="margin-bottom:12.0pt">Although I know the code base might be incompatible with GCC 4.6 in the near future, I wish to keep the backward compatibility as long as possible given that only some simple change to compiler compatibility header is required.  I agree that it won't make sense to stick with old syntax or prohibit the usage of new language feature just for the backward compatibility of the unsupported GCC 4.6.<u></u><u></u></p>



</div><div><p class="MsoNormal">Sincerely,<u></u><u></u></p></div><p class="MsoNormal">Logan<u></u><u></u></p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt"><u></u> <u></u></p><div><p class="MsoNormal">On Wed, Feb 19, 2014 at 11:27 PM, Aaron Ballman <<a href="mailto:aaron@aaronballman.com" target="_blank">aaron@aaronballman.com</a>> wrote:<u></u><u></u></p>



<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in"><p class="MsoNormal">Since our min supported compiler version is 4.7 (as of llvm 3.4), I<br>don't believe this commit really makes sense. Since we're trying to<br>



make the switch to using C++11 functionality, I don't think we want to<br>add support for older compilers which will fail in other ways.<br><span style="color:#888888"><br><span>~Aaron</span></span><u></u><u></u></p>


<div>
<div><p class="MsoNormal"><br>On Wed, Feb 19, 2014 at 10:04 AM, Logan Chien <<a href="mailto:tzuhsiang.chien@gmail.com" target="_blank">tzuhsiang.chien@gmail.com</a>> wrote:<br>> Author: logan<br>> Date: Wed Feb 19 09:04:29 2014<br>



> New Revision: 201679<br>><br>> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=201679&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=201679&view=rev</a><br>> Log:<br>> Disable override and final C++ keyword in gcc 4.6.<br>



><br>> According to <a href="http://gcc.gnu.org/projects/cxx0x.html" target="_blank">http://gcc.gnu.org/projects/cxx0x.html</a>,<br>> override and final keyword was added in gcc 4.7.  Thus,<br>> we should not use these keywords in gcc 4.6 even when<br>



> __GXX_EXPERIMENTAL_CXX0X__ is available.<br>><br>> Modified:<br>>     llvm/trunk/include/llvm/Support/Compiler.h<br>><br>> Modified: llvm/trunk/include/llvm/Support/Compiler.h<br>> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/Compiler.h?rev=201679&r1=201678&r2=201679&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/Compiler.h?rev=201679&r1=201678&r2=201679&view=diff</a><br>



> ==============================================================================<br>> --- llvm/trunk/include/llvm/Support/Compiler.h (original)<br>> +++ llvm/trunk/include/llvm/Support/Compiler.h Wed Feb 19 09:04:29 2014<br>



> @@ -152,7 +152,8 @@<br>>  /// LLVM_FINAL - Expands to 'final' if the compiler supports it.<br>>  /// Use to mark classes or virtual methods as final.<br>>  #if __has_feature(cxx_override_control) || \<br>



> -    defined(__GXX_EXPERIMENTAL_CXX0X__) || LLVM_MSC_PREREQ(1700)<br>> +    (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GNUC_PREREQ(4, 7)) || \<br>> +    LLVM_MSC_PREREQ(1700)<br>>  #define LLVM_FINAL final<br>



>  #else<br>>  #define LLVM_FINAL<br>> @@ -161,7 +162,8 @@<br>>  /// LLVM_OVERRIDE - Expands to 'override' if the compiler supports it.<br>>  /// Use to mark virtual methods as overriding a base class method.<br>



>  #if __has_feature(cxx_override_control) || \<br>> -    defined(__GXX_EXPERIMENTAL_CXX0X__) || LLVM_MSC_PREREQ(1700)<br>> +    (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GNUC_PREREQ(4, 7)) || \<br>> +    LLVM_MSC_PREREQ(1700)<br>



>  #define LLVM_OVERRIDE override<br>>  #else<br>>  #define LLVM_OVERRIDE<br>><br>><br>> _______________________________________________<br>> llvm-commits mailing list<br>> <a href="mailto:llvm-commits@cs.uiuc.edu" target="_blank">llvm-commits@cs.uiuc.edu</a><br>



> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><u></u><u></u></p></div></div></blockquote></div><p class="MsoNormal"><u></u> <u></u></p>



</div></div></div></div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu" target="_blank">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
<br></blockquote></div></div></div><br></div></div>
</blockquote></div><br></div>