Rainer Orth <r...@cebitec.uni-bielefeld.de> writes:

> As it turned out, my patch to complete the libgm2 autoconf macros works
> on both Linux/sparc64 and Linux/x86_64, but breaks Solaris bootstrap:
>
> /vol/gcc/src/hg/master/local/libgm2/libm2iso/wraptime.cc: In function 'int 
> m2iso_wraptime_gettimeofday(void*, timezone*)':
> /vol/gcc/src/hg/master/local/libgm2/libm2iso/wraptime.cc:148:24: error: 
> invalid conversion from 'void*' to 'timeval*' [-fpermissive]
>   148 |   return gettimeofday (tv, tz);
>       |                        ^~
>       |                        |
>       |                        void*
> In file included from /usr/include/sys/select.h:27,
>                  from /usr/include/sys/types.h:665,
>                  from 
> /vol/gcc/src/hg/master/local/libgm2/libm2iso/wraptime.cc:35:
> /usr/include/sys/time.h:444:18: note:   initializing argument 1 of 'int 
> gettimeofday(timeval*, void*)'
>   444 | int gettimeofday(struct timeval *_RESTRICT_KYWD, void 
> *_RESTRICT_KYWD);
>       |                  ^
> /vol/gcc/src/hg/master/local/libgm2/libm2iso/wraptime.cc: In function 'int 
> m2iso_wraptime_settimeofday(void*, timezone*)':
> /vol/gcc/src/hg/master/local/libgm2/libm2iso/wraptime.cc:165:24: error: 
> invalid conversion from 'void*' to 'timeval*' [-fpermissive]
>   165 |   return settimeofday (tv, tz);
>       |                        ^~
>       |                        |
>       |                        void*
> /usr/include/sys/time.h:431:18: note:   initializing argument 1 of 'int 
> settimeofday(timeval*, void*)'
>   431 | int settimeofday(struct timeval *, void *);
>       |                  ^~~~~~~~~~~~~~~~
>
> This happens because on Linux only HAVE_[GS]ETTIMEOFDAY is defined,
> while Solaris has both that and HAVE_STRUCT_TIMEZONE, selecting
> different implementations.
>
> Fixed by casting tv to struct timeval *.
>
> I thought about changing the signatures instead to take a struct timeval
> * instead, but that seemed risky given that there's a
> HAVE_STRUCT_TIMEVAL, so would probably break other targets.
>
> Bootstrapped without regressions on i386-pc-solaris2.11,
> sparc-sun-solaris2.11, and x86_64-pc-linux-gnu.
>
> Ok for trunk?

yes sure, lgtm - many thanks,

regards,
Gaius

Reply via email to