[CMake] CMake 2.8.1 RC 4 is ready to try

Eric Noulard eric.noulard at gmail.com
Fri Mar 5 16:57:39 EST 2010


2010/3/5 Bill Hoffman <bill.hoffman at kitware.com>:
> Eric Noulard wrote:
>>
>> 2010/3/5 Bill Hoffman <bill.hoffman at kitware.com>:
>>>
>>> CMake 2.8.1 RC 4 is ready to try:
>>>
>>> http://www.cmake.org/files/v2.8/?C=M;O=D
>>>
>>> Please try your projects with it.   If you find any issues, let me know.
>>> I think this is about it.  So, if I don't hear anything by Monday, this
>>> is
>>> going to be 2.8.1.
>>
>> Not really a show-stopper since I have no problem using this RC
>> but I do have a problem "Building it" on 2 linux boxes
>> (first is Ubuntu 9.10 and the other is Fedora 11) using gcc 4.4.1:
>>
>> Same error:
>> Linking CXX executable cmsysTestsCxx
>> [ 10%] Built target cmsysTestsCxx
>> [ 13%] Built target cmzlib
>> [ 14%] Building C object Utilities/cmcurl/CMakeFiles/cmcurl.dir/base64.o
>> In file included from /usr/include/stdlib.h:320,
>>                 from
>> /home/usdtim/Erk/CMake/CMake-gitted/Utilities/cmcurl/base64.c:37:
>> /usr/include/sys/types.h:110: error: conflicting types for ‘ssize_t’
>> /home/usdtim/Erk/CMake/CMake-gitted/build/Utilities/cmcurl/config.h:727:
>> note: previous declaration of ‘ssize_t’ was here
>> make[2]: *** [Utilities/cmcurl/CMakeFiles/cmcurl.dir/base64.o] Erreur 1
>> make[1]: *** [Utilities/cmcurl/CMakeFiles/cmcurl.dir/all] Erreur 2
>> make: *** [all] Erreur 2
>>
>>
>> If I comment-out the offending (re)define in cmcurl/config.h.in
>> I can compile and use with no noticeable trouble.
>>
>>
> How are you building it?

Yes I do.

> Do other versions of CMake have this issue? Sounds
> like a try-compile test failed.

HEAD has the same issue.
I did not tried previous version [yet]

the culprit seems to be that
generated (configured)

Utilities/cmcurl/config.h

does the following:
#ifndef SIZEOF_SSIZE_T
# if SIZEOF_LONG == SIZEOF_SIZE_T
   typedef long ssize_t;
# elif SIZEOF_LONG_LONG == SIZEOF_SIZE_T
   typedef long long ssize_t;
# elif SIZEOF___INT64 == SIZEOF_SIZE_T
   typedef __int64 ssize_t;
# else
   typedef int ssize_t;
# endif

however, in this case CheckTypeSize macro obviously fails to find the
size of the type "ssize_t":

/* The size of `size_t', as computed by sizeof. */
#define SIZEOF_SIZE_T 4

/* The size of `ssize_t', as computed by sizeof. */


/* The size of `time_t', as computed by sizeof. */
#define SIZEOF_TIME_T 4

However <sys/types.h> is defining the type...

I'll give 2.8.0 and 2.6.4 a compile try and give you feedback.


-- 
Erk
Membre de l'April - « promouvoir et défendre le logiciel libre » -
http://www.april.org


More information about the CMake mailing list