Received: from louie.udel.edu by huey.udel.edu id aa16943; 4 Mar 94 6:43 EST Received: from faui45.informatik.uni-erlangen.de by louie.udel.edu id aa02686; 4 Mar 94 6:34 EST Received: from faui43.informatik.uni-erlangen.de by uni-erlangen.de with SMTP; id AA12349 (5.65c-6/7.3v-FAU); Fri, 4 Mar 1994 12:34:08 +0100 Received: from faui45x.informatik.uni-erlangen.de by immd4.informatik.uni-erlangen.de with SMTP; id AA26044 (5.65c-6/7.3m-FAU); Fri, 4 Mar 1994 12:34:06 +0100 From: Frank Kardel Message-Id: <199403041134.AA26044@faui43.informatik.uni-erlangen.de> Subject: Re: patches for 3.3l To: Mills@udel.edu Date: Fri, 4 Mar 94 12:33:49 MET In-Reply-To: <9403040253.aa16147@huey.udel.edu>; from "Mills@udel.edu" at Mar 4, 94 2:53 am X-Mailer: ELM [version 2.3 PL11] > Frank, > ld: ../lib/libntp.a: warning: archive has no table of contents; add one using ranlib(1) I didn't fiddle with lib/* this round. Thus it must be some problem with the lib building process. Try make clean and again. I just checked the patches with my 3.3l tree - fine. I do admit being a bit lax when sending you the patches - you might have had to enter some paths manually. > ld: Undefined symbol > _DESauth1crypt .... Happens if ranlib isn't run. > Obviously, it bombed. Not likely being a problem from my patches - the lib/libntp.a got inconsistent. Usually this should not happen (ranlib need to be run on BSD systems). Try building again from scratch (make clean all). If the problem persists look (or send me) at the output of the lib building step something is amiss there at your site. I'll include the patches here again not properly prepared for a plain "patch < patchfile". Hi, Dave, Here are some more patches: - allow parse conversion routines to deliver UTC directly - irix4 machine/cc from Amos - rcs id fixing - linux hints - modload hints - full integration of trak refclock driver (was only partially integrated) diff -c /dev/null compilers/irix4.cc:1.1 *** /dev/null Thu Mar 3 10:29:50 1994 --- compilers/irix4.cc Thu Mar 3 10:29:50 1994 *************** *** 0 **** --- 1,2 ---- + COMPILER= cc -cckr + COPTS= -O2 diff -c hints/linux:1.1.1.3 hints/linux:1.5 *** hints/linux:1.1.1.3 Thu Mar 3 10:30:53 1994 --- hints/linux Thu Mar 3 10:30:53 1994 *************** *** 1,5 **** ! Requirements: kernel 0.99.14y or newer, libc 4.5.20 or newer ------------ With this configuration, xntp should build an run right out of the box --- 1,5 ---- ! Requirements: kernel 0.99.14y or newer, libc 4.5.21 or newer ------------ With this configuration, xntp should build an run right out of the box *************** *** 7,14 **** versions of the kernel or libc, or have any other question not covered in the READMEs / hint files (sorry, necessary comment in the Linux community ;-) feel free to ask me (duwe@informatik.uni-erlangen.de) - - [NOTE: libc-4.5.20 is (or was ? ;-) a beta testing release, but the first - binary compiled under the appropriate kernel. Get this one from - tsx-11:.../GCC/private/dontuse , compile 4.5.19 yourself or wait for the next - puplic relase after 4.5.20] --- 7,9 ---- diff -c include/parse.h:1.1.1.8 include/parse.h:3.17 *** include/parse.h:1.1.1.8 Thu Mar 3 10:31:37 1994 --- include/parse.h Thu Mar 3 10:31:37 1994 *************** *** 1,7 **** /* ! * /src/NTP/REPOSITORY/v3/include/parse.h,v 3.13 1994/01/25 19:04:21 kardel Exp * ! * parse.h,v 3.13 1994/01/25 19:04:21 kardel Exp * * Copyright (c) 1989,1990,1991,1992,1993,1994 * Frank Kardel Friedrich-Alexander Universitaet Erlangen-Nuernberg --- 1,7 ---- /* ! * /src/NTP/REPOSITORY/v3/include/parse.h,v 3.17 1994/03/03 09:27:20 kardel Exp * ! * parse.h,v 3.17 1994/03/03 09:27:20 kardel Exp * * Copyright (c) 1989,1990,1991,1992,1993,1994 * Frank Kardel Friedrich-Alexander Universitaet Erlangen-Nuernberg *************** *** 15,21 **** #ifndef __PARSE_H__ #define __PARSE_H__ #if !(defined(lint) || defined(__GNUC__)) ! static char parsehrcsid[]="parse.h,v 3.13 1994/01/25 19:04:21 kardel Exp FAU"; #endif #include "ntp_types.h" --- 15,21 ---- #ifndef __PARSE_H__ #define __PARSE_H__ #if !(defined(lint) || defined(__GNUC__)) ! static char parsehrcsid[]="parse.h,v 3.17 1994/03/03 09:27:20 kardel Exp"; #endif #include "ntp_types.h" *************** *** 301,306 **** --- 301,307 ---- LONG second; LONG usecond; LONG utcoffset; /* in seconds */ + time_t utctime; /* the actual time - alternative to date/time */ LONG flags; /* current clock status */ }; *************** *** 385,390 **** --- 386,394 ---- * History: * * parse.h,v + * Revision 3.17 1994/03/03 09:27:20 kardel + * rcs ids fixed + * * Revision 3.13 1994/01/25 19:04:21 kardel * 94/01/23 reconcilation * diff -c parse/Makefile.kernel:1.1.1.3 parse/Makefile.kernel:3.9 *** parse/Makefile.kernel:1.1.1.3 Thu Mar 3 10:35:48 1994 --- parse/Makefile.kernel Thu Mar 3 10:35:48 1994 *************** *** 40,46 **** rm -f parsestreams.o parsestreams.o: parsestreams.o.$(KARCH) ! @echo "--- You may load parsestreams.o.$(KARCH) via 'modload parsestreams.o.$(KARCH)' into the kernel" parsestreams.o.$(KARCH): parsestreams.c ../lib/libntp.a libparse_kernel.a ../include/parse.h ../include/sys/parsestreams.h cc -c $(DEFS) -I../include parsestreams.c --- 40,46 ---- rm -f parsestreams.o parsestreams.o: parsestreams.o.$(KARCH) ! @echo "--- You may load parsestreams.o.$(KARCH) via 'modload parsestreams.o' (put in e.g. /sys//OBJ) into the kernel" parsestreams.o.$(KARCH): parsestreams.c ../lib/libntp.a libparse_kernel.a ../include/parse.h ../include/sys/parsestreams.h cc -c $(DEFS) -I../include parsestreams.c diff -c parse/README.new_clocks:1.1.1.3 parse/README.new_clocks:3.5 *** parse/README.new_clocks:1.1.1.3 Thu Mar 3 10:35:52 1994 --- parse/README.new_clocks Thu Mar 3 10:35:53 1994 *************** *** 23,28 **** --- 23,29 ---- LONG second; LONG usecond; LONG utcoffset; /* in seconds */ + time_t utcoffset; /* true utc time instead of date/time */ LONG flags; /* current clock status */ }; *************** *** 52,57 **** --- 53,65 ---- PARSEB_S_PPS supports PPS time stamping PARSEB_S_POSITION supports position information (GPS) + If the utctime field is non zero this value will be take as + time code value. This allows for conversion routines that + already have the utc time value. The utctime field gives the seconds + since Jan 1st 1970, 0:00:00. The useconds field gives the respective + usec value. The fields for date and time (down to second resolution) + will be ignored. + Conversion is done in the cvt_* routine in parse/clk_*.c files. look in them for examples. The basic structure is: diff -c parse/parse.c:1.1.1.9 parse/parse.c:3.22 *** parse/parse.c:1.1.1.9 Thu Mar 3 10:36:06 1994 --- parse/parse.c Thu Mar 3 10:36:07 1994 *************** *** 1,8 **** #if defined(REFCLOCK) && (defined(PARSE) || defined(PARSEPPS)) /* ! * /src/NTP/REPOSITORY/v3/parse/parse.c,v 3.21 1994/02/02 17:45:30 kardel Exp * ! * parse.c,v 3.21 1994/02/02 17:45:30 kardel Exp * * Parser module for reference clock * --- 1,8 ---- #if defined(REFCLOCK) && (defined(PARSE) || defined(PARSEPPS)) /* ! * /src/NTP/REPOSITORY/v3/parse/parse.c,v 3.22 1994/02/25 12:34:49 kardel Exp * ! * parse.c,v 3.22 1994/02/25 12:34:49 kardel Exp * * Parser module for reference clock * *************** *** 556,561 **** --- 556,564 ---- register int i; time_t t; + if (clock->utctime) + return clock->utctime; /* if the conversion routine gets it right away - why not */ + if (clock->year < 100) clock->year += 1900; *************** *** 628,633 **** --- 631,639 ---- t += clock->utcoffset; /* warp to UTC */ /* done */ + + clock->utctime = t; /* documentray only */ + return t; } *************** *** 890,895 **** --- 896,903 ---- if (parseio->parse_flags & PARSE_FIXED_FMT) { + clock.utctime = 0; + switch ((cvtrtc = clockformats[format]->convert ? clockformats[format]->convert(parseio->parse_data, parseio->parse_index, clockformats[format]->data, &clock) : CVT_NONE) & CVT_MASK) { case CVT_FAIL: *************** *** 941,946 **** --- 949,956 ---- { do { + clock.utctime = 0; + switch ((cvtrtc = (clockformats[format]->convert && !(clockformats[format]->flags & CVT_FIXEDONLY)) ? clockformats[format]->convert(parseio->parse_data, parseio->parse_index, clockformats[format]->data, &clock) : CVT_NONE) & CVT_MASK) *************** *** 1148,1153 **** --- 1158,1166 ---- * History: * * parse.c,v + * Revision 3.22 1994/02/25 12:34:49 kardel + * allow for converter generated utc times + * * Revision 3.21 1994/02/02 17:45:30 kardel * rcs ids fixed * diff -c parse/util/testdcf.c:1.1.1.6 parse/util/testdcf.c:3.11 *** parse/util/testdcf.c:1.1.1.6 Thu Mar 3 10:36:27 1994 --- parse/util/testdcf.c Thu Mar 3 10:36:27 1994 *************** *** 1,7 **** /* ! * /src/NTP/REPOSITORY/v3/parse/util/testdcf.c,v 3.9 1994/01/25 19:05:45 kardel Exp * ! * testdcf.c,v 3.9 1994/01/25 19:05:45 kardel Exp * * simple DCF77 100/200ms pulse test program (via 50Baud serial line) * --- 1,7 ---- /* ! * /src/NTP/REPOSITORY/v3/parse/util/testdcf.c,v 3.11 1994/02/02 17:45:55 kardel Exp * ! * testdcf.c,v 3.11 1994/02/02 17:45:55 kardel Exp * * simple DCF77 100/200ms pulse test program (via 50Baud serial line) * diff -c xntpd/Makefile.tmpl:1.1.1.18 xntpd/Makefile.tmpl:3.28 *** xntpd/Makefile.tmpl:1.1.1.18 Thu Mar 3 10:38:13 1994 --- xntpd/Makefile.tmpl Thu Mar 3 10:38:13 1994 *************** *** 34,40 **** refclock_wwvb.c refclock_goes.c refclock_mx4200.c \ refclock_parse.c refclock_as2201.c refclock_omega.c \ refclock_tpro.c refclock_leitch.c refclock_irig.c \ ! refclock_msfees.c refclock_gpstm.c ntp_intres.c ntp_filegen.c OBJS= ntp_config.o ntp_control.o ntp_io.o ntp_leap.o \ ntp_loopfilter.o ntp_monitor.o ntp_peer.o ntp_proto.o \ --- 34,41 ---- refclock_wwvb.c refclock_goes.c refclock_mx4200.c \ refclock_parse.c refclock_as2201.c refclock_omega.c \ refclock_tpro.c refclock_leitch.c refclock_irig.c \ ! refclock_msfees.c refclock_gpstm.c refclock_trak.c \ ! ntp_intres.c ntp_filegen.c OBJS= ntp_config.o ntp_control.o ntp_io.o ntp_leap.o \ ntp_loopfilter.o ntp_monitor.o ntp_peer.o ntp_proto.o \ *************** *** 44,50 **** refclock_wwvb.o refclock_goes.o refclock_mx4200.o \ refclock_parse.o refclock_as2201.o refclock_omega.o \ refclock_tpro.o refclock_leitch.o refclock_irig.o \ ! refclock_msfees.o refclock_gpstm.o ntp_intres.o ntp_filegen.o all: $(PROGRAM) --- 45,52 ---- refclock_wwvb.o refclock_goes.o refclock_mx4200.o \ refclock_parse.o refclock_as2201.o refclock_omega.o \ refclock_tpro.o refclock_leitch.o refclock_irig.o \ ! refclock_msfees.o refclock_gpstm.o refclock_trak.o \ ! ntp_intres.o ntp_filegen.o all: $(PROGRAM) *************** *** 136,141 **** --- 138,146 ---- refclock_msfees.o: refclock_msfees.c $(CC) $(COPTS) $(DEFS) $(DEFS_LOCAL) $(CLOCKDEFS) $(INCL) -c $*.c + + refclock_trak.o: refclock_trak.c + $(CC) $(COPTS) $(DEFS) $(DEFS_LOCAL) $(CLOCKDEFS) $(INCL) -c $*.c refclock_gpstm.o: refclock_gpstm.c $(CC) $(COPTS) $(DEFS) $(DEFS_LOCAL) $(CLOCKDEFS) $(INCL) -c $*.c diff -c xntpd/ntp_control.c:1.1.1.17 xntpd/ntp_control.c:3.26 *** xntpd/ntp_control.c:1.1.1.17 Thu Mar 3 10:38:16 1994 --- xntpd/ntp_control.c Thu Mar 3 10:38:17 1994 *************** *** 301,307 **** static u_char clocktypes[] = { CTL_SST_TS_NTP, /* REFCLK_NONE */ CTL_SST_TS_UNSPEC, /* REFCLK_LOCALCLOCK */ ! CTL_SST_TS_HF, /* REFCLK_WWV_HEATH */ CTL_SST_TS_HF, /* REFCLK_WWV_PST */ CTL_SST_TS_LF, /* REFCLK_WWVB_SPECTRACOM */ CTL_SST_TS_UHF, /* REFCLK_GOES_TRUETIME */ --- 301,307 ---- static u_char clocktypes[] = { CTL_SST_TS_NTP, /* REFCLK_NONE */ CTL_SST_TS_UNSPEC, /* REFCLK_LOCALCLOCK */ ! CTL_SST_TS_HF, /* REFCLK_GPS_TRAK */ CTL_SST_TS_HF, /* REFCLK_WWV_PST */ CTL_SST_TS_LF, /* REFCLK_WWVB_SPECTRACOM */ CTL_SST_TS_UHF, /* REFCLK_GOES_TRUETIME */ diff -c xntpd/refclock_conf.c:1.1.1.22 xntpd/refclock_conf.c:3.21 *** xntpd/refclock_conf.c:1.1.1.22 Thu Mar 3 10:38:54 1994 --- xntpd/refclock_conf.c Thu Mar 3 10:38:54 1994 *************** *** 113,119 **** struct refclock *refclock_conf[] = { &refclock_none, /* 0 REFCLK_NONE */ &refclock_local, /* 1 REFCLK_LOCAL */ ! &refclock_none, /* 2 REFCLK_WWV_HEATH */ &refclock_pst, /* 3 REFCLK_WWV_PST */ &refclock_wwvb, /* 4 REFCLK_WWVB_SPECTRACOM */ &refclock_goes, /* 5 REFCLK_GOES_TRUETIME */ --- 113,119 ---- struct refclock *refclock_conf[] = { &refclock_none, /* 0 REFCLK_NONE */ &refclock_local, /* 1 REFCLK_LOCAL */ ! &refclock_trak, /* 2 REFCLK_GPS_TRAK */ &refclock_pst, /* 3 REFCLK_WWV_PST */ &refclock_wwvb, /* 4 REFCLK_WWVB_SPECTRACOM */ &refclock_goes, /* 5 REFCLK_GOES_TRUETIME */ RCS file: /src/NTP/REPOSITORY/v3/xntpd/refclock_parse.c,v retrieving revision 1.1.1.12 diff -c -r1.1.1.12 xntpd/refclock_parse.c *** xntpd/refclock_parse.c:1.1.1.12 1994/02/22 21:57:57 --- xntpd/refclock_parse.c 1994/03/03 09:49:54 *************** *** 1,8 **** #if defined(REFCLOCK) && (defined(PARSE) || defined(PARSEPPS)) /* ! * /src/NTP/REPOSITORY/v3/xntpd/refclock_parse.c,v 3.49 1994/02/20 13:26:00 kardel Exp * ! * refclock_parse.c,v 3.49 1994/02/20 13:26:00 kardel Exp * * generic reference clock driver for receivers * --- 1,8 ---- #if defined(REFCLOCK) && (defined(PARSE) || defined(PARSEPPS)) /* ! * /src/NTP/REPOSITORY/v3/xntpd/refclock_parse.c,v 3.51 1994/03/03 09:49:54 kardel Exp * ! * refclock_parse.c,v 3.51 1994/03/03 09:49:54 kardel Exp * * generic reference clock driver for receivers * *************** *** 129,135 **** #include "parse.h" #if !defined(NO_SCCSID) && !defined(lint) && !defined(__GNUC__) ! static char rcsid[]="refclock_parse.c,v 3.49 1994/02/20 13:26:00 kardel Exp"; #endif /**=========================================================================== --- 129,135 ---- #include "parse.h" #if !defined(NO_SCCSID) && !defined(lint) && !defined(__GNUC__) ! static char rcsid[]="refclock_parse.c,v 3.51 1994/03/03 09:49:54 kardel Exp"; #endif /**=========================================================================== *************** *** 1653,1659 **** * done if no more characters are available */ FD_SET(fd, &fdmask); ! if (select(fd + 1, &fdmask, 0, 0, &null_time) == 0) return; } } --- 1653,1660 ---- * done if no more characters are available */ FD_SET(fd, &fdmask); ! if ((i == 0) && ! (select(fd + 1, &fdmask, 0, 0, &null_time) == 0)) return; } } *************** *** 2823,2829 **** sprintf(tt, "refclock_iomode=\"%s\"", parse->binding->bd_description); tt = add_var(&out->kv_list, 128, RO); ! sprintf(tt, "refclock_driver_version=\"refclock_parse.c,v 3.49 1994/02/20 13:26:00 kardel Exp\""); out->lencode = strlen(outstatus); out->lastcode = outstatus; --- 2824,2830 ---- sprintf(tt, "refclock_iomode=\"%s\"", parse->binding->bd_description); tt = add_var(&out->kv_list, 128, RO); ! sprintf(tt, "refclock_driver_version=\"refclock_parse.c,v 3.51 1994/03/03 09:49:54 kardel Exp\""); out->lencode = strlen(outstatus); out->lastcode = outstatus; -- Frank Kardel (kardel@informatik.uni-erlangen.de) All SCSI disks will from now on be required to send an email notice 24 hours prior to complete hardware failure! -- Frank Kardel (kardel@informatik.uni-erlangen.de) All SCSI disks will from now on be required to send an email notice 24 hours prior to complete hardware failure!