On Sat, 2012-11-03 at 12:50 -0700, Xin Li wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA256 > > On 11/3/12 11:45 AM, Ian Lepore wrote: > > On Sat, 2012-11-03 at 18:38 +0000, Xin LI wrote: > >> Author: delphij Date: Sat Nov 3 18:38:28 2012 New Revision: > >> 242519 URL: http://svn.freebsd.org/changeset/base/242519 > > [...] > > Shouldn't we also change the type of the variable 'a' from double > > to int64 (and the strtod() and the 1e9 constant), thus removing all > > dregs of floating point where it isn't really needed? (Sorry, but > > 20 years of working on wimpy embedded systems without FP hardware > > just make me blurt out these things automatically). > > While it do make sense in practical (in my opinion), I think that > would lose functionality because the watchdog can be programmed in a > manner that timeout is set to smaller than 1 second (not for the > demonized case). Maybe we can make it an build option? > > Index: Makefile > =================================================================== > - --- Makefile (revision 242519) > +++ Makefile (working copy) > @@ -7,7 +7,15 @@ MAN= watchdogd.8 watchdog.8 > LDADD= -lutil > DPADD= ${LIBUTIL} > > +.if defined(SMALL) > +CFLAGS+= -DSMALL > +.endif > + > .include <bsd.prog.mk> > > test: ${PROG} > +.if defined(SMALL) > + ./${PROG} -t 1 > +.else > ./${PROG} -t 1.0 > +.endif > Index: watchdogd.c > =================================================================== > - --- watchdogd.c (revision 242519) > +++ watchdogd.c (working copy) > @@ -241,7 +241,11 @@ parseargs(int argc, char *argv[]) > { > int c; > char *p; > +#if defined(SMALL) > + long a; > +#else > double a; > +#endif > > c = strlen(argv[0]); > if (argv[0][c - 1] == 'd') > @@ -273,7 +277,11 @@ parseargs(int argc, char *argv[]) > case 't': > p = NULL; > errno = 0; > +#if defined(SMALL) > + a = strtol(optarg, &p, 0); > +#else > a = strtod(optarg, &p); > +#endif > if ((p != NULL && *p != '\0') || errno != 0) > errx(EX_USAGE, "-t argument is not a > number"); > if (a < 0) >
Oh. I remembered that < WD_TO_1SEC check and somehow completely forgot the is_daemon part and its implication; I just thought timeouts of less than 1 second weren't allowed. It's hard for me to imagine someone setting the timeout to less than 1 second, but if that's been a supported feature all along then we should probably just leave things as-is. Getting libm out of the picture was the big win, the remaining FP code is a pretty small thing. -- Ian _______________________________________________ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"