Re: [Plib-users] Installing plib-1.4.1
Brought to you by:
sjbaker
|
From: Lars T. <to...@cs...> - 2001-07-12 18:54:41
|
On Wed, 11 Jul 2001, Sam Stickland wrote:
>
> ----- Original Message -----
> From: "Lars Tornow" <to...@cs...>
> To: <pli...@li...>
> Sent: Wednesday, July 11, 2001 8:47 PM
> Subject: [Plib-users] Installing plib-1.4.1
>
>
> > Hallo,
> >
> > I've got some problems installing plib version 1.4.1. The compiler says...
> >
> > c++ -DPACKAGE=\"plib\" -DVERSION=\"1.4.1\" -DHAVE_LIBDL=1 -DHAVE_LIBGL=1
> > -DHAVE_LIBGLU=1 -DHAVE_LIBGLUT=1 -DHAVE_GL_GL_H=1 -DHAVE_GL_GLU_H=1
> > -DLINUX_JOYSTICK_IS_PRESENT=1 -DGLUT_IS_PRESENT=1 -I. -I.
> > -I../../src/util -I/usr/local/include -g -O2 -O6 -Wall -c netSocket.cxx
> > netSocket.cxx: In method `int netSocket::accept(netAddress *)':
> > netSocket.cxx:217: passing `int *' as argument 3 of `accept(int, sockaddr
> > *, socklen_t *)' changes signedness
> > netSocket.cxx: In method `int netSocket::recvfrom(void *, int, int,
> > netAddress *)':
> > netSocket.cxx:254: passing `int *' as argument 6 of `recvfrom(int, void *,
> > unsigned int, int, sockaddr *, socklen_t *)' changes signedness
> > make: *** [netSocket.o] Error 1
> >
> > This happens only in version 1.4.0 and 1.4.1. Plib-1.2.0 compiles fine
> > (but I need 1.4.1 :) for FlightGear-0.7.8; Thanks to booth teams - great
> > work) I have gcc-2.95.2 and a normal SuSE 7.0.
> >
> > Any guesses what goes wrong ?
>
> Yes - on some platforms socklen_t is an int, and on others an unsigned int. It appears in these cases 'int' has been written rather
> than socklen_t. So this code will work on some setups, but complain on others.
>
> I don't have time right now to fix this myself, but I've sent this mail to the developers list so hopefully one of them can pick
> this up.
>
> Sam
>
hello,
I've found a quick solution for this:
an expicit cast to unsigned int
int
netSocket::accept ( netAddress* addr )
{
assert ( handle != -1 ) ;
socklen_t addr_len = sizeof(netAddress) ;
return ::accept(handle,(sockaddr*)addr,&(unsigned int)addr_len);
}
I know it doesn't solve the problem on the root, but ...
for me it works for now :)
bye lars.
|