|
|
1.1 root 1: #! /bin/sh
2: #
3: # fixinc.svr4 -- Install modified versions of certain ANSI-incompatible
4: # native System V Release 4 system include files.
5: #
6: # Written by Ron Guilmette ([email protected]).
7: #
8: # This file is part of GNU CC.
9: #
10: # GNU CC is free software; you can redistribute it and/or modify
11: # it under the terms of the GNU General Public License as published by
12: # the Free Software Foundation; either version 2, or (at your option)
13: # any later version.
14: #
15: # GNU CC is distributed in the hope that it will be useful,
16: # but WITHOUT ANY WARRANTY; without even the implied warranty of
17: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18: # GNU General Public License for more details.
19: #
20: # You should have received a copy of the GNU General Public License
21: # along with GNU CC; see the file COPYING. If not, write to
22: # the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
23: #
24: # This script munges the native include files provided with System V
25: # Release 4 systems so as to remove things which are violations of the
26: # ANSI C standard. Once munged, the resulting new system include files
27: # are placed in a directory that GNU C will search *before* searching
28: # the /usr/include directory. This script should work properly for most
29: # System V Release 4 systems. For other types of systems, you should
30: # use the `fixincludes' script instead.
31: #
32: # See README-fixinc for more information.
33:
34: # Directory containing the original header files.
35: INPUT=${2-${INPUT-/usr/include}}
36:
37: # Fail if no arg to specify a directory for the output.
38: if [ x$1 = x ]
39: then echo fixincludes: no output directory specified
40: exit 1
41: fi
42:
43: # Directory in which to store the results.
44: LIB=${1-${LIB-/usr/local/lib/gcc-include}}
45:
46: # Make sure it exists.
47: if [ ! -d $LIB ]; then
48: mkdir $LIB || exit 1
49: fi
50:
51: ORIG_DIR=`pwd`
52:
53: # Make LIB absolute.
54: cd $LIB; LIB=`pwd`
55:
56: # This prevents /bin/ex from failing if the current terminal type is
57: # unrecognizable.
58: TERM=unknown
59: export TERM
60:
61: echo 'Building fixincludes in ' ${LIB}
62:
63: # Determine whether this system has symbolic links.
64: if ln -s X $LIB/ShouldNotExist 2>/dev/null; then
65: rm -f $LIB/ShouldNotExist
66: LINKS=true
67: else
68: LINKS=false
69: fi
70:
71: echo 'Making directories:'
72: cd ${INPUT}
73: if $LINKS; then
74: files=`ls -LR | sed -n s/:$//p`
75: else
76: files=`find . -type d -print | sed '/^.$/d'`
77: fi
78: for file in $files; do
79: rm -rf $LIB/$file
80: if [ ! -d $LIB/$file ]
81: then mkdir $LIB/$file
82: fi
83: done
84:
85: # treetops gets an alternating list
86: # of old directories to copy
87: # and the new directories to copy to.
88: treetops="${INPUT} ${LIB}"
89:
90: if $LINKS; then
91: echo 'Making internal symbolic directory links'
92: for file in $files; do
93: dest=`ls -ld $file | sed -n 's/.*-> //p'`
94: if [ "$dest" ]; then
95: cwd=`pwd`
96: # In case $dest is relative, get to $file's dir first.
97: cd ${INPUT}
98: cd `echo ./$file | sed -n 's&[^/]*$&&p'`
99: # Check that the target directory exists.
100: # Redirections changed to avoid bug in sh on Ultrix.
101: (cd $dest) > /dev/null 2>&1
102: if [ $? = 0 ]; then
103: cd $dest
104: # X gets the dir that the link actually leads to.
105: x=`pwd`
106: # If link leads back into ${INPUT},
107: # make a similar link here.
108: if expr $x : "${INPUT}/.*" > /dev/null; then
109: # Y gets the actual target dir name, relative to ${INPUT}.
110: y=`echo $x | sed -n "s&${INPUT}/&&p"`
111: echo $file '->' $y ': Making link'
112: rm -fr ${LIB}/$file > /dev/null 2>&1
113: ln -s ${LIB}/$y ${LIB}/$file > /dev/null 2>&1
114: else
115: # If the link is to outside ${INPUT},
116: # treat this directory as if it actually contained the files.
117: # This line used to have $dest instead of $x.
118: # $dest seemed to be wrong for links found in subdirectories
119: # of ${INPUT}. Does this change break anything?
120: treetops="$treetops $x ${LIB}/$file"
121: fi
122: fi
123: cd $cwd
124: fi
125: done
126: fi
127:
128: set - $treetops
129: while [ $# != 0 ]; do
130: # $1 is an old directory to copy, and $2 is the new directory to copy to.
131: echo "Finding header files in $1:"
132: cd ${INPUT}
133: cd $1
134: files=`find . -name '*.h' -type f -print`
135: echo 'Checking header files:'
136: for file in $files; do
137: echo Fixing $file
138: if [ -r $file ]; then
139: cp $file $2/$file >/dev/null 2>&1 || echo "Can't copy $file"
140: chmod +w $2/$file
141:
142: # The following have been removed from the sed command below
143: # because it is more useful to leave these things in.
144: # The only reason to remove them was for -pedantic,
145: # which isn't much of a reason. -- rms.
146: # /^[ ]*#[ ]*ident/d
147:
148: # The change of u_char, etc, to u_int
149: # applies to bit fields.
150: sed -e '
151: s%^[ ]*#else[ ][ ]*\([^/ ].*\)%#else /* \1 */%
152: s%^[ ]*#endif[ ][ ]*\([^/ ].*\)%#endif /* \1 */%
153: s/#lint(on)/defined(lint)/g
154: s/#lint(off)/!defined(lint)/g
155: s/#machine(\([^)]*\))/defined(__\1__)/g
156: s/#system(\([^)]*\))/defined(__\1__)/g
157: s/#cpu(\([^)]*\))/defined(__\1__)/g
158: /#[a-z]*if.*[ (]m68k/ s/m68k/__m68k__/g
159: /#[a-z]*if.*[ (]__i386/ s/__i386/__i386__/g
160: /#[a-z]*if.*[ (]i386/ s/i386/__i386__/g
161: /#[a-z]*if.*[ (]sparc/ s/sparc/__sparc__/g
162: /#[a-z]*if.*[ (]mc68000/ s/mc68000/__mc68000__/g
163: /#[a-z]*if.*[ (]vax/ s/vax/__vax__/g
164: /#[a-z]*if.*[ (]sun3x/ s/sun3x/__sun3x__/g
165: /#[a-z]*if.*[ (]sun3/ s/sun3/__sun3__/g
166: /#[a-z]*if.*[ (]sun2/ s/sun2/__sun2__/g
167: /#[a-z]*if.*[ (]sun4c/ s/sun4c/__sun4c__/g
168: /#[a-z]*if.*[ (]sun4/ s/sun4/__sun4__/g
169: /#[a-z]*if.*[ (]sun/ s/sun/__sun__/g
170: /#[a-z]*if.*[ (]ns32000/ s/ns32000/__ns32000__/g
171: /#[a-z]*if.*[ (]pyr/ s/pyr/__pyr__/g
172: /#[a-z]*if.*[ (]is68k/ s/is68k/__is68k__/g
173: /#[a-z]*if.*[ (]sun386/ s/sun386/__sun386__/g
174: s/u_char\([ ][ ]*[a-zA-Z0-9_][a-zA-Z0-9_]*[ ]*:[ ]*[0-9][0-9]*\)/u_int\1/
175: s/u_short\([ ][ ]*[a-zA-Z0-9_][a-zA-Z0-9_]*[ ]*:[ ]*[0-9][0-9]*\)/u_int\1/
176: s/ushort\([ ][ ]*[a-zA-Z0-9_][a-zA-Z0-9_]*[ ]*:[ ]*[0-9][0-9]*\)/u_int\1/
177: s/evcm_t\([ ][ ]*[a-zA-Z0-9_][a-zA-Z0-9_]*[ ]*:[ ]*[0-9][0-9]*\)/u_int\1/
178: s/Pbyte\([ ][ ]*[a-zA-Z0-9_][a-zA-Z0-9_]*[ ]*:[ ]*SEQSIZ\)/unsigned int\1/
179: s/__STDC__ == 0/!defined (__STRICT_ANSI__)/g
180: s/__STDC__ != 0/defined (__STRICT_ANSI__)/g
181: s/__STDC__ - 0 == 0/!defined (__STRICT_ANSI__)/g
182: ' $2/$file > $2/$file.sed
183: mv $2/$file.sed $2/$file
184: if cmp $file $2/$file >/dev/null 2>&1; then
185: echo Deleting $2/$file\; no fixes were needed.
186: rm $2/$file
187: fi
188: fi
189: done
190: shift; shift
191: done
192:
193: # Fix first broken decl of getcwd present on some svr4 systems.
194:
195: file=stdlib.h
196: base=`basename $file`
197: if [ -r ${LIB}/$file ]; then
198: file_to_fix=${LIB}/$file
199: else
200: if [ -r ${INPUT}/$file ]; then
201: file_to_fix=${INPUT}/$file
202: else
203: file_to_fix=""
204: fi
205: fi
206: if [ \! -z "$file_to_fix" ]; then
207: echo Checking $file_to_fix
208: sed -e 's/getcwd(char \*, int)/getcwd(char *, size_t)/' $file_to_fix > /tmp/$base
209: if cmp $file_to_fix /tmp/$base >/dev/null 2>&1; then \
210: echo No change needed in $file_to_fix
211: else
212: echo Fixed $file_to_fix
213: rm -f ${LIB}/$file
214: cp /tmp/$base ${LIB}/$file
215: fi
216: rm -f /tmp/$base
217: fi
218:
219: # Fix second broken decl of getcwd present on some svr4 systems. Also
220: # fix the incorrect decl of profil present on some svr4 systems.
221:
222: file=unistd.h
223: base=`basename $file`
224: if [ -r ${LIB}/$file ]; then
225: file_to_fix=${LIB}/$file
226: else
227: if [ -r ${INPUT}/$file ]; then
228: file_to_fix=${INPUT}/$file
229: else
230: file_to_fix=""
231: fi
232: fi
233: if [ \! -z "$file_to_fix" ]; then
234: echo Checking $file_to_fix
235: sed -e 's/getcwd(char \*, int)/getcwd(char *, size_t)/' $file_to_fix \
236: | sed -e 's/profil(unsigned short \*, unsigned int, unsigned int, unsigned int)/profil(unsigned short *, size_t, int, unsigned)/' > /tmp/$base
237: if cmp $file_to_fix /tmp/$base >/dev/null 2>&1; then \
238: echo No change needed in $file_to_fix
239: else
240: echo Fixed $file_to_fix
241: rm -f ${LIB}/$file
242: cp /tmp/$base ${LIB}/$file
243: fi
244: rm -f /tmp/$base
245: fi
246:
247: # Fix the definition of NULL in <sys/param.h> so that it is conditional
248: # and so that it is correct for both C and C++.
249:
250: file=sys/param.h
251: base=`basename $file`
252: if [ -r ${LIB}/$file ]; then
253: file_to_fix=${LIB}/$file
254: else
255: if [ -r ${INPUT}/$file ]; then
256: file_to_fix=${INPUT}/$file
257: else
258: file_to_fix=""
259: fi
260: fi
261: if [ \! -z "$file_to_fix" ]; then
262: echo Checking $file_to_fix
263: cp $file_to_fix /tmp/$base
264: chmod +w /tmp/$base
265: ex /tmp/$base <<EOF
266: /^#define[ ]*NULL[ ]*0$/c
267: #ifndef NULL
268: #ifdef __cplusplus
269: #define __NULL_TYPE
270: #else /* !defined(__cplusplus) */
271: #define __NULL_TYPE (void *)
272: #endif /* !defined(__cplusplus) */
273: #define NULL (__NULL_TYPE 0)
274: #endif /* !defined(NULL) */
275: .
276: wq
277: EOF
278: if cmp $file_to_fix /tmp/$base >/dev/null 2>&1; then \
279: echo No change needed in $file_to_fix
280: else
281: echo Fixed $file_to_fix
282: rm -f ${LIB}/$file
283: cp /tmp/$base ${LIB}/$file
284: fi
285: rm -f /tmp/$base
286: fi
287:
288: # Likewise fix the definition of NULL in <stdio.h> so that it is conditional
289: # and so that it is correct for both C and C++.
290:
291: file=stdio.h
292: base=`basename $file`
293: if [ -r ${LIB}/$file ]; then
294: file_to_fix=${LIB}/$file
295: else
296: if [ -r ${INPUT}/$file ]; then
297: file_to_fix=${INPUT}/$file
298: else
299: file_to_fix=""
300: fi
301: fi
302: if [ \! -z "$file_to_fix" ]; then
303: echo Checking $file_to_fix
304: cp $file_to_fix /tmp/$base
305: chmod +w /tmp/$base
306: ex /tmp/$base <<EOF
307: /^#define[ ]*NULL[ ]*0$/c
308: #ifdef __cplusplus
309: #define __NULL_TYPE
310: #else /* !defined(__cplusplus) */
311: #define __NULL_TYPE (void *)
312: #endif /* !defined(__cplusplus) */
313: #define NULL (__NULL_TYPE 0)
314: .
315: wq
316: EOF
317: if cmp $file_to_fix /tmp/$base >/dev/null 2>&1; then \
318: echo No change needed in $file_to_fix
319: else
320: echo Fixed $file_to_fix
321: rm -f ${LIB}/$file
322: cp /tmp/$base ${LIB}/$file
323: fi
324: rm -f /tmp/$base
325: fi
326:
327: # Add some missing declarations to <sys/mman.h>.
328:
329: file=sys/mman.h
330: base=`basename $file`
331: if [ -r ${LIB}/$file ]; then
332: file_to_fix=${LIB}/$file
333: else
334: if [ -r ${INPUT}/$file ]; then
335: file_to_fix=${INPUT}/$file
336: else
337: file_to_fix=""
338: fi
339: fi
340: if [ \! -z "$file_to_fix" ]; then
341: echo Checking $file_to_fix
342: cp $file_to_fix /tmp/$base
343: chmod +w /tmp/$base
344: ex /tmp/$base <<EOF
345: /^extern caddr_t mmap();$/c
346: #ifdef __STDC__
347: extern caddr_t mmap (caddr_t addr, size_t len, int prot, int flags,
348: int fd, off_t off);
349: #else /* !defined(__STDC__) */
350: extern caddr_t mmap ();
351: #endif /* !defined(__STDC__) */
352: .
353: wq
354: EOF
355: if cmp $file_to_fix /tmp/$base >/dev/null 2>&1; then \
356: echo No changed needed in $file_to_fix
357: else
358: echo Fixed $file_to_fix
359: rm -f ${LIB}/$file
360: cp /tmp/$base ${LIB}/$file
361: fi
362: rm -f /tmp/$base
363: fi
364:
365: # Fix declarations of `ftw' and `nftw' in <ftw.h>.
366:
367: file=ftw.h
368: base=`basename $file`
369: if [ -r ${LIB}/$file ]; then
370: file_to_fix=${LIB}/$file
371: else
372: if [ -r ${INPUT}/$file ]; then
373: file_to_fix=${INPUT}/$file
374: else
375: file_to_fix=""
376: fi
377: fi
378: if [ \! -z "$file_to_fix" ]; then
379: echo Checking $file_to_fix
380: cp $file_to_fix /tmp/$base
381: chmod +w /tmp/$base
382: ex /tmp/$base <<EOF
383: /^extern int ftw(const/c
384: #if !defined(_STYPES)
385: static
386: #else
387: extern
388: #endif
389: int ftw(const char *, int (*)(const char *, const struct stat *, int), int);
390: .
391: /^extern int nftw/c
392: #if defined(_STYPES)
393: static
394: #else
395: extern
396: #endif
397: int nftw(const char *, int (*)(const char *, const struct stat *, int, struct FTW *),int, int);
398: .
399: /^extern int ftw(),/c
400: #if !defined(_STYPES)
401: static
402: #else
403: extern
404: #endif
405: int ftw();
406: #if defined(_STYPES)
407: static
408: #else
409: extern
410: #endif
411: int nftw();
412: .
413: wq
414: EOF
415: if cmp $file_to_fix /tmp/$base >/dev/null 2>&1; then \
416: echo No change needed in $file_to_fix
417: else
418: echo Fixed $file_to_fix
419: rm -f ${LIB}/$file
420: cp /tmp/$base ${LIB}/$file
421: fi
422: rm -f /tmp/$base
423: fi
424:
425: # Add a `static' declaration of `getrnge' into <regexp.h>.
426:
427: file=regexp.h
428: base=`basename $file`
429: if [ -r ${LIB}/$file ]; then
430: file_to_fix=${LIB}/$file
431: else
432: if [ -r ${INPUT}/$file ]; then
433: file_to_fix=${INPUT}/$file
434: else
435: file_to_fix=""
436: fi
437: fi
438: if [ \! -z "$file_to_fix" ]; then
439: echo Checking $file_to_fix
440: cp $file_to_fix /tmp/$base
441: chmod +w /tmp/$base
442: ex /tmp/$base <<EOF
443: /^static int[ ]*size;/c
444: static int size ;
445:
446: static int getrnge ();
447: .
448: wq
449: EOF
450: if cmp $file_to_fix /tmp/$base >/dev/null 2>&1; then \
451: echo No change needed in $file_to_fix
452: else
453: echo Fixed $file_to_fix
454: rm -f ${LIB}/$file
455: cp /tmp/$base ${LIB}/$file
456: fi
457: rm -f /tmp/$base
458: fi
459:
460: # Add a #define of _SIGACTION_ into <sys/signal.h>.
461:
462: file=sys/signal.h
463: base=`basename $file`
464: if [ -r ${LIB}/$file ]; then
465: file_to_fix=${LIB}/$file
466: else
467: if [ -r ${INPUT}/$file ]; then
468: file_to_fix=${INPUT}/$file
469: else
470: file_to_fix=""
471: fi
472: fi
473: if [ \! -z "$file_to_fix" ]; then
474: echo Checking $file_to_fix
475: cp $file_to_fix /tmp/$base
476: chmod +w /tmp/$base
477: ex /tmp/$base <<EOF
478: /^struct sigaction {/c
479: #define _SIGACTION_
480: struct sigaction {
481: .
482: wq
483: EOF
484: if cmp $file_to_fix /tmp/$base >/dev/null 2>&1; then \
485: echo No change needed in $file_to_fix
486: else
487: echo Fixed $file_to_fix
488: rm -f ${LIB}/$file
489: cp /tmp/$base ${LIB}/$file
490: fi
491: rm -f /tmp/$base
492: fi
493:
494: # Fix declarations of `makedev', `major', and `minor' in <sys/mkdev.h>.
495:
496: file=sys/mkdev.h
497: base=`basename $file`
498: if [ -r ${LIB}/$file ]; then
499: file_to_fix=${LIB}/$file
500: else
501: if [ -r ${INPUT}/$file ]; then
502: file_to_fix=${INPUT}/$file
503: else
504: file_to_fix=""
505: fi
506: fi
507: if [ \! -z "$file_to_fix" ]; then
508: echo Checking $file_to_fix
509: cp $file_to_fix /tmp/$base
510: chmod +w /tmp/$base
511: ex /tmp/$base <<EOF
512: /^dev_t makedev(const/c
513: static dev_t makedev(const major_t, const minor_t);
514: .
515: /^dev_t makedev()/c
516: static dev_t makedev();
517: .
518: /^major_t major(const/c
519: static major_t major(const dev_t);
520: .
521: /^major_t major()/c
522: static major_t major();
523: .
524: /^minor_t minor(const/c
525: static minor_t minor(const dev_t);
526: .
527: /^minor_t minor()/c
528: static minor_t minor();
529: .
530: wq
531: EOF
532: if cmp $file_to_fix /tmp/$base >/dev/null 2>&1; then \
533: echo No change needed in $file_to_fix
534: else
535: echo Fixed $file_to_fix
536: rm -f ${LIB}/$file
537: cp /tmp/$base ${LIB}/$file
538: fi
539: rm -f /tmp/$base
540: fi
541:
542: # Fix reference to NMSZ in <sys/adv.h>.
543:
544: file=sys/adv.h
545: base=`basename $file`
546: if [ -r ${LIB}/$file ]; then
547: file_to_fix=${LIB}/$file
548: else
549: if [ -r ${INPUT}/$file ]; then
550: file_to_fix=${INPUT}/$file
551: else
552: file_to_fix=""
553: fi
554: fi
555: if [ \! -z "$file_to_fix" ]; then
556: echo Checking $file_to_fix
557: sed 's/\[NMSZ\]/\[RFS_NMSZ\]/g' $file_to_fix > /tmp/$base
558: if cmp $file_to_fix /tmp/$base >/dev/null 2>&1; then \
559: echo No change needed in $file_to_fix
560: else
561: echo Fixed $file_to_fix
562: rm -f ${LIB}/$file
563: cp /tmp/$base ${LIB}/$file
564: fi
565: rm -f /tmp/$base
566: fi
567:
568: # Fix reference to NC_NPI_RAW in <sys/netcspace.h>. Also fix types of
569: # array initializers.
570:
571: file=sys/netcspace.h
572: base=`basename $file`
573: if [ -r ${LIB}/$file ]; then
574: file_to_fix=${LIB}/$file
575: else
576: if [ -r ${INPUT}/$file ]; then
577: file_to_fix=${INPUT}/$file
578: else
579: file_to_fix=""
580: fi
581: fi
582: if [ \! -z "$file_to_fix" ]; then
583: echo Checking $file_to_fix
584: sed 's/NC_NPI_RAW/NC_TPI_RAW/g' $file_to_fix \
585: | sed 's/NC_/(unsigned long) NC_/' > /tmp/$base
586: if cmp $file_to_fix /tmp/$base >/dev/null 2>&1; then \
587: echo No change needed in $file_to_fix
588: else
589: echo Fixed $file_to_fix
590: rm -f ${LIB}/$file
591: cp /tmp/$base ${LIB}/$file
592: fi
593: rm -f /tmp/$base
594: fi
595:
596: # Conditionalize all of <fs/rfs/rf_cache.h> on _KERNEL being defined.
597:
598: file=fs/rfs/rf_cache.h
599: base=`basename $file`
600: if [ -r ${LIB}/$file ]; then
601: file_to_fix=${LIB}/$file
602: else
603: if [ -r ${INPUT}/$file ]; then
604: file_to_fix=${INPUT}/$file
605: else
606: file_to_fix=""
607: fi
608: fi
609: if [ \! -z "$file_to_fix" ]; then
610: echo Checking $file_to_fix
611: if grep _KERNEL $file_to_fix > /dev/null; then
612: echo No change needed in $file_to_fix
613: else
614: echo '#ifdef _KERNEL' > /tmp/$base
615: cat $file_to_fix >> /tmp/$base
616: echo '#endif /* defined(_KERNEL) */' >> /tmp/$base
617: echo Fixed $file_to_fix
618: rm -f ${LIB}/$file
619: cp /tmp/$base ${LIB}/$file
620: rm -f /tmp/$base
621: fi
622: fi
623:
624: # Conditionalize all of <sys/erec.h> on _KERNEL being defined.
625:
626: file=sys/erec.h
627: base=`basename $file`
628: if [ -r ${LIB}/$file ]; then
629: file_to_fix=${LIB}/$file
630: else
631: if [ -r ${INPUT}/$file ]; then
632: file_to_fix=${INPUT}/$file
633: else
634: file_to_fix=""
635: fi
636: fi
637: if [ \! -z "$file_to_fix" ]; then
638: echo Checking $file_to_fix
639: if grep _KERNEL $file_to_fix > /dev/null; then
640: echo No change needed in $file_to_fix
641: else
642: echo '#ifdef _KERNEL' > /tmp/$base
643: cat $file_to_fix >> /tmp/$base
644: echo '#endif /* defined(_KERNEL) */' >> /tmp/$base
645: echo Fixed $file_to_fix
646: rm -f ${LIB}/$file
647: cp /tmp/$base ${LIB}/$file
648: rm -f /tmp/$base
649: fi
650: fi
651:
652: # Conditionalize all of <sys/err.h> on _KERNEL being defined.
653:
654: file=sys/err.h
655: base=`basename $file`
656: if [ -r ${LIB}/$file ]; then
657: file_to_fix=${LIB}/$file
658: else
659: if [ -r ${INPUT}/$file ]; then
660: file_to_fix=${INPUT}/$file
661: else
662: file_to_fix=""
663: fi
664: fi
665: if [ \! -z "$file_to_fix" ]; then
666: echo Checking $file_to_fix
667: if grep _KERNEL $file_to_fix > /dev/null; then
668: echo No change needed in $file_to_fix
669: else
670: echo '#ifdef _KERNEL' > /tmp/$base
671: cat $file_to_fix >> /tmp/$base
672: echo '#endif /* defined(_KERNEL) */' >> /tmp/$base
673: echo Fixed $file_to_fix
674: rm -f ${LIB}/$file
675: cp /tmp/$base ${LIB}/$file
676: rm -f /tmp/$base
677: fi
678: fi
679:
680: # Conditionalize all of <sys/char.h> on _KERNEL being defined.
681:
682: file=sys/char.h
683: base=`basename $file`
684: if [ -r ${LIB}/$file ]; then
685: file_to_fix=${LIB}/$file
686: else
687: if [ -r ${INPUT}/$file ]; then
688: file_to_fix=${INPUT}/$file
689: else
690: file_to_fix=""
691: fi
692: fi
693: if [ \! -z "$file_to_fix" ]; then
694: echo Checking $file_to_fix
695: if grep _KERNEL $file_to_fix > /dev/null; then
696: echo No change needed in $file_to_fix
697: else
698: echo '#ifdef _KERNEL' > /tmp/$base
699: cat $file_to_fix >> /tmp/$base
700: echo '#endif /* defined(_KERNEL) */' >> /tmp/$base
701: echo Fixed $file_to_fix
702: rm -f ${LIB}/$file
703: cp /tmp/$base ${LIB}/$file
704: rm -f /tmp/$base
705: fi
706: fi
707:
708: # Conditionalize all of <sys/getpages.h> on _KERNEL being defined.
709:
710: file=sys/getpages.h
711: base=`basename $file`
712: if [ -r ${LIB}/$file ]; then
713: file_to_fix=${LIB}/$file
714: else
715: if [ -r ${INPUT}/$file ]; then
716: file_to_fix=${INPUT}/$file
717: else
718: file_to_fix=""
719: fi
720: fi
721: if [ \! -z "$file_to_fix" ]; then
722: echo Checking $file_to_fix
723: if grep _KERNEL $file_to_fix > /dev/null; then
724: echo No change needed in $file_to_fix
725: else
726: echo '#ifdef _KERNEL' > /tmp/$base
727: cat $file_to_fix >> /tmp/$base
728: echo '#endif /* defined(_KERNEL) */' >> /tmp/$base
729: echo Fixed $file_to_fix
730: rm -f ${LIB}/$file
731: cp /tmp/$base ${LIB}/$file
732: rm -f /tmp/$base
733: fi
734: fi
735:
736: # Conditionalize all of <sys/map.h> on _KERNEL being defined.
737:
738: file=sys/map.h
739: base=`basename $file`
740: if [ -r ${LIB}/$file ]; then
741: file_to_fix=${LIB}/$file
742: else
743: if [ -r ${INPUT}/$file ]; then
744: file_to_fix=${INPUT}/$file
745: else
746: file_to_fix=""
747: fi
748: fi
749: if [ \! -z "$file_to_fix" ]; then
750: echo Checking $file_to_fix
751: if grep _KERNEL $file_to_fix > /dev/null; then
752: echo No change needed in $file_to_fix
753: else
754: echo '#ifdef _KERNEL' > /tmp/$base
755: cat $file_to_fix >> /tmp/$base
756: echo '#endif /* defined(_KERNEL) */' >> /tmp/$base
757: echo Fixed $file_to_fix
758: rm -f ${LIB}/$file
759: cp /tmp/$base ${LIB}/$file
760: rm -f /tmp/$base
761: fi
762: fi
763:
764: # Conditionalize all of <sys/cmn_err.h> on _KERNEL being defined.
765:
766: file=sys/cmn_err.h
767: base=`basename $file`
768: if [ -r ${LIB}/$file ]; then
769: file_to_fix=${LIB}/$file
770: else
771: if [ -r ${INPUT}/$file ]; then
772: file_to_fix=${INPUT}/$file
773: else
774: file_to_fix=""
775: fi
776: fi
777: if [ \! -z "$file_to_fix" ]; then
778: echo Checking $file_to_fix
779: if grep _KERNEL $file_to_fix > /dev/null; then
780: echo No change needed in $file_to_fix
781: else
782: echo '#ifdef _KERNEL' > /tmp/$base
783: cat $file_to_fix >> /tmp/$base
784: echo '#endif /* defined(_KERNEL) */' >> /tmp/$base
785: echo Fixed $file_to_fix
786: rm -f ${LIB}/$file
787: cp /tmp/$base ${LIB}/$file
788: rm -f /tmp/$base
789: fi
790: fi
791:
792: # Conditionalize all of <sys/kdebugger.h> on _KERNEL being defined.
793:
794: file=sys/kdebugger.h
795: base=`basename $file`
796: if [ -r ${LIB}/$file ]; then
797: file_to_fix=${LIB}/$file
798: else
799: if [ -r ${INPUT}/$file ]; then
800: file_to_fix=${INPUT}/$file
801: else
802: file_to_fix=""
803: fi
804: fi
805: if [ \! -z "$file_to_fix" ]; then
806: echo Checking $file_to_fix
807: if grep _KERNEL $file_to_fix > /dev/null; then
808: echo No change needed in $file_to_fix
809: else
810: echo '#ifdef _KERNEL' > /tmp/$base
811: cat $file_to_fix >> /tmp/$base
812: echo '#endif /* defined(_KERNEL) */' >> /tmp/$base
813: echo Fixed $file_to_fix
814: rm -f ${LIB}/$file
815: cp /tmp/$base ${LIB}/$file
816: rm -f /tmp/$base
817: fi
818: fi
819:
820: echo 'Removing unneeded directories:'
821: cd $LIB
822: files=`find . -type d -print | sort -r`
823: for file in $files; do
824: rmdir $LIB/$file > /dev/null 2>&1
825: done
826:
827: if $LINKS; then
828: echo 'Making internal symbolic non-directory links'
829: cd ${INPUT}
830: files=`find . -type l -print`
831: for file in $files; do
832: dest=`ls -ld $file | sed -n 's/.*-> //p'`
833: if expr "$dest" : '[^/].*' > /dev/null; then
834: target=${LIB}/`echo file | sed "s|[^/]*\$|$dest|"`
835: if [ -f $target ]; then
836: ln -s $dest ${LIB}/$file >/dev/null 2>&1
837: fi
838: fi
839: done
840: fi
841:
842: cd ${ORIG_DIR}
843:
844: echo 'Replacing <sys/byteorder.h>'
845: rm -f ${LIB}/sys/byteorder.h
846: cp byteorder.h ${LIB}/sys/byteorder.h
847:
848: exit 0
849:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.