FreeBSD build error - workaround patch
Michael Neumann
mneuma2s at smail.inf.fh-bonn-rhein-sieg.de
Thu May 31 15:25:22 CEST 2007
Didn't take a closer look on silctime.h yesterday. This one should be correct
now. I also missed to mention, that you forgot to divide utc_minute to get
minutes instead of seconds.
$ diff -u lib/silcutil/silctime.c.org lib/silcutil/silctime.c
--- lib/silcutil/silctime.c.org Tue May 8 22:21:17 2007
+++ lib/silcutil/silctime.c Thu May 31 15:20:44 2007
@@ -134,13 +134,29 @@
_timezone / 3600);
ret_time->utc_minute = (ret_time->utc_east ? (-(_timezone)) % 3600 :
_timezone % 3600);
+ ret_time->utc_minute /= 60;
#else
#if defined(HAVE_TZSET)
+#ifdef __FreeBSD__
+ ret_time->utc_east = time->tm_gmtoff > 0 ? 1 : 0;
+ if(ret_time->utc_east == 1)
+ {
+ ret_time->utc_hour = time->tm_gmtoff / 3600;
+ ret_time->utc_minute = (time->tm_gmtoff % 3600) / 60;
+ }
+ else
+ {
+ ret_time->utc_hour = (-time->tm_gmtoff) / 3600;
+ ret_time->utc_minute = ((-time->tm_gmtoff) % 3600) / 60;
+ }
+#else
ret_time->utc_east = timezone < 0 ? 1 : 0;
ret_time->utc_hour = (ret_time->utc_east ? (-(timezone)) / 3600 :
timezone / 3600);
ret_time->utc_minute = (ret_time->utc_east ? (-(timezone)) % 3600 :
timezone % 3600);
+ ret_time->utc_minute /= 60;
+#endif /* __FreeBSD__ */
#endif /* HAVE_TZSET */
#endif /* SILC_WIN32 */
Michael Neumann <mneuma2s at smail.inf.fh-brs.de> wrote:
> Hi,
>
> i tried to compile the silc client 1.1 beta 6 in my FreeBSD machine.
> Happens to not like the glibc-specific timezone variable. This patch
> works for me and i don't know what'll happen when gmtime fails.
>
> $ diff -u lib/silcutil/silctime.c.org lib/silcutil/silctime.c
> --- lib/silcutil/silctime.c.org Tue May 8 22:21:17 2007
> +++ lib/silcutil/silctime.c Thu May 31 02:03:15 2007
> @@ -136,11 +136,21 @@
> _timezone % 3600);
> #else
> #if defined(HAVE_TZSET)
> +#ifdef __FreeBSD__
> + ret_time->utc_east = time->tm_gmtoff > 0 ? 1 : 0;
> + time = gmtime(&timeval);
> + if(!time)
> + return FALSE;
> + ret_time->utc_hour = time->tm_hour;
> + ret_time->utc_minute = time->tm_min;
> +#else
> ret_time->utc_east = timezone < 0 ? 1 : 0;
> ret_time->utc_hour = (ret_time->utc_east ? (-(timezone)) / 3600 :
> timezone / 3600);
> ret_time->utc_minute = (ret_time->utc_east ? (-(timezone)) % 3600 :
> timezone % 3600);
> + ret_time->utc_minute /= 60;
> +#endif /* __FreeBSD__ */
> #endif /* HAVE_TZSET */
> #endif /* SILC_WIN32 */
More information about the silc-devel
mailing list