From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id 5DBFA2B1A3 for ; Thu, 20 Sep 2018 16:01:24 -0400 (EDT) Received: from turing.freelists.org ([127.0.0.1]) by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ueyLKg2sU6u5 for ; Thu, 20 Sep 2018 16:01:24 -0400 (EDT) Received: from smtp48.i.mail.ru (smtp48.i.mail.ru [94.100.177.108]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTPS id 1D36D2B19B for ; Thu, 20 Sep 2018 16:01:24 -0400 (EDT) Subject: [tarantool-patches] Re: [PATCH] Fix clang build (fails on -Wno-cast-function-type) References: From: Vladislav Shpilevoy Message-ID: Date: Thu, 20 Sep 2018 22:01:20 +0200 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: tarantool-patches-bounce@freelists.org Errors-to: tarantool-patches-bounce@freelists.org Reply-To: tarantool-patches@freelists.org List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: tarantool-patches List-subscribe: List-owner: List-post: List-archive: To: tarantool-patches@freelists.org, Alexander Turenko , Kirill Yukhin Cc: Konstantin Osipov Thanks! It works for me. On 20/09/2018 21:56, Alexander Turenko wrote: > The problem is that clang does not support -Wno-cast-function-type flag. > It is the regression from 8c538963a78f22746233b22648fb2aa6933dc135. > > Follow up of #3685. > Fixes #3701. > --- > > branch: https://github.com/tarantool/tarantool/tree/Totktonada/gh-3701-fix-clang-build > issue: https://github.com/tarantool/tarantool/issues/3701 > > Please, check-in into 1.9 branch. > > cmake/compiler.cmake | 10 ++++++++++ > src/CMakeLists.txt | 8 -------- > test/unit/CMakeLists.txt | 8 -------- > 3 files changed, 10 insertions(+), 16 deletions(-) > > diff --git a/cmake/compiler.cmake b/cmake/compiler.cmake > index 05d33ab48..f1a861533 100644 > --- a/cmake/compiler.cmake > +++ b/cmake/compiler.cmake > @@ -95,6 +95,7 @@ check_c_compiler_flag("-Wno-varargs" CC_HAS_WNO_VARARGS) > check_c_compiler_flag("-Wno-char-subscripts" CC_HAS_WNO_CHAR_SUBSCRIPTS) > check_c_compiler_flag("-Wno-format-truncation" CC_HAS_WNO_FORMAT_TRUNCATION) > check_c_compiler_flag("-Wno-implicit-fallthrough" CC_HAS_WNO_IMPLICIT_FALLTHROUGH) > +check_c_compiler_flag("-Wno-cast-function-type" CC_HAS_WNO_CAST_FUNCTION_TYPE) > > # > # Perform build type specific configuration. > @@ -247,6 +248,15 @@ macro(enable_tnt_compile_flags) > add_compile_flags("C" "-fno-gnu89-inline") > endif() > > + # Suppress noise GCC 8 warnings. > + # > + # reflection.h casts a pointer to a member function to an another pointer > + # to a member function to store it in a structure, but cast it back before > + # a call. It is legal and does not lead to an undefined behaviour. > + if (CC_HAS_WNO_CAST_FUNCTION_TYPE) > + add_compile_flags("C;CXX" "-Wno-cast-function-type") > + endif() > + > add_definitions("-D__STDC_FORMAT_MACROS=1") > add_definitions("-D__STDC_LIMIT_MACROS=1") > add_definitions("-D__STDC_CONSTANT_MACROS=1") > diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt > index 2e7e1c436..b1c4cd711 100644 > --- a/src/CMakeLists.txt > +++ b/src/CMakeLists.txt > @@ -3,14 +3,6 @@ > # > enable_tnt_compile_flags() > > -# Suppress noise GCC 8 warnings. > -# > -# reflection.h casts a pointer to a member function to an another pointer to a > -# member function to store it in a structure, but cast it back before a call. > -# It is legal and does not lead to an undefined behaviour. > -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-cast-function-type") > -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-cast-function-type") > - > include_directories(${LIBEV_INCLUDE_DIR}) > include_directories(${LIBEIO_INCLUDE_DIR}) > include_directories(${LIBCORO_INCLUDE_DIR}) > diff --git a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt > index b6ffe1cfa..943788b94 100644 > --- a/test/unit/CMakeLists.txt > +++ b/test/unit/CMakeLists.txt > @@ -5,14 +5,6 @@ endif() > file(GLOB all_sources *.c *.cc) > set_source_files_compile_flags(${all_sources}) > > -# Suppress noise GCC 8 warnings. > -# > -# reflection.h casts a pointer to a member function to an another pointer to a > -# member function to store it in a structure, but cast it back before a call. > -# It is legal and does not lead to an undefined behaviour. > -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-cast-function-type") > -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-cast-function-type") > - > include_directories(${PROJECT_SOURCE_DIR}/src) > include_directories(${PROJECT_BINARY_DIR}/src) > include_directories(${PROJECT_SOURCE_DIR}/src/box) >