[Paraview] Is There An Error In vtkSocketCommunicator (2.4.2)?

Kent Eschenberg eschenbe at psc.edu
Tue Feb 21 15:06:39 EST 2006


Clint, that sounds like a bug in CMake or one of its files. Does this call 
for a bug submission?

Bill asked about a place in CMakeOutput.log and CMakeError.log. The latter 
doesn't exist, and the former contains neither "socklen_t" nor 
"VTK_HAVE_GETSOCKNAME_WITH_SOCKLEN_T". These files are those left after 2 
cycles of cmake/make. Given Clint's observation, is there a need to 
re-create the state of the first cycle?

Thanks for your help!
Kent

--On Tuesday, February 21, 2006 09:50:38 AM -0700 Clinton Stimpson 
<clinton at elemtech.com> wrote:

>
> I think it is because the vtkConfigure.h is written out before CMake has
> a chance to go in the Parallel directory to find out whether to use
> socklen_t or int.  A second run of cmake updates the vtkConfigure.h file
> with the right stuff, whereas the CMakeCache.txt file doesn't change at
> all.
>
> Clint
>
> William A. Hoffman wrote:
>
>> This means a trycompile was bad.  Can you look at CMakeOutput.log
>> and CMakeError.log and find the place where socken_t was incorrectly
>> determined.
>>
>> -Bill
>>
>>
>> At 03:08 PM 2/17/2006, Kent Eschenberg wrote:
>>
>>
>>> I can't tell whether this is a bug or another dumb thing I've done.
>>> Compiling a fresh download of 2.4.2 on a Fedora Core 4 system (cmake
>>> 2.2-patch 2, gcc 4.0.2) with no changes yields the following error:
>>>
>>> ======
>>> .../VTK/Parallel/vtkSocketCommunicator.cxx:
>>> In member function
>>> virtual int vtkSocketCommunicator::GetPort(int):
>>> error: invalid conversion from int* to socklen_t*
>>> ======
>>>
>>> At the top of this routine are the lines
>>>
>>> ======
>>># if defined(VTK_HAVE_GETSOCKNAME_WITH_SOCKLEN_T)
>>> socklen_t sizebuf = sizeof(sockinfo);
>>># else
>>> int sizebuf = sizeof(sockinfo);
>>># endif
>>> ======
>>>
>>> and the only line in CMakeCache.txt that includes the flag is
>>>
>>> ======
>>> VTK_HAVE_GETSOCKNAME_WITH_SOCKLEN_T:INTERNAL=1
>>> ======
>>>
>>> So, "&sizebuf" is an "int*" and gcc doesn't know how to convert it to
>>> "socklen_t*".
>>>
>>> On a hunch I tried merely re-running cmake then make. None of the files
>>> from the first cycle were changed. This worked without problems.
>>>
>>> What do you think is wrong?
>>>
>>> Thanks!
>>> Kent
>>> Pittsburgh Supercomputing Center
>


More information about the ParaView mailing list