On Wednesday, 04 October 2006 at 16:50, David Haguenauer wrote: > Hi all, > > In order to compile mutt-1.5.13 on a machine with an old compiler > suite (based on GCC 3.3), I had to add an include directive to file > mutt_socket.c. Otherwise, GCC would complain that struct timeval is an > incomplete type. The error appears in the following function, where > `tv' is declared: > > int raw_socket_poll (CONNECTION* conn) > { > fd_set rfds; > struct timeval tv = { 0, 0 }; > > if (conn->fd < 0) > return -1; > > FD_ZERO (&rfds); > FD_SET (conn->fd, &rfds); > > return select (conn->fd + 1, &rfds, NULL, NULL, &tv); > } > > > Here's what fixed it for me: > > $ diff -u mutt_socket.c{~,} > +++ mutt_socket.c Wed Oct 4 21:13:20 2006 > @@ -38,6 +38,7 @@ > #include <stdlib.h> > #include <fcntl.h> > #include <sys/types.h> > +#include <sys/time.h> > #include <sys/socket.h> > #ifdef HAVE_SYS_SELECT_H > #include <sys/select.h> > > I tried the same patch on a more modern system (Fedora Core 4 on > AMD64, which is based on GCC 4.0.2), and compilation went fine. So I > assume including this patch wouldn't do any harm (assuming there is > any interest for making Mutt compatible with antique compiler suites). Thanks for the report. I've applied the following variant: diff -u -p -r3.18 mutt_socket.c --- mutt_socket.c 5 Aug 2006 00:48:16 -0000 3.18 +++ mutt_socket.c 30 Oct 2006 02:52:18 -0000 @@ -38,6 +38,9 @@ #include <stdlib.h> #include <fcntl.h> #include <sys/types.h> +#ifdef HAVE_SYS_TIME_H +#include <sys/time.h> +#endif #include <sys/socket.h> #ifdef HAVE_SYS_SELECT_H #include <sys/select.h>
Attachment:
pgpxCtNrh0Gqc.pgp
Description: PGP signature