|
|
1.1 root 1: #! /bin/sh
2: # Install modified versions of certain ANSI-incompatible system header files
3: # which are fixed to work correctly with ANSI C
4: # and placed in a directory that GNU C will search.
5:
6: # See README-fixinc for more information.
7:
8: # Directory containing the original header files.
9: # (This was named INCLUDES, but that conflicts with a name in Makefile.in.)
10: INPUT=${2-${INPUT-/usr/include}}
11:
12: # This prevents /bin/ex from failing if the current terminal type is
13: # unrecognizable.
14: TERM=unknown
15: export TERM
16:
17: # Directory in which to store the results.
18: LIB=${1-${LIB-/usr/local/lib/gcc-include}}
19:
20: # Make sure it exists.
21: if [ ! -d $LIB ]; then
22: mkdir $LIB || exit 1
23: fi
24:
25: # Make LIB absolute.
26: cd $LIB; LIB=`pwd`
27:
28: # Fail if no arg to specify a directory for the output.
29: if [ x$1 = x ]
30: then echo fixincludes: no output directory specified
31: exit 1
32: fi
33:
34: echo 'Building fixincludes in ' ${LIB}
35:
36: # Determine whether this system has symbolic links.
37: if ln -s X $LIB/ShouldNotExist 2>/dev/null; then
38: rm -f $LIB/ShouldNotExist
39: LINKS=true
40: else
41: LINKS=false
42: fi
43:
44: echo 'Making directories:'
45: cd ${INPUT}
1.1.1.2 root 46: # Find all directories and all symlinks that point to directories.
47: files=` find . -type d -print | sed '/^.$/d'
48: $LINKS && find . -type l -exec test -d '{}' \; -print`
1.1 root 49: for file in $files; do
50: rm -rf $LIB/$file
51: if [ ! -d $LIB/$file ]
52: then mkdir $LIB/$file
53: fi
54: done
55:
56: # treetops gets an alternating list
57: # of old directories to copy
58: # and the new directories to copy to.
59: treetops="${INPUT} ${LIB}"
60:
61: if $LINKS; then
62: echo 'Making internal symbolic directory links'
63: for file in $files; do
64: dest=`ls -ld $file | sed -n 's/.*-> //p'`
65: if [ "$dest" ]; then
66: cwd=`pwd`
67: # In case $dest is relative, get to $file's dir first.
68: cd ${INPUT}
69: cd `echo ./$file | sed -n 's&[^/]*$&&p'`
70: # Check that the target directory exists.
71: # Redirections changed to avoid bug in sh on Ultrix.
72: (cd $dest) > /dev/null 2>&1
73: if [ $? = 0 ]; then
74: cd $dest
75: # X gets the dir that the link actually leads to.
76: x=`pwd`
77: # If link leads back into ${INPUT},
78: # make a similar link here.
79: if expr $x : "${INPUT}/.*" > /dev/null; then
80: # Y gets the actual target dir name, relative to ${INPUT}.
81: y=`echo $x | sed -n "s&${INPUT}/&&p"`
82: echo $file '->' $y ': Making link'
83: rm -fr ${LIB}/$file > /dev/null 2>&1
84: ln -s ${LIB}/$y ${LIB}/$file > /dev/null 2>&1
85: else
86: # If the link is to outside ${INPUT},
87: # treat this directory as if it actually contained the files.
88: # This line used to have $dest instead of $x.
89: # $dest seemed to be wrong for links found in subdirectories
90: # of ${INPUT}. Does this change break anything?
91: treetops="$treetops $x ${LIB}/$file"
92: fi
93: fi
94: cd $cwd
95: fi
96: done
97: fi
98:
99: set - $treetops
100: while [ $# != 0 ]; do
101: # $1 is an old directory to copy, and $2 is the new directory to copy to.
102: echo "Finding header files in $1:"
103: cd ${INPUT}
104: cd $1
105: files=`find . -name '*.h' -type f -print`
106: echo 'Checking header files:'
107: # Note that BSD43_* are used on recent MIPS systems.
108: for file in $files; do
109: # This call to egrep is essential, since checking a file with egrep
110: # is much faster than actually trying to fix it.
1.1.1.2 root 111: # It is also essential that most files *not* match!
112: # Thus, matching every #endif is unacceptable.
1.1 root 113: # But the argument to egrep must be kept small, or many versions of egrep
114: # won't be able to handle it.
1.1.1.2 root 115: # rms: I removed `|#[el].*if.*[^/ ]' because it made egrep fail.
1.1 root 116: if egrep '[ _]_IO|CTRL|#define.NULL|#[el]*if.*([0-9]|sparc|vax|sun|pyr)' $file > /dev/null; then
117: echo Fixing $file
118: if [ -r $file ]; then
119: cp $file $2/$file >/dev/null 2>&1 \
120: || echo "Can't copy $file"
121: chmod +w $2/$file
1.1.1.2 root 122: # Following two lines removed.
123: # s%^\([ ]*#[ ]*endif[ ]*\)\([^/ ].*\)$%\1/* \2 */%
124: # s%^\([ ]*#[ ]*else[ ]*\)\([^/ ].*\)$%\1/* \2 */%
125:
1.1 root 126: sed -e '
127: :loop
128: /\\$/ N
129: /\\$/ b loop
130: /[ ]_IO[A-Z]*[ ]*(/ s/(\(.\),/('\''\1'\'',/
131: /[ ]BSD43__IO[A-Z]*[ ]*(/ s/(\(.\),/('\''\1'\'',/
132: /#define._IO/ s/'\''x'\''/x/g
133: /#define.BSD43__IO/ s/'\''x'\''/x/g
134: /[^A-Z]CTRL[ ]*(/ s/\([^'\'']\))/'\''\1'\'')/
135: /#define.CTRL/ s/'\''c'\''/c/g
136: /#define._CTRL/ s/'\''c'\''/c/g
137: /#define.BSD43_CTRL/ s/'\''c'\''/c/g
1.1.1.2 root 138: /#[a-z]*if.*[ (]m68k/ s/\([^_]\)m68k/\1__m68k__/g
139: /#[a-z]*if.*[ (]__i386/ s/__i386/__i386__/g
140: /#[a-z]*if.*[ (]i386/ s/\([^_]\)i386/\1__i386__/g
141: /#[a-z]*if.*[ (]sparc/ s/\([^_]\)sparc/\1__sparc__/g
142: /#[a-z]*if.*[ (]mc68000/ s/\([^_]\)mc68000/\1__mc68000__/g
143: /#[a-z]*if.*[ (]vax/ s/\([^_]\)vax/\1__vax__/g
144: /#[a-z]*if.*[ (]sun/ s/\([^_]\)\(sun[a-z0-9]*\)\([^a-z0-9_]\)/\1__\2__\3/g
145: /#[a-z]*if.*[ (]sun/ s/\([^_]\)\(sun[a-z0-9]*\)$/\1__\2__/g
146: /#[a-z]*if.*[ (]ns32000/ s/\([^_]\)ns32000/\1__ns32000__/g
147: /#[a-z]*if.*[ (]pyr/ s/\([^_]\)pyr/\1__pyr__/g
148: /#[a-z]*if.*[ (]is68k/ s/\([^_]\)is68k/\1__is68k__/g
1.1.1.3 ! root 149: /^#define.NULL[ ]/ i\
1.1 root 150: #undef NULL
151: ' $2/$file > $2/$file.sed
152: mv $2/$file.sed $2/$file
153: if cmp $file $2/$file >/dev/null 2>&1; then
154: echo Deleting $2/$file\; no fixes were needed.
155: rm $2/$file
156: fi
157: fi
158: fi
159: done
160: shift; shift
161: done
162:
163: cd ${INPUT}
164:
165: # Fix one other error in this file: a mismatched quote not inside a C comment.
166: file=sundev/vuid_event.h
1.1.1.2 root 167: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
168: mkdir ${LIB}/sundev 2>/dev/null
169: cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
170: chmod +w ${LIB}/$file 2>/dev/null
1.1 root 171: fi
172:
173: if [ -r ${LIB}/$file ]; then
174: echo Fixing $file comment
175: ex ${LIB}/$file <<EOF
176: g/doesn't/s/doesn't/does not/
177: wq
178: EOF
179: if cmp $file ${LIB}/$file >/dev/null 2>&1; then
180: echo Deleting ${LIB}/$file\; no fixes were needed.
181: rm ${LIB}/$file
182: fi
183: fi
184:
1.1.1.3 ! root 185: # Fix this Sun file to avoid interfering with stddef.h.
1.1 root 186: file=sys/stdtypes.h
1.1.1.2 root 187: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
188: cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
189: chmod +w ${LIB}/$file 2>/dev/null
1.1 root 190: fi
191:
192: if [ -r ${LIB}/$file ]; then
1.1.1.2 root 193: echo Fixing $file
1.1 root 194: ex ${LIB}/$file <<EOF
195: /size_t.*;/
196: i
1.1.1.2 root 197: #ifndef _GCC_SIZE_T
198: #define _GCC_SIZE_T
1.1 root 199: .
200: /size_t/+1
201: i
202: #endif
203: .
204: /ptrdiff_t.*;/
205: i
1.1.1.2 root 206: #ifndef _GCC_PTRDIFF_T
207: #define _GCC_PTRDIFF_T
1.1 root 208: .
209: /ptrdiff_t/+1
210: i
211: #endif
212: .
213: /wchar_t.*;/
214: i
1.1.1.2 root 215: #ifndef _GCC_WCHAR_T
216: #define _GCC_WCHAR_T
1.1 root 217: .
218: /wchar_t/+1
219: i
220: #endif
221: .
222: wq
223: EOF
224: if cmp $file ${LIB}/$file >/dev/null 2>&1; then
225: echo Deleting ${LIB}/$file\; no fixes were needed.
226: rm ${LIB}/$file
227: fi
228: fi
229:
1.1.1.3 ! root 230: # Fix this file to avoid interfering with stddef.h.
1.1 root 231: file=sys/types.h
1.1.1.2 root 232: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
233: cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
234: chmod +w ${LIB}/$file 2>/dev/null
1.1 root 235: fi
236:
237: if [ -r ${LIB}/$file ]; then
1.1.1.2 root 238: echo Fixing $file
1.1 root 239: ex ${LIB}/$file <<EOF
1.1.1.3 ! root 240: /typedef.*size_t.*;/
1.1 root 241: i
1.1.1.2 root 242: #ifndef _GCC_SIZE_T
243: #define _GCC_SIZE_T
1.1 root 244: .
245: /size_t/+1
246: i
247: #endif
248: .
249: wq
250: EOF
251: if cmp $file ${LIB}/$file >/dev/null 2>&1; then
252: echo Deleting ${LIB}/$file\; no fixes were needed.
253: rm ${LIB}/$file
254: fi
255: fi
256:
257: # Fix an error in this file: a missing semi-colon at the end of the statsswtch
258: # structure definition.
259: file=rpcsvc/rstat.h
1.1.1.2 root 260: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
261: mkdir ${LIB}/rpcsvc 2>/dev/null
262: cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
263: chmod +w ${LIB}/$file 2>/dev/null
1.1 root 264: fi
265:
266: if [ -r ${LIB}/$file ]; then
267: echo Fixing $file, definition of statsswtch
268: ex ${LIB}/$file <<EOF
269: g/boottime$/s//&;/
270: wq
271: EOF
272: if cmp $file ${LIB}/$file >/dev/null 2>&1; then
273: echo Deleting ${LIB}/$file\; no fixes were needed.
274: rm ${LIB}/$file
275: fi
276: fi
277:
278: # Fix an error in this file: a missing semi-colon at the end of the nodeent
279: # structure definition.
280: file=netdnet/dnetdb.h
1.1.1.2 root 281: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
282: mkdir ${LIB}/netdnet 2>/dev/null
283: cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
284: chmod +w ${LIB}/$file 2>/dev/null
1.1 root 285: fi
286:
287: if [ -r ${LIB}/$file ]; then
288: echo Fixing $file, definition of nodeent
289: ex ${LIB}/$file <<EOF
1.1.1.3 ! root 290: g/char.*na_addr *$/s//&;/
1.1 root 291: wq
292: EOF
293: if cmp $file ${LIB}/$file >/dev/null 2>&1; then
294: echo Deleting ${LIB}/$file\; no fixes were needed.
295: rm ${LIB}/$file
296: fi
297: fi
298:
299: # Check for bad #ifdef line (in Ultrix 4.1)
300: file=sys/file.h
1.1.1.2 root 301: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
302: cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
303: chmod +w ${LIB}/$file 2>/dev/null
1.1 root 304: fi
305:
306: if [ -r ${LIB}/$file ]; then
307: echo Fixing $file, bad \#ifdef line
308: ex ${LIB}/$file <<EOF
309: g/^#ifdef KERNEL && !defined/
310: s/#ifdef KERNEL && !defined/#if defined(KERNEL) \&\& !defined/
311: wq
312: EOF
313: if cmp $file ${LIB}/$file >/dev/null 2>&1; then
314: echo Deleting ${LIB}/$file\; no fixes were needed.
315: rm ${LIB}/$file
316: fi
317: fi
318:
1.1.1.2 root 319: # Remove nested comments created by #endifs in a comment (Ultrix 4.1)
320: # Only needed if commenting out junk after #endif.
321: #file=signal.h
322: #if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
323: # cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
324: # chmod +w ${LIB}/$file 2>/dev/null
325: #fi
326: #
327: #if [ -r ${LIB}/$file ]; then
328: # echo Fixing $file, nested comments
329: # sed -e 's/#endif.*/#endif/' ${LIB}/$file > ${LIB}/${file}.sed
330: # rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
331: # if cmp $file ${LIB}/$file >/dev/null 2>&1; then
332: # echo Deleting ${LIB}/$file\; no fixes were needed.
333: # rm -f ${LIB}/$file
334: # fi
335: #fi
1.1 root 336:
1.1.1.2 root 337: # Check for superfluous `static' (in Ultrix 4.2)
1.1 root 338: file=machine/cpu.h
1.1.1.2 root 339: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
340: mkdir ${LIB}/machine 2>/dev/null
341: cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
342: chmod +w ${LIB}/$file 2>/dev/null
1.1 root 343: fi
344:
345: if [ -r ${LIB}/$file ]; then
346: echo Fixing $file, superfluous static
347: ex ${LIB}/$file <<EOF
348: g/^static struct tlb_pid_state/
349: s/static//
350: wq
351: EOF
352: if cmp $file ${LIB}/$file >/dev/null 2>&1; then
353: echo Deleting ${LIB}/$file\; no fixes were needed.
354: rm ${LIB}/$file
355: else
356: # This file has an alternative name, mips/cpu.h. Fix that name, too.
357: if cmp machine/cpu.h mips/cpu.h > /dev/null 2>& 1; then
358: mkdir ${LIB}/mips 2>&-
359: ln ${LIB}/$file ${LIB}/mips/cpu.h
360: fi
361: fi
362: fi
363:
1.1.1.2 root 364: # Incorrect sprintf declaration in X11/Xmu.h
1.1 root 365: file=X11/Xmu.h
1.1.1.2 root 366: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
367: mkdir ${LIB}/X11 2>/dev/null
368: cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
369: chmod +w ${LIB}/$file 2>/dev/null
1.1 root 370: fi
371:
372: if [ -r ${LIB}/$file ]; then
373: echo Fixing $file sprintf declaration
374: ex ${LIB}/$file <<EOF
375: /^extern char \* sprintf();$/c
376: #ifndef __STDC__
377: extern char * sprintf();
378: #endif /* !defined __STDC__ */
379: .
380: wq
381: EOF
382: if cmp $file ${LIB}/$file >/dev/null 2>&1; then
383: echo Deleting ${LIB}/$file\; no fixes were needed.
384: rm ${LIB}/$file
385: fi
386: fi
387:
388: # Check for missing ';' in struct
389: file=netinet/ip.h
1.1.1.2 root 390: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
391: mkdir ${LIB}/netinet 2>/dev/null
392: cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
393: chmod +w ${LIB}/$file 2>/dev/null
1.1 root 394: fi
395:
1.1.1.2 root 396: if [ -r ${LIB}/$file ]; then
397: echo Fixing $file
398: sed -e '/^struct/,/^};/s/}$/};/' ${LIB}/$file > ${LIB}/${file}.sed
399: rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
400: if cmp $file ${LIB}/$file >/dev/null 2>&1; then
401: echo Deleting ${LIB}/$file\; no fixes were needed.
402: rm -f ${LIB}/$file
403: fi
404: fi
1.1 root 405:
1.1.1.2 root 406: # Fix the CAT macro in SunOS memvar.h.
1.1 root 407: file=pixrect/memvar.h
1.1.1.2 root 408: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
409: mkdir ${LIB}/pixrect 2>/dev/null
410: cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
411: chmod +w ${LIB}/$file 2>/dev/null
412: fi
413:
414: if [ -r ${LIB}/$file ]; then
415: echo Fixing $file
416: sed -e '/^#define.CAT(a,b)/ i\
1.1 root 417: #ifdef __STDC__ \
418: #define CAT(a,b) a##b\
419: #else
420: /^#define.CAT(a,b)/ a\
421: #endif
1.1.1.2 root 422: ' ${LIB}/$file > ${LIB}/${file}.sed
423: rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
424: if cmp $file ${LIB}/$file >/dev/null 2>&1; then
425: echo Deleting ${LIB}/$file\; no fixes were needed.
426: rm -f ${LIB}/$file
1.1 root 427: fi
428: fi
429:
430: # Check for yet more missing ';' in struct (in SunOS 4.0.x)
431: file=rpcsvc/rusers.h
1.1.1.2 root 432: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
433: mkdir ${LIB}/rpcsvc 2>/dev/null
434: cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
435: chmod +w ${LIB}/$file 2>/dev/null
436: fi
437:
438: if [ -r ${LIB}/$file ]; then
439: echo Fixing $file
440: sed -e '/^struct/,/^};/s/_cnt$/_cnt;/' ${LIB}/$file > ${LIB}/${file}.sed
441: rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
442: if cmp $file ${LIB}/$file >/dev/null 2>&1; then
443: echo Deleting ${LIB}/$file\; no fixes were needed.
444: rm -f ${LIB}/$file
1.1 root 445: fi
446: fi
447:
448: # Fix return type of exit and abort in <stdlib.h> on SunOS 4.1.
449: file=stdlib.h
1.1.1.2 root 450: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
451: cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
452: chmod +w ${LIB}/$file 2>/dev/null
1.1 root 453: fi
1.1.1.2 root 454:
455: if [ -r ${LIB}/$file ]; then
456: echo Fixing $file
457: sed -e 's/int abort/void abort/g' \
1.1.1.3 ! root 458: -e 's/int free/void free/g' \
! 459: -e 's/char \* calloc/void \* calloc/g' \
! 460: -e 's/char \* malloc/void \* malloc/g' \
! 461: -e 's/char \* realloc/void \* realloc/g' \
1.1.1.2 root 462: -e 's/int exit/void exit/g' ${LIB}/$file > ${LIB}/${file}.sed
463: rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
464: if cmp $file ${LIB}/$file >/dev/null 2>&1; then
465: echo Deleting ${LIB}/$file\; no fixes were needed.
1.1 root 466: rm -f ${LIB}/$file
467: fi
468: fi
469:
1.1.1.3 ! root 470: # Fix return type of free and {c,m,re}alloc in <malloc.h> on SunOS 4.1.
! 471: file=malloc.h
! 472: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
! 473: cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
! 474: chmod +w ${LIB}/$file 2>/dev/null
! 475: fi
! 476:
! 477: if [ -r ${LIB}/$file ]; then
! 478: echo Fixing $file
! 479: sed -e 's/typedef[ ]char \* malloc_t/typedef void \* malloc_t/g' \
! 480: -e 's/int[ ][ ]*free/void free/g' \
! 481: ${LIB}/$file > ${LIB}/${file}.sed
! 482: rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
! 483: if cmp $file ${LIB}/$file >/dev/null 2>&1; then
! 484: echo Deleting ${LIB}/$file\; no fixes were needed.
! 485: rm -f ${LIB}/$file
! 486: fi
! 487: fi
! 488:
! 489:
1.1 root 490: # Fix bogus comment in <locale.h> on SunOS 4.1.
491: file=locale.h
1.1.1.2 root 492: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
493: cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
494: chmod +w ${LIB}/$file 2>/dev/null
1.1 root 495: fi
1.1.1.2 root 496:
497: if [ -r ${LIB}/$file ]; then
498: echo Fixing $file
499: sed -e 's%#endif / \*%#endif /\* %g' ${LIB}/$file > ${LIB}/${file}.sed
500: rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
501: if cmp $file ${LIB}/$file >/dev/null 2>&1; then
502: echo Deleting ${LIB}/$file\; no fixes were needed.
1.1 root 503: rm -f ${LIB}/$file
504: fi
505: fi
506:
507: # Fix bogus #ifdef in <hsfs/hsfs_spec.h> on SunOS 4.1.
508: file=hsfs/hsfs_spec.h
1.1.1.2 root 509: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
510: mkdir ${LIB}/hsfs 2>/dev/null
511: cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
512: chmod +w ${LIB}/$file 2>/dev/null
513: fi
514:
1.1 root 515: if [ -r ${LIB}/$file ]; then
1.1.1.2 root 516: echo Fixing $file
517: sed -e 's/\#ifdef __i386__ || __vax__/\#if __i386__ || __vax__/g' \
518: ${LIB}/$file > ${LIB}/${file}.sed
519: rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
520: if cmp $file ${LIB}/$file >/dev/null 2>&1; then
521: echo Deleting ${LIB}/$file\; no fixes were needed.
1.1 root 522: rm -f ${LIB}/$file
523: fi
524: fi
525:
526: # Fix bogus #ifdef in <hsfs/hsnode.h> on SunOS 4.1.
527: file=hsfs/hsnode.h
1.1.1.2 root 528: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
529: mkdir ${LIB}/hsfs 2>/dev/null
530: cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
531: chmod +w ${LIB}/$file 2>/dev/null
532: fi
533:
1.1 root 534: if [ -r ${LIB}/$file ]; then
1.1.1.2 root 535: echo Fixing $file
536: sed -e 's/\#ifdef __i386__ || __sun4c__/\#if __i386__ || __sun4c__/g' \
537: ${LIB}/$file > ${LIB}/${file}.sed
538: rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
539: if cmp $file ${LIB}/$file >/dev/null 2>&1; then
540: echo Deleting ${LIB}/$file\; no fixes were needed.
1.1 root 541: rm -f ${LIB}/$file
542: fi
543: fi
544:
545: # Fix bogus #ifdef in <hsfs/iso_spec.h> on SunOS 4.1.
546: file=hsfs/iso_spec.h
1.1.1.2 root 547: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
548: mkdir ${LIB}/hsfs 2>/dev/null
549: cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
550: chmod +w ${LIB}/$file 2>/dev/null
551: fi
552:
1.1 root 553: if [ -r ${LIB}/$file ]; then
1.1.1.2 root 554: echo Fixing $file
555: sed -e 's/\#ifdef __i386__ || __vax__/\#if __i386__ || __vax__/g' \
556: ${LIB}/$file > ${LIB}/${file}.sed
557: rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
558: if cmp $file ${LIB}/$file >/dev/null 2>&1; then
559: echo Deleting ${LIB}/$file\; no fixes were needed.
560: rm -f ${LIB}/$file
561: fi
562: fi
563:
564: # Incorrect #include in Sony News-OS 3.2.
565: file=machine/machparam.h
566: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
567: mkdir ${LIB}/machine 2>/dev/null
568: cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
569: chmod +w ${LIB}/$file 2>/dev/null
570: fi
571:
572: if [ -r ${LIB}/$file ]; then
573: echo Fixing $file, incorrect \#include
574: sed -e 's@"../machine/endian.h"@<machine/endian.h>@' \
575: ${LIB}/$file > ${LIB}/${file}.sed
576: rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
577: if cmp $file ${LIB}/$file >/dev/null 2>&1; then
578: echo Deleting ${LIB}/$file\; no fixes were needed.
579: rm -f ${LIB}/$file
580: fi
581: fi
582:
583: # Multiline comment after typedef on IRIX 4.0.1.
584: file=sys/types.h
585: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
586: mkdir ${LIB}/sys 2>/dev/null
587: cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
588: chmod +w ${LIB}/$file 2>/dev/null
589: fi
590:
591: if [ -r ${LIB}/$file ]; then
592: echo Fixing $file, comment in the middle of \#ifdef
593: sed -e 's@type of the result@type of the result */@' \
594: -e 's@of the sizeof@/* of the sizeof@' \
595: ${LIB}/$file > ${LIB}/${file}.sed
596: rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
597: if cmp $file ${LIB}/$file >/dev/null 2>&1; then
598: echo Deleting ${LIB}/$file\; no fixes were needed.
1.1 root 599: rm -f ${LIB}/$file
600: fi
601: fi
602:
1.1.1.3 ! root 603: # Fix non-ANSI memcpy declaration that conflicts with gcc's builtin
! 604: # declaration on Sun OS 4.x. We must only fix this on Sun OS 4.x, because
! 605: # many other systems have similar text but correct versions of the file.
! 606: # To ensure only Sun's is fixed, we grep for a likely unique string.
! 607: file=memory.h
! 608: if egrep '/\* @\(#\)memory.h 1.4 88/08/19 SMI; from S5R2 1.2 \*/' $file > /dev/null; then
! 609: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
! 610: cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
! 611: chmod +w ${LIB}/$file 2>/dev/null
! 612: fi
! 613: if [ -r ${LIB}/$file ]; then
! 614: echo Replacing $file
! 615: cat > ${LIB}/$file << EOF
! 616: /* This file was generated by fixincludes */
! 617: #ifndef __memory_h__
! 618: #define __memory_h__
! 619:
! 620: #ifdef __STDC__
! 621: extern void *memccpy();
! 622: extern void *memchr();
! 623: extern void *memcpy();
! 624: extern void *memset();
! 625: #else
! 626: extern char *memccpy();
! 627: extern char *memchr();
! 628: extern char *memcpy();
! 629: extern char *memset();
! 630: #endif /* __STDC__ */
! 631:
! 632: extern int memcmp();
! 633:
! 634: #endif __memory_h__
! 635: EOF
! 636: fi
! 637: fi
! 638:
! 639: # parameters not const on DECstation Ultrix V4.0.
! 640: file=stdio.h
! 641: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
! 642: cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
! 643: chmod +w ${LIB}/$file 2>/dev/null
! 644: fi
! 645:
! 646: if [ -r ${LIB}/$file ]; then
! 647: echo Fixing $file, non-const arg
! 648: sed -e 's@perror( char \*__s );@perror( const char *__s );@' \
! 649: -e 's@fputs( char \*__s,@fputs( const char *__s,@' \
! 650: -e 's@fopen( char \*__filename, char \*__type );@fopen( const char *__filename, const char *__type );@' \
! 651: -e 's@fwrite( void \*__ptr,@fwrite( const void *__ptr,@' \
! 652: -e 's@fscanf( FILE \*__stream, char \*__format,@fscanf( FILE *__stream, const char *__format,@' \
! 653: -e 's@scanf( char \*__format,@scanf( const char *__format,@' \
! 654: -e 's@sscanf( char \*__s, char \*__format,@sscanf( const char *__s, const char *__format,@' \
! 655: ${LIB}/$file > ${LIB}/${file}.sed
! 656: rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
! 657: if cmp $file ${LIB}/$file >/dev/null 2>&1; then
! 658: echo Deleting ${LIB}/$file\; no fixes were needed.
! 659: rm -f ${LIB}/$file
! 660: fi
! 661: fi
! 662:
! 663: # parameter to atof not const on DECstation Ultrix V4.0.
! 664: file=math.h
! 665: if [ -r $file ] && [ ! -r ${LIB}/$file ]; then
! 666: cp $file ${LIB}/$file >/dev/null 2>&1 || echo "Can't copy $file"
! 667: chmod +w ${LIB}/$file 2>/dev/null
! 668: fi
! 669:
! 670: if [ -r ${LIB}/$file ]; then
! 671: echo Fixing $file, non-const arg
! 672: sed -e 's@atof( char \*__nptr );@atof( const char *__nptr );@' \
! 673: ${LIB}/$file > ${LIB}/${file}.sed
! 674: rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
! 675: if cmp $file ${LIB}/$file >/dev/null 2>&1; then
! 676: echo Deleting ${LIB}/$file\; no fixes were needed.
! 677: rm -f ${LIB}/$file
! 678: fi
! 679: fi
! 680:
1.1 root 681: echo 'Removing unneeded directories:'
682: cd $LIB
683: files=`find . -type d -print | sort -r`
684: for file in $files; do
685: rmdir $LIB/$file > /dev/null 2>&1
686: done
687:
688: if $LINKS; then
689: echo 'Making internal symbolic non-directory links'
690: cd ${INPUT}
691: files=`find . -type l -print`
692: for file in $files; do
693: dest=`ls -ld $file | sed -n 's/.*-> //p'`
694: if expr "$dest" : '[^/].*' > /dev/null; then
695: target=${LIB}/`echo file | sed "s|[^/]*\$|$dest|"`
696: if [ -f $target ]; then
697: ln -s $dest ${LIB}/$file >/dev/null 2>&1
698: fi
699: fi
700: done
701: fi
702:
703: exit 0
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.