Tarantool development patches archive
 help / color / mirror / Atom feed
From: Alexander Turenko <alexander.turenko@tarantool.org>
To: Vladislav Shpilevoy <v.shpilevoy@tarantool.org>
Cc: Vladimir Davydov <vdavydov.dev@gmail.com>,
	tarantool-patches@freelists.org
Subject: Re: [PATCH 1/1] Fix gcov on Mac
Date: Fri, 21 Dec 2018 12:58:47 +0300	[thread overview]
Message-ID: <20181221095847.pgzzjfmnx2gvum37@tkn_work_nb> (raw)
In-Reply-To: <20181218101108.wt5vd2sxztx7d4pc@esperanza>

I think we should check for __gcov_flush on Mac OS too, because it is in
the libraries; for me in:

/Applications/Xcode83.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/8.1.0/lib/darwin/libclang_rt.profile_tvos.a
/Applications/Xcode83.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/8.1.0/lib/darwin/libclang_rt.profile_tvossim.a

Don't sure which one is actually used.

But we should not add -lgcov (it assumed by -ftest-coverage on GCC, but
not on clang).

This patch works for me on Mac OS (and should on Linux too):

diff --git a/cmake/profile.cmake b/cmake/profile.cmake
index 02d622187..3e8f1499b 100644
--- a/cmake/profile.cmake
+++ b/cmake/profile.cmake
@@ -1,4 +1,6 @@
-check_library_exists (gcov __gcov_flush  ""  HAVE_GCOV)
+set(CMAKE_REQUIRED_FLAGS "-fprofile-arcs -ftest-coverage")
+check_library_exists("" __gcov_flush "" HAVE_GCOV)
+set(CMAKE_REQUIRED_FLAGS "")
 
 set(ENABLE_GCOV_DEFAULT OFF)
 option(ENABLE_GCOV "Enable integration with gcov, a code coverage program" ${ENABLE_GCOV_DEFAULT})

WBR, Alexander Turenko.

On Tue, Dec 18, 2018 at 01:11:08PM +0300, Vladimir Davydov wrote:
> Alexander, please take a look.
> 
> On Mon, Dec 17, 2018 at 02:58:21PM +0300, Vladislav Shpilevoy wrote:
> > ---
> > https://github.com/tarantool/tarantool/tree/gerold103/enable-gcov-on-mac
> > 
> >  cmake/profile.cmake | 12 +++++++-----
> >  1 file changed, 7 insertions(+), 5 deletions(-)
> > 
> > diff --git a/cmake/profile.cmake b/cmake/profile.cmake
> > index 278399155..866c8a787 100644
> > --- a/cmake/profile.cmake
> > +++ b/cmake/profile.cmake
> > @@ -1,12 +1,16 @@
> > -check_library_exists (gcov __gcov_flush  ""  HAVE_GCOV)
> > +check_library_exists(gcov __gcov_flush  ""  HAVE_GCOV)
> >  
> >  set(ENABLE_GCOV_DEFAULT OFF)
> >  option(ENABLE_GCOV "Enable integration with gcov, a code coverage program" ${ENABLE_GCOV_DEFAULT})
> >  
> >  if (ENABLE_GCOV)
> >      if (NOT HAVE_GCOV)
> > -    message (FATAL_ERROR
> > -         "ENABLE_GCOV option requested but gcov library is not found")
> > +        if (CMAKE_COMPILER_IS_CLANG)
> > +            message(WARNING "GCOV is available on clang from 3.0.0")
> > +            set(HAVE_GCOV 1)
> > +        else()
> > +            message(FATAL_ERROR "ENABLE_GCOV option requested but gcov library is not found")
> > +        endif()
> >      endif()
> >  
> >      add_compile_flags("C;CXX"
> > @@ -18,8 +22,6 @@ if (ENABLE_GCOV)
> >      set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -ftest-coverage")
> >      set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fprofile-arcs")
> >      set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -ftest-coverage")
> > -
> > -   # add_library(gcov SHARED IMPORTED)
> >  endif()
> >  
> >  if (NOT CMAKE_BUILD_TYPE STREQUAL "Debug")

  reply	other threads:[~2018-12-21  9:58 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-17 11:58 Vladislav Shpilevoy
2018-12-18 10:11 ` Vladimir Davydov
2018-12-21  9:58   ` Alexander Turenko [this message]
2018-12-21 10:54     ` [tarantool-patches] " Vladislav Shpilevoy
2018-12-21 13:39     ` Vladislav Shpilevoy
2018-12-21 13:46       ` Alexander Turenko
2018-12-21 15:33       ` Vladimir Davydov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181221095847.pgzzjfmnx2gvum37@tkn_work_nb \
    --to=alexander.turenko@tarantool.org \
    --cc=tarantool-patches@freelists.org \
    --cc=v.shpilevoy@tarantool.org \
    --cc=vdavydov.dev@gmail.com \
    --subject='Re: [PATCH 1/1] Fix gcov on Mac' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox