summaryrefslogtreecommitdiffstats
path: root/usr.sbin/xntpd/patches/patch.7
blob: 682065fc558a9cf2c9caec34051fed20e27bc566 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274

Received: from louie.udel.edu by huey.udel.edu id aa21105; 28 Jan 94 9:25 EST
Received: from faui45.informatik.uni-erlangen.de by louie.udel.edu id aa08838;
          28 Jan 94 9:20 EST
Received: from faui43.informatik.uni-erlangen.de by uni-erlangen.de with SMTP;
	id AA29169 (5.65c-6/7.3v-FAU); Fri, 28 Jan 1994 15:19:56 +0100
Received: from faui45x.informatik.uni-erlangen.de by immd4.informatik.uni-erlangen.de with SMTP;
	id AA11999 (5.65c-6/7.3m-FAU); Fri, 28 Jan 1994 15:19:51 +0100
From: Frank Kardel <Frank.Kardel@informatik.uni-erlangen.de>
Message-Id: <199401281419.AA11999@faui43.informatik.uni-erlangen.de>
Subject: Re: Solaribum
To: Paul A Vixie <Paul_Vixie@corpmis.sjc.hw.sony.com>
Date: Fri, 28 Jan 94 14:02:02 MET
Cc: Mills@udel.edu, Frank.Kardel@informatik.uni-erlangen.de, 
    Piete.Brooks@cl.cam.ac.uk, Paul_Vixie@corpmis.sjc.hw.sony.com
In-Reply-To: <9401272236.AA27835@morality.sjc.hw.sony.com>; from "Paul A Vixie" at Jan 27, 94 2:36 pm
X-Mailer: ELM [version 2.3 PL11]


> >memmove() and crumps in loading with an unknown external. If the missing
> >routine is not there in SunOS 4, why not conditionally compile one
> >and be done with it?

> as i said in earlier mail, there is already a macro for memmove, to define
> it in terms of bcopy, but it is only enabled on systems that don't have a
> native memmove.  include/*.h tells the story.

Ok, in order to cope with the problems (non existent memmove() and
sys header files that use bops) I fixed SUNOS4 and ULTRIX to use the
b-ops (via the NTP_NEED_BOPS define). All other should to my knowledge
use the mem* stuff (I'd rather use either mem* or b* instead of mixtures
of both).

Now, the following patch should get 3.3y (and 3.3yy) to fly
(=compile) on suns. Functional test have not been done. ULTRIX
has not been tested.

> there are too many x's and y's now.  i'm confused.  i promise not to send
> any more patches until the dust clears..

With this patch we should get to 3.3yyy which should be the
base for all next efforts (-> and 3.3{x,xx,y,yy} can be deleted).

May the source be with us:

diff -c -r ../yy/include/l_stdlib.h ./include/l_stdlib.h
*** ../yy/include/l_stdlib.h	Thu Jan 27 15:03:21 1994
--- ./include/l_stdlib.h	Fri Jan 28 12:46:31 1994
***************
*** 47,54 ****
--- 47,60 ----
  extern	int	rand		P((void));
  extern	int	setpgrp		P((int, int));
  extern  void	srand		P((unsigned int));
+ extern  void	bcopy		P((char *, char *, int));
  #endif

+ #ifndef bzero			/* XXX macro prototyping clash */
+ extern  void    bzero		P((char *, int));
+ extern  int	bcmp		P((char *, char *, int));
+ extern  void	bcopy		P((char *, char *, int));
+ #endif
  extern  char   *mktemp		P((char *));	

  extern  int	tolower		P((int));
***************
*** 92,102 ****
--- 98,110 ----

  #ifdef	_ntp_string_h
  #ifdef	NTP_POSIX_SOURCE	/* these are builtins */
+ #ifndef NTP_NEED_BOPS		/* but may be emulated by bops */
  extern	char	*memcpy();
  extern	char	*memset();
  extern	int	memcmp();
  #endif
  #endif
+ #endif

  #ifdef	_sys_socket_h
  extern  int	bind		P((int, struct sockaddr *, int));
***************
*** 187,192 ****
--- 195,203 ----

  #ifndef NTP_POSIX_SOURCE
  extern  int	atoi		P((char *));
+ extern  void    bzero		P((char *, int));
+ extern  int	bcmp		P((char *, char *, int));
+ extern  void	bcopy		P((char *, char *, int));
  extern	int	execve		P((char *, char **,char **));
  extern	int	fork		P((void));
  extern  int	getdtablesize	P((void));
diff -c -r ../yy/include/ntp_machine.h ./include/ntp_machine.h
*** ../yy/include/ntp_machine.h	Fri Jan 28 13:32:33 1994
--- ./include/ntp_machine.h	Fri Jan 28 12:25:29 1994
***************
*** 168,173 ****
--- 168,174 ----
   * Note: posix version has NTP_POSIX_SOURCE and HAVE_SIGNALED_IO
   */
  #if defined(SYS_SUNOS4)
+ #define NTP_NEED_BOPS
  #define NO_SIGNED_CHAR_DECL
  #define HAVE_LIBKVM 
  #define HAVE_MALLOC_H
***************
*** 266,271 ****
--- 267,273 ----
   * Note: posix version has NTP_POSIX_SOURCE and HAVE_SIGNALED_IO
   */
  #if defined(SYS_ULTRIX)
+ #define NTP_NEED_BOPS
  #define S_CHAR_DEFINED
  #define HAVE_READKMEM 
  #define HAVE_BSD_NICE
diff -c -r ../yy/include/ntp_string.h ./include/ntp_string.h
*** ../yy/include/ntp_string.h	Thu Jan 27 15:03:24 1994
--- ./include/ntp_string.h	Fri Jan 28 12:36:44 1994
***************
*** 5,11 ****
  #ifndef  _ntp_string_h
  #define  _ntp_string_h

! #ifdef NTP_POSIX_SOURCE

  # if defined(HAVE_MEMORY_H)
  #  include <memory.h>
--- 5,11 ----
  #ifndef  _ntp_string_h
  #define  _ntp_string_h

! #if defined(NTP_POSIX_SOURCE)

  # if defined(HAVE_MEMORY_H)
  #  include <memory.h>
***************
*** 13,29 ****

  # include <string.h>

! #else /* NTP_POSIX_SOURCE */

  # include <strings.h>
- 
  # define strchr(s,c) index(s,c)
  # define strrchr(s,c) rindex(s,c)
  # define memcmp(a,b,c) bcmp(a,b,c)
  # define memmove(t,f,c) bcopy(f,t,c)
! # define memset(a,x,c) if (x == 0x00) bzero(a,c) else ntp_memset((char*)a,x,c)
  void ntp_memset P((char *, int, int));

! #endif /*  NTP_POSIX_SOURCE */

  #endif /* _ntp_string_h */
--- 13,35 ----

  # include <string.h>

! #else

  # include <strings.h>
  # define strchr(s,c) index(s,c)
  # define strrchr(s,c) rindex(s,c)
+ # ifndef NTP_NEED_BOPS
+ # define NTP_NEED_BOPS
+ # endif
+ #endif /* NTP_POSIX_SOURCE */
+ 
+ #ifdef NTP_NEED_BOPS
+ 
  # define memcmp(a,b,c) bcmp(a,b,c)
  # define memmove(t,f,c) bcopy(f,t,c)
! # define memset(a,x,c) if (x == 0x00) bzero(a,c); else ntp_memset((char*)a,x,c)
  void ntp_memset P((char *, int, int));

! #endif /*  NTP_NEED_BOPS */

  #endif /* _ntp_string_h */
diff -c -r ../yy/lib/machines.c ./lib/machines.c
*** ../yy/lib/machines.c	Thu Jan 27 15:03:35 1994
--- ./lib/machines.c	Fri Jan 28 13:55:26 1994
***************
*** 31,37 ****
  }
  #endif

! #if !defined(NTP_POSIX_SOURCE)
  void
  ntp_memset(a, x, c)
  	char *a;
--- 31,37 ----
  }
  #endif

! #if !defined(NTP_POSIX_SOURCE) || defined(NTP_NEED_BOPS)
  void
  ntp_memset(a, x, c)
  	char *a;
diff -c -r ../yy/parse/Makefile.tmpl ./parse/Makefile.tmpl
*** ../yy/parse/Makefile.tmpl	Fri Nov 26 05:28:30 1993
--- ./parse/Makefile.tmpl	Fri Jan 28 13:47:30 1994
***************
*** 92,98 ****

  clean:
  	-@rm -f $(LIBNAME).a $(KLIBNAME).a *.o *.out *.ln make.log Makefile.bak \
! 		lintlib.errs lint.errs genassym assym.s parsestreams parse
  	-@cd util && $(MAKE) $(MFLAGS) MFLAGS="$(MFLAGS)" -f Makefile.tmpl clean

  distclean:	clean
--- 92,98 ----

  clean:
  	-@rm -f $(LIBNAME).a $(KLIBNAME).a *.o *.out *.ln make.log Makefile.bak \
! 		lintlib.errs lint.errs genassym assym.s parsestreams parse parsestreams.o.*
  	-@cd util && $(MAKE) $(MFLAGS) MFLAGS="$(MFLAGS)" -f Makefile.tmpl clean

  distclean:	clean
diff -c -r ../yy/parse/parse.c ./parse/parse.c
*** ../yy/parse/parse.c	Fri Jan 28 13:32:34 1994
--- ./parse/parse.c	Fri Jan 28 13:08:01 1994
***************
*** 29,47 ****
  #include "sys/time.h"
  #include "sys/errno.h"

  #if defined(PARSESTREAM) && (defined(SYS_SUNOS4) || defined(SYS_SOLARIS)) && defined(STREAM)
  /*
!  * Sorry, but in SunOS 4.x kernels there are no
   * mem* operations. I don't want them - bcopy, bzero
   * are fine in the kernel
   */
! #define _ntp_string_h
! extern void bcopy();
! extern void bzero();
  #else
  #define bzero(_X_, _Y_) memset(_X_, 0, _Y_)
  #define bcopy(_X_, _Y_, _Z_) memmove(_Y_, _X_, _Z_)
  #endif

  #include "ntp_fp.h"
  #include "ntp_unixtime.h"
--- 29,53 ----
  #include "sys/time.h"
  #include "sys/errno.h"

+ #include "ntp_machine.h"
+ 
  #if defined(PARSESTREAM) && (defined(SYS_SUNOS4) || defined(SYS_SOLARIS)) && defined(STREAM)
  /*
!  * Sorry, but in SunOS 4.x AND Solaris 2.x kernels there are no
   * mem* operations. I don't want them - bcopy, bzero
   * are fine in the kernel
   */
! #ifndef NTP_NEED_BOPS
! #define NTP_NEED_BOPS
! #endif
  #else
+ #ifndef NTP_NEED_BOPS
+ #ifndef bzero
  #define bzero(_X_, _Y_) memset(_X_, 0, _Y_)
  #define bcopy(_X_, _Y_, _Z_) memmove(_Y_, _X_, _Z_)
  #endif
+ #endif
+ #endif

  #include "ntp_fp.h"
  #include "ntp_unixtime.h"
-- 
	   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!

OpenPOWER on IntegriCloud