[CMake] cmake 2.8.1 compile problems on Solaris?
Michael Wild
themiwi at gmail.com
Thu Jun 3 10:13:58 EDT 2010
I don't have solaris around, so I can't check myself, but I suspect that CMake should be defining BSD_COMP when compiling libarchive or even better, libarchive should be fixed to include <sys/ioccom.h> on solaris.
Michael
On 3. Jun, 2010, at 15:28 , Attila Nagy wrote:
> Aha, thanks for the correction!
>
> (I forgot to mention that I tried sys/ioctl.h too without the conditional defines. But I'm not a programmer, so I wasn't sure about that header file.)
>
> So the main thing is that I can't find neither _IOR nor _IOW in sys/ioctl.h
> (I grepped through /usr/include).
>
> But I have found two ways to overcome this, and compile without a warning:
>
> 1.) either
> #define BSD_COMP
>
> 2.) or
> #include <sys/ioccom.h>
>
> in
> CMake/Utilities/cmlibarchive/libarchive/archive_write_disk.c
>
> because _IOR and _IOW is defined in this file on Solaris.
>
> I got the idea from a 1995 post (http://www.mail-archive.com/info-afs@transarc.com/msg05289.html) - this still seems to be valid.
>
> Or am I still missing something?
> If this is _not_ the case :), could this be corrected in the sources?
>
> Thank you very much,
> Attila
>
> --- On Thu, 6/3/10, Michael Wild <themiwi at gmail.com> wrote:
>
>> From: Michael Wild <themiwi at gmail.com>
>> Subject: Re: [CMake] cmake 2.8.1 compile problems on Solaris?
>> To: "Attila Nagy" <nagy.attila at yahoo.com>
>> Cc: cmake at cmake.org
>> Date: Thursday, June 3, 2010, 2:08 PM
>>
>> On 3. Jun, 2010, at 13:32 , Attila Nagy wrote:
>>
>>> Hi all,
>>>
>>> is this known, or is this just me doing something
>> wrong?
>>> I cloned the cmake git repository, then changed to
>> v2.8.1.
>>> After a succesfull bootsrap, when I try to compile
>> Cmake, I get the bellow error (please find it at the end of
>> the mail.)
>>> I'm doing it on Solaris snv_125 (SXCE), Studio 12.1.
>>> The details:
>>>
>>> # cc -V
>>> cc: Sun C 5.10 SunOS_i386 Patch 142363-04 2010/02/24
>>> usage: cc [ options] files. Use 'cc -flags' for
>> details
>>> # CC -V
>>> CC: Sun C++ 5.10 SunOS_i386 128229-06 2010/02/10
>>> Usage: CC [ options ] files. Use 'CC -flags' for
>> details
>>> # uname -a
>>> SunOS orlprint 5.11 snv_125 i86pc i386 i86pc
>>>
>>> Could please somebody take a look at it, or does
>> someone have a suggestion I could try?
>>> If I explicitly include sys/types.h, I get the same
>> error.
>>>
>>> Thank you,
>>> Attila
>>>
>>>
>>> [ 34%] Building C object
>> Utilities/cmlibarchive/libarchive/CMakeFiles/cmlibarchive.dir/archive_write_disk.c.o
>>> [ 34%] Building C object
>> Source/CursesDialog/form/CMakeFiles/cmForm.dir/fty_num.o
>>> [ 34%] Building C object
>> Source/CursesDialog/form/CMakeFiles/cmForm.dir/fty_regex.o
>>>
>> "/ufsbckp/head-64-slicer/superbuild/Slicer3-lib/CMake/Utilities/cmlibarchive/libarchive/archive_write_disk.c",
>> line 2237: warning: implicit function declaration: _IOR
>>>
>> "/ufsbckp/head-64-slicer/superbuild/Slicer3-lib/CMake/Utilities/cmlibarchive/libarchive/archive_write_disk.c",
>> line 2237: syntax error before or at: long
>>>
>> "/ufsbckp/head-64-slicer/superbuild/Slicer3-lib/CMake/Utilities/cmlibarchive/libarchive/archive_write_disk.c",
>> line 2239: warning: implicit function declaration: _IOW
>>>
>> "/ufsbckp/head-64-slicer/superbuild/Slicer3-lib/CMake/Utilities/cmlibarchive/libarchive/archive_write_disk.c",
>> line 2239: syntax error before or at: long
>>>
>> "/ufsbckp/head-64-slicer/superbuild/Slicer3-lib/CMake/Utilities/cmlibarchive/libarchive/archive_write_disk.c",
>> line 2242: undefined label: fail
>>>
>> "/ufsbckp/head-64-slicer/superbuild/Slicer3-lib/CMake/Utilities/cmlibarchive/libarchive/archive_write_disk.c",
>> line 2245: syntax error before or at: if
>>>
>> "/ufsbckp/head-64-slicer/superbuild/Slicer3-lib/CMake/Utilities/cmlibarchive/libarchive/archive_write_disk.c",
>> line 2245: syntax error before or at: (
>>>
>> "/ufsbckp/head-64-slicer/superbuild/Slicer3-lib/CMake/Utilities/cmlibarchive/libarchive/archive_write_disk.c",
>> line 2245: warning: undefined or missing type for: long
>>>
>> "/ufsbckp/head-64-slicer/superbuild/Slicer3-lib/CMake/Utilities/cmlibarchive/libarchive/archive_write_disk.c",
>> line 2245: cannot recover from previous errors
>>> cc: acomp failed for
>> /ufsbckp/head-64-slicer/superbuild/Slicer3-lib/CMake/Utilities/cmlibarchive/libarchive/archive_write_disk.c
>>> gmake[2]: ***
>> [Utilities/cmlibarchive/libarchive/CMakeFiles/cmlibarchive.dir/archive_write_disk.c.o]
>> Error 1
>>
>>
>> All of those errors have nothing to do with CMake, and it's
>> not sys/types.h you're missing, it's sys/ioctl.h (it's
>> complaining about missing declarations for _IOR and _IOW).
>>
>> Michael
>
More information about the CMake
mailing list