<p dir="ltr"><br>
On Oct 2, 2013 12:49 AM, "Alexey Samsonov" <<a href="mailto:samsonov@google.com">samsonov@google.com</a>> wrote:<br>
><br>
> Author: samsonov<br>
> Date: Wed Oct  2 02:44:19 2013<br>
> New Revision: 191814<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=191814&view=rev">http://llvm.org/viewvc/llvm-project?rev=191814&view=rev</a><br>
> Log:<br>
> Explicitly specify -Wno-error if LIBCXX_ENABLE_WERROR is false.<br>
><br>
> libcxx doesn't build with -Werror because of #warnings in its source<br>
> code.</p>
<p dir="ltr">This seems a little problematic. Is there no way to get a clean libcxx build? If not, should we enable certain warnings as errors (I'm looking at you, -Wreturn-type)? Or, perhaps better, use -Werror and downgrade specific warnings back to warnings (or disable them entirely)</p>

<p dir="ltr">> But when libcxx is built as an external LLVM project, it inherits<br>
> LLVM build flags, breaking the build if LLVM_ENABLE_WERROR is enabled.<br>
><br>
> Modified:<br>
>     libcxx/trunk/CMakeLists.txt<br>
>     libcxx/trunk/cmake/config-ix.cmake<br>
><br>
> Modified: libcxx/trunk/CMakeLists.txt<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/CMakeLists.txt?rev=191814&r1=191813&r2=191814&view=diff">http://llvm.org/viewvc/llvm-project/libcxx/trunk/CMakeLists.txt?rev=191814&r1=191813&r2=191814&view=diff</a><br>

> ==============================================================================<br>
> --- libcxx/trunk/CMakeLists.txt (original)<br>
> +++ libcxx/trunk/CMakeLists.txt Wed Oct  2 02:44:19 2013<br>
> @@ -189,6 +189,9 @@ append_if(LIBCXX_CXX_WARNING_FLAGS LIBCX<br>
>  if (LIBCXX_ENABLE_WERROR)<br>
>    append_if(LIBCXX_CXX_WARNING_FLAGS LIBCXX_HAS_WERROR_FLAG -Werror)<br>
>    append_if(LIBCXX_CXX_WARNING_FLAGS LIBCXX_HAS_WX_FLAG -WX)<br>
> +else()<br>
> +  append_if(LIBCXX_CXX_WARNING_FLAGS LIBCXX_HAS_WNO_ERROR_FLAG -Wno-error)<br>
> +  append_if(LIBCXX_CXX_WARNING_FLAGS LIBCXX_HAS_NO_WX_FLAG -WX-)<br>
>  endif()<br>
>  if (LIBCXX_ENABLE_PEDANTIC)<br>
>    append_if(LIBCXX_CXX_WARNING_FLAGS LIBCXX_HAS_PEDANTIC_FLAG -pedantic)<br>
><br>
> Modified: libcxx/trunk/cmake/config-ix.cmake<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/cmake/config-ix.cmake?rev=191814&r1=191813&r2=191814&view=diff">http://llvm.org/viewvc/llvm-project/libcxx/trunk/cmake/config-ix.cmake?rev=191814&r1=191813&r2=191814&view=diff</a><br>

> ==============================================================================<br>
> --- libcxx/trunk/cmake/config-ix.cmake (original)<br>
> +++ libcxx/trunk/cmake/config-ix.cmake Wed Oct  2 02:44:19 2013<br>
> @@ -13,9 +13,11 @@ check_cxx_compiler_flag(-Wwrite-strings<br>
>  check_cxx_compiler_flag(-Wno-long-long        LIBCXX_HAS_WNO_LONG_LONG_FLAG)<br>
>  check_cxx_compiler_flag(-pedantic             LIBCXX_HAS_PEDANTIC_FLAG)<br>
>  check_cxx_compiler_flag(-Werror               LIBCXX_HAS_WERROR_FLAG)<br>
> +check_cxx_compiler_flag(-Wno-error            LIBCXX_HAS_WNO_ERROR_FLAG)<br>
>  check_cxx_compiler_flag(-fno-exceptions       LIBCXX_HAS_FNO_EXCEPTIONS_FLAG)<br>
>  check_cxx_compiler_flag(-fno-rtti             LIBCXX_HAS_FNO_RTTI_FLAG)<br>
>  check_cxx_compiler_flag(/WX                   LIBCXX_HAS_WX_FLAG)<br>
> +check_cxx_compiler_flag(/WX-                  LIBCXX_HAS_NO_WX_FLAG)<br>
>  check_cxx_compiler_flag(/EHsc                 LIBCXX_HAS_EHSC_FLAG)<br>
>  check_cxx_compiler_flag(/EHs-                 LIBCXX_HAS_NO_EHS_FLAG)<br>
>  check_cxx_compiler_flag(/EHa-                 LIBCXX_HAS_NO_EHA_FLAG)<br>
><br>
><br>
> _______________________________________________<br>
> cfe-commits mailing list<br>
> <a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</p>