[prev in list] [next in list] [prev in thread] [next in thread] 

List:       cmake
Subject:    Re: [CMake] Problems resolving PTHREAD_* symbols.
From:       Robert Maynard <robert.maynard () kitware ! com>
Date:       2014-09-23 15:31:58
Message-ID: CAFzjYVo0EWNHtr-8Yju26SpJfwqmn7w1ZUbYjq5=9yQ6x_bz_w () mail ! gmail ! com
[Download RAW message or body]

To get information on why a try_compile is failing you can use the
--debug-trycompile option which will stop CMake from deleting the
try_compile build tree code. Now this flag is only useful on a single
try_compile at a time.

On Tue, Sep 23, 2014 at 10:50 AM, Rick McGuire <object.rexx@gmail.com> wrote:
> This is still driving us crazy.  Digging a little deeper into this, the
> symbols we need are defined as enums on Linux, which explains why
> check_symbol_exists() does not work there.  The OSX pthread.h header uses
> defines, but for some reason, the check_c_source_compiles method is still
> failing.  We've updated our script to use
> 
> check_c_source_compiles("#include <pthread.h>
> int main(int arg, char **argv) {
> int tryme;
> tryme = PTHREAD_MUTEX_ERRORCHECK;
> return 0;}"
> HAVE_PTHREAD_MUTEX_ERRORCHECK)
> if (NOT DEFINED HAVE_PTHREAD_MUTEX_ERRORCHECK)
> check_symbol_exists(PTHREAD_MUTEX_ERRORCHECK "pthread.h"
> HAVE_PTHREAD_MUTEX_ERRORCHECK)
> endif ()
> 
> 
> to try both methods, but this is still failing on the Mac and a couple of
> the Linux versions we build for.
> 
> 
> This is driving us nuts, since we don't understand why the
> check_c_source_compiler check is not working.  Is there some way we can get
> debug information about why the compile fails?  That might give us some
> clues.
> 
> 
> Rick
> 
> 
> On Mon, Sep 22, 2014 at 12:06 PM, Rick McGuire <object.rexx@gmail.com>
> wrote:
> > 
> > We have some semaphore code that has conditional compilation based on
> > #defines in config.h.  We're having problems with resolving the various
> > PTHREAD_* symbols to get the correct values in config.h.  Our first attempt
> > at this (done on Linux) used
> > 
> > check_symbol_exists(PTHREAD_MUTEX_RECURSIVE "pthread.h"
> > HAVE_PTHREAD_MUTEX_RECURSIVE)
> > 
> > 
> > This did not pick the symbol up correctly.  Eventually, we got things to
> > work by using
> > 
> > 
> > check_c_source_compiles("#include <pthread.h>
> > int main(int arg, char **argv) {
> > int tryme;
> > tryme = PTHREAD_MUTEX_RECURSIVE;
> > return 0;}"
> > HAVE_PTHREAD_MUTEX_RECURSIVE)
> > 
> > and got everything to build cleanly.  Over the weekend, we tried building
> > on OSX for the first time, and once again, we were not resolving that these
> > symbols existed.  What are we missing here?  Is there some technique we
> > should be using that will work across the various platforms?
> > 
> > 
> > Rick
> > 
> > 
> 
> 
> --
> 
> Powered by www.kitware.com
> 
> Please keep messages on-topic and check the CMake FAQ at:
> http://www.cmake.org/Wiki/CMake_FAQ
> 
> Kitware offers various services to support the CMake community. For more
> information on each offering, please visit:
> 
> CMake Support: http://cmake.org/cmake/help/support.html
> CMake Consulting: http://cmake.org/cmake/help/consulting.html
> CMake Training Courses: http://cmake.org/cmake/help/training.html
> 
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
> 
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/cmake
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: \
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information \
on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at \
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic