|
|
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:
1.1.1.4 root 34: # Directory where gcc sources (and sometimes special include files) live.
35: SRCDIR=${3-${SRCDIR-.}}
36:
1.1 root 37: # Directory containing the original header files.
38: INPUT=${2-${INPUT-/usr/include}}
39:
40: # Fail if no arg to specify a directory for the output.
41: if [ x$1 = x ]
42: then echo fixincludes: no output directory specified
43: exit 1
44: fi
45:
46: # Directory in which to store the results.
1.1.1.4 root 47: LIB=${1?"fixincludes: output directory not specified"}
1.1 root 48:
49: # Make sure it exists.
50: if [ ! -d $LIB ]; then
51: mkdir $LIB || exit 1
52: fi
53:
54: ORIG_DIR=`pwd`
55:
1.1.1.5 ! root 56: # Make LIB absolute if it is relative.
! 57: # Don't do this if not necessary, since may screw up automounters.
! 58: case $LIB in
! 59: /*)
! 60: ;;
! 61: *)
! 62: cd $LIB; LIB=`${PWDCMD-pwd}`
! 63: ;;
! 64: esac
1.1 root 65:
66: echo 'Building fixincludes in ' ${LIB}
67:
1.1.1.2 root 68: # Determine whether this filesystem has symbolic links.
1.1 root 69: if ln -s X $LIB/ShouldNotExist 2>/dev/null; then
70: rm -f $LIB/ShouldNotExist
71: LINKS=true
72: else
73: LINKS=false
74: fi
75:
76: echo 'Making directories:'
77: cd ${INPUT}
78: if $LINKS; then
79: files=`ls -LR | sed -n s/:$//p`
80: else
81: files=`find . -type d -print | sed '/^.$/d'`
82: fi
83: for file in $files; do
84: rm -rf $LIB/$file
85: if [ ! -d $LIB/$file ]
86: then mkdir $LIB/$file
87: fi
88: done
89:
90: # treetops gets an alternating list
91: # of old directories to copy
92: # and the new directories to copy to.
93: treetops="${INPUT} ${LIB}"
94:
95: if $LINKS; then
96: echo 'Making internal symbolic directory links'
97: for file in $files; do
98: dest=`ls -ld $file | sed -n 's/.*-> //p'`
99: if [ "$dest" ]; then
100: cwd=`pwd`
101: # In case $dest is relative, get to $file's dir first.
102: cd ${INPUT}
103: cd `echo ./$file | sed -n 's&[^/]*$&&p'`
104: # Check that the target directory exists.
105: # Redirections changed to avoid bug in sh on Ultrix.
106: (cd $dest) > /dev/null 2>&1
107: if [ $? = 0 ]; then
108: cd $dest
109: # X gets the dir that the link actually leads to.
110: x=`pwd`
111: # If link leads back into ${INPUT},
112: # make a similar link here.
113: if expr $x : "${INPUT}/.*" > /dev/null; then
114: # Y gets the actual target dir name, relative to ${INPUT}.
115: y=`echo $x | sed -n "s&${INPUT}/&&p"`
116: echo $file '->' $y ': Making link'
117: rm -fr ${LIB}/$file > /dev/null 2>&1
118: ln -s ${LIB}/$y ${LIB}/$file > /dev/null 2>&1
119: else
120: # If the link is to outside ${INPUT},
121: # treat this directory as if it actually contained the files.
122: # This line used to have $dest instead of $x.
123: # $dest seemed to be wrong for links found in subdirectories
124: # of ${INPUT}. Does this change break anything?
125: treetops="$treetops $x ${LIB}/$file"
126: fi
127: fi
128: cd $cwd
129: fi
130: done
131: fi
132:
133: set - $treetops
134: while [ $# != 0 ]; do
135: # $1 is an old directory to copy, and $2 is the new directory to copy to.
136: echo "Finding header files in $1:"
137: cd ${INPUT}
138: cd $1
139: files=`find . -name '*.h' -type f -print`
140: echo 'Checking header files:'
141: for file in $files; do
142: if [ -r $file ]; then
143: cp $file $2/$file >/dev/null 2>&1 || echo "Can't copy $file"
144: chmod +w $2/$file
1.1.1.5 ! root 145: chmod a+r $2/$file
1.1 root 146:
147: # The following have been removed from the sed command below
148: # because it is more useful to leave these things in.
149: # The only reason to remove them was for -pedantic,
150: # which isn't much of a reason. -- rms.
151: # /^[ ]*#[ ]*ident/d
152:
1.1.1.4 root 153: # This code makes Solaris SCSI fail, because it changes the
154: # alignment within some critical structures. See <sys/scsi/impl/commands.h>.
155: # s/u_char\([ ][ ]*[a-zA-Z0-9_][a-zA-Z0-9_]*[ ]*:[ ]*[0-9][0-9]*\)/u_int\1/
156: # Disable these also, since they probably aren't safe either.
157: # s/u_short\([ ][ ]*[a-zA-Z0-9_][a-zA-Z0-9_]*[ ]*:[ ]*[0-9][0-9]*\)/u_int\1/
158: # s/ushort\([ ][ ]*[a-zA-Z0-9_][a-zA-Z0-9_]*[ ]*:[ ]*[0-9][0-9]*\)/u_int\1/
159: # s/evcm_t\([ ][ ]*[a-zA-Z0-9_][a-zA-Z0-9_]*[ ]*:[ ]*[0-9][0-9]*\)/u_int\1/
160: # s/Pbyte\([ ][ ]*[a-zA-Z0-9_][a-zA-Z0-9_]*[ ]*:[ ]*SEQSIZ\)/unsigned int\1/
161:
1.1 root 162: # The change of u_char, etc, to u_int
163: # applies to bit fields.
164: sed -e '
1.1.1.2 root 165: s%^\([ ]*#[ ]*endif[ ]*\)\([^/ ].*\)$%\1/* \2 */%
166: s%^\([ ]*#[ ]*else[ ]*\)\([^/ ].*\)$%\1/* \2 */%
1.1 root 167: s/#lint(on)/defined(lint)/g
168: s/#lint(off)/!defined(lint)/g
169: s/#machine(\([^)]*\))/defined(__\1__)/g
170: s/#system(\([^)]*\))/defined(__\1__)/g
171: s/#cpu(\([^)]*\))/defined(__\1__)/g
1.1.1.2 root 172: /#[a-z]*if.*[ (]m68k/ s/\([^_]\)m68k/\1__m68k__/g
1.1.1.3 root 173: /#[a-z]*if.*[ (]__i386\([^_]\)/ s/__i386/__i386__/g
1.1.1.2 root 174: /#[a-z]*if.*[ (]i386/ s/\([^_]\)i386/\1__i386__/g
175: /#[a-z]*if.*[ (]sparc/ s/\([^_]\)sparc/\1__sparc__/g
176: /#[a-z]*if.*[ (]mc68000/ s/\([^_]\)mc68000/\1__mc68000__/g
177: /#[a-z]*if.*[ (]vax/ s/\([^_]\)vax/\1__vax__/g
178: /#[a-z]*if.*[ (]sun/ s/\([^_]\)\(sun[a-z0-9]*\)\([^a-z0-9_]\)/\1__\2__\3/g
179: /#[a-z]*if.*[ (]sun/ s/\([^_]\)\(sun[a-z0-9]*\)$/\1__\2__/g
180: /#[a-z]*if.*[ (]ns32000/ s/\([^_]\)ns32000/\1__ns32000__/g
181: /#[a-z]*if.*[ (]pyr/ s/\([^_]\)pyr/\1__pyr__/g
182: /#[a-z]*if.*[ (]is68k/ s/\([^_]\)is68k/\1__is68k__/g
1.1 root 183: s/__STDC__ == 0/!defined (__STRICT_ANSI__)/g
184: s/__STDC__ != 0/defined (__STRICT_ANSI__)/g
185: s/__STDC__ - 0 == 0/!defined (__STRICT_ANSI__)/g
186: ' $2/$file > $2/$file.sed
187: mv $2/$file.sed $2/$file
188: if cmp $file $2/$file >/dev/null 2>&1; then
189: rm $2/$file
1.1.1.5 ! root 190: else
! 191: echo Fixed $file
1.1 root 192: fi
193: fi
194: done
195: shift; shift
196: done
197:
198: # Fix first broken decl of getcwd present on some svr4 systems.
199:
200: file=stdlib.h
201: base=`basename $file`
202: if [ -r ${LIB}/$file ]; then
203: file_to_fix=${LIB}/$file
204: else
205: if [ -r ${INPUT}/$file ]; then
206: file_to_fix=${INPUT}/$file
207: else
208: file_to_fix=""
209: fi
210: fi
211: if [ \! -z "$file_to_fix" ]; then
212: echo Checking $file_to_fix
213: sed -e 's/getcwd(char \*, int)/getcwd(char *, size_t)/' $file_to_fix > /tmp/$base
214: if cmp $file_to_fix /tmp/$base >/dev/null 2>&1; then \
1.1.1.5 ! root 215: true
1.1 root 216: else
217: echo Fixed $file_to_fix
218: rm -f ${LIB}/$file
219: cp /tmp/$base ${LIB}/$file
1.1.1.5 ! root 220: chmod a+r ${LIB}/$file
1.1 root 221: fi
222: rm -f /tmp/$base
223: fi
224:
225: # Fix second broken decl of getcwd present on some svr4 systems. Also
226: # fix the incorrect decl of profil present on some svr4 systems.
227:
228: file=unistd.h
229: base=`basename $file`
230: if [ -r ${LIB}/$file ]; then
231: file_to_fix=${LIB}/$file
232: else
233: if [ -r ${INPUT}/$file ]; then
234: file_to_fix=${INPUT}/$file
235: else
236: file_to_fix=""
237: fi
238: fi
239: if [ \! -z "$file_to_fix" ]; then
240: echo Checking $file_to_fix
241: sed -e 's/getcwd(char \*, int)/getcwd(char *, size_t)/' $file_to_fix \
242: | sed -e 's/profil(unsigned short \*, unsigned int, unsigned int, unsigned int)/profil(unsigned short *, size_t, int, unsigned)/' > /tmp/$base
243: if cmp $file_to_fix /tmp/$base >/dev/null 2>&1; then \
1.1.1.5 ! root 244: true
1.1 root 245: else
246: echo Fixed $file_to_fix
247: rm -f ${LIB}/$file
248: cp /tmp/$base ${LIB}/$file
1.1.1.5 ! root 249: chmod a+r ${LIB}/$file
1.1 root 250: fi
251: rm -f /tmp/$base
252: fi
253:
254: # Fix the definition of NULL in <sys/param.h> so that it is conditional
255: # and so that it is correct for both C and C++.
256:
257: file=sys/param.h
258: base=`basename $file`
259: if [ -r ${LIB}/$file ]; then
260: file_to_fix=${LIB}/$file
261: else
262: if [ -r ${INPUT}/$file ]; then
263: file_to_fix=${INPUT}/$file
264: else
265: file_to_fix=""
266: fi
267: fi
268: if [ \! -z "$file_to_fix" ]; then
269: echo Checking $file_to_fix
270: cp $file_to_fix /tmp/$base
271: chmod +w /tmp/$base
1.1.1.5 ! root 272: chmod a+r /tmp/$base
! 273: sed -e '/^#define[ ]*NULL[ ]*0$/c\
! 274: #ifndef NULL\
! 275: #ifdef __cplusplus\
! 276: #define __NULL_TYPE\
! 277: #else /* !defined(__cplusplus) */\
! 278: #define __NULL_TYPE (void *)\
! 279: #endif /* !defined(__cplusplus) */\
! 280: #define NULL (__NULL_TYPE 0)\
! 281: #endif /* !defined(NULL) */' /tmp/$base > /tmp/$base.sed
! 282: if cmp $file_to_fix /tmp/$base.sed >/dev/null 2>&1; then \
! 283: true
1.1 root 284: else
285: echo Fixed $file_to_fix
286: rm -f ${LIB}/$file
1.1.1.5 ! root 287: cp /tmp/$base.sed ${LIB}/$file
! 288: chmod a+r ${LIB}/$file
1.1 root 289: fi
1.1.1.5 ! root 290: rm -f /tmp/$base /tmp/$base.sed
1.1 root 291: fi
292:
293: # Likewise fix the definition of NULL in <stdio.h> so that it is conditional
294: # and so that it is correct for both C and C++.
295:
296: file=stdio.h
297: base=`basename $file`
298: if [ -r ${LIB}/$file ]; then
299: file_to_fix=${LIB}/$file
300: else
301: if [ -r ${INPUT}/$file ]; then
302: file_to_fix=${INPUT}/$file
303: else
304: file_to_fix=""
305: fi
306: fi
307: if [ \! -z "$file_to_fix" ]; then
308: echo Checking $file_to_fix
309: cp $file_to_fix /tmp/$base
310: chmod +w /tmp/$base
1.1.1.5 ! root 311: sed -e '/^#define[ ]*NULL[ ]*0$/c\
! 312: #ifdef __cplusplus\
! 313: #define __NULL_TYPE\
! 314: #else /* !defined(__cplusplus) */\
! 315: #define __NULL_TYPE (void *)\
! 316: #endif /* !defined(__cplusplus) */\
! 317: #define NULL (__NULL_TYPE 0)' /tmp/$base > /tmp/$base.sed
! 318: if cmp $file_to_fix /tmp/$base.sed >/dev/null 2>&1; then \
! 319: true
1.1 root 320: else
321: echo Fixed $file_to_fix
322: rm -f ${LIB}/$file
1.1.1.5 ! root 323: cp /tmp/$base.sed ${LIB}/$file
! 324: chmod a+r ${LIB}/$file
1.1 root 325: fi
1.1.1.5 ! root 326: rm -f /tmp/$base /tmp/$base.sed
1.1 root 327: fi
328:
1.1.1.3 root 329: # Likewise fix the definition of NULL in <dbm.h> so that it is conditional
330: # and so that it is correct for both C and C++.
331:
332: file=dbm.h
333: base=`basename $file`
334: if [ -r ${LIB}/$file ]; then
335: file_to_fix=${LIB}/$file
336: else
337: if [ -r ${INPUT}/$file ]; then
338: file_to_fix=${INPUT}/$file
339: else
340: file_to_fix=""
341: fi
342: fi
343: if [ \! -z "$file_to_fix" ]; then
344: echo Checking $file_to_fix
345: cp $file_to_fix /tmp/$base
346: chmod +w /tmp/$base
1.1.1.5 ! root 347: sed -e '/^#define[ ]*NULL[ ]*((char \*) 0)$/c\
! 348: #ifndef NULL\
! 349: #ifdef __cplusplus\
! 350: #define __NULL_TYPE\
! 351: #else /* !defined(__cplusplus) */\
! 352: #define __NULL_TYPE (void *)\
! 353: #endif /* !defined(__cplusplus) */\
! 354: #define NULL (__NULL_TYPE 0)\
! 355: #endif /* !defined(NULL) */' /tmp/$base > /tmp/$base.sed
! 356: if cmp $file_to_fix /tmp/$base.sed >/dev/null 2>&1; then \
! 357: true
1.1.1.3 root 358: else
359: echo Fixed $file_to_fix
360: rm -f ${LIB}/$file
1.1.1.5 ! root 361: cp /tmp/$base.sed ${LIB}/$file
! 362: chmod a+r ${LIB}/$file
1.1.1.3 root 363: fi
1.1.1.5 ! root 364: rm -f /tmp/$base /tmp/$base.sed
1.1.1.3 root 365: fi
366:
1.1.1.4 root 367: # Add a prototyped declaration of mmap to <sys/mman.h>.
1.1 root 368:
369: file=sys/mman.h
370: base=`basename $file`
371: if [ -r ${LIB}/$file ]; then
372: file_to_fix=${LIB}/$file
373: else
374: if [ -r ${INPUT}/$file ]; then
375: file_to_fix=${INPUT}/$file
376: else
377: file_to_fix=""
378: fi
379: fi
380: if [ \! -z "$file_to_fix" ]; then
381: echo Checking $file_to_fix
382: cp $file_to_fix /tmp/$base
383: chmod +w /tmp/$base
1.1.1.5 ! root 384: sed -e '/^extern caddr_t mmap();$/c\
! 385: #ifdef __STDC__\
! 386: extern caddr_t mmap (caddr_t addr, size_t len, int prot, int flags,\
! 387: int fd, off_t off);\
! 388: #else /* !defined(__STDC__) */\
! 389: extern caddr_t mmap ();\
! 390: #endif /* !defined(__STDC__) */' /tmp/$base > /tmp/$base.sed
! 391: if cmp $file_to_fix /tmp/$base.sed >/dev/null 2>&1; then \
! 392: true
1.1 root 393: else
394: echo Fixed $file_to_fix
395: rm -f ${LIB}/$file
1.1.1.5 ! root 396: cp /tmp/$base.sed ${LIB}/$file
! 397: chmod a+r ${LIB}/$file
1.1 root 398: fi
1.1.1.5 ! root 399: rm -f /tmp/$base /tmp/$base.sed
1.1 root 400: fi
401:
402: # Fix declarations of `ftw' and `nftw' in <ftw.h>.
403:
404: file=ftw.h
405: base=`basename $file`
406: if [ -r ${LIB}/$file ]; then
407: file_to_fix=${LIB}/$file
408: else
409: if [ -r ${INPUT}/$file ]; then
410: file_to_fix=${INPUT}/$file
411: else
412: file_to_fix=""
413: fi
414: fi
415: if [ \! -z "$file_to_fix" ]; then
416: echo Checking $file_to_fix
417: cp $file_to_fix /tmp/$base
418: chmod +w /tmp/$base
1.1.1.5 ! root 419: sed -e '/^extern int ftw(const/c\
! 420: #if !defined(_STYPES)\
! 421: static\
! 422: #else\
! 423: extern\
! 424: #endif\
! 425: int ftw(const char *, int (*)(const char *, const struct stat *, int), int);' \
! 426: -e '/^extern int nftw/c\
! 427: #if defined(_STYPES)\
! 428: static\
! 429: #else\
! 430: extern\
! 431: #endif\
! 432: int nftw(const char *, int (*)(const char *, const struct stat *, int, struct FTW *),int, int);' \
! 433: -e '/^extern int ftw(),/c\
! 434: #if !defined(_STYPES)\
! 435: static\
! 436: #else\
! 437: extern\
! 438: #endif\
! 439: int ftw();\
! 440: #if defined(_STYPES)\
! 441: static\
! 442: #else\
! 443: extern\
! 444: #endif\
! 445: int nftw();' /tmp/$base > /tmp/$base.sed
! 446: if cmp $file_to_fix /tmp/$base.sed >/dev/null 2>&1; then \
! 447: true
1.1 root 448: else
449: echo Fixed $file_to_fix
450: rm -f ${LIB}/$file
1.1.1.5 ! root 451: cp /tmp/$base.sed ${LIB}/$file
! 452: chmod a+r ${LIB}/$file
1.1 root 453: fi
1.1.1.5 ! root 454: rm -f /tmp/$base /tmp/$base.sed
1.1 root 455: fi
456:
457: # Add a `static' declaration of `getrnge' into <regexp.h>.
458:
1.1.1.4 root 459: # Don't do this if there is already a `static void getrnge' declaration
460: # present, since this would cause a redeclaration error. Solaris 2.x has
461: # such a declaration.
462:
1.1 root 463: file=regexp.h
464: base=`basename $file`
465: if [ -r ${LIB}/$file ]; then
466: file_to_fix=${LIB}/$file
467: else
468: if [ -r ${INPUT}/$file ]; then
469: file_to_fix=${INPUT}/$file
470: else
471: file_to_fix=""
472: fi
473: fi
474: if [ \! -z "$file_to_fix" ]; then
475: echo Checking $file_to_fix
1.1.1.4 root 476: if grep "static void getrnge" $file_to_fix > /dev/null; then
477: true
478: else
479: cp $file_to_fix /tmp/$base
480: chmod +w /tmp/$base
1.1.1.5 ! root 481: sed -e '/^static int[ ]*size;/c\
! 482: static int size ;\
! 483: \
! 484: static int getrnge ();' /tmp/$base > /tmp/$base.sed
! 485: if cmp $file_to_fix /tmp/$base.sed >/dev/null 2>&1; then \
! 486: true
1.1.1.4 root 487: else
488: echo Fixed $file_to_fix
489: rm -f ${LIB}/$file
1.1.1.5 ! root 490: cp /tmp/$base.sed ${LIB}/$file
! 491: chmod a+r ${LIB}/$file
1.1.1.4 root 492: fi
493: fi
1.1.1.5 ! root 494: rm -f /tmp/$base /tmp/$base.sed
1.1.1.4 root 495: fi
496:
497: # Disable apparent native compiler optimization cruft in SVR4.2 <string.h>
498: # that is visible to any ANSI compiler using this include. Simply
1.1.1.5 ! root 499: # delete the lines that #define some string functions to internal forms.
1.1.1.4 root 500:
501: file=string.h
502: base=`basename $file`
503: if [ -r ${LIB}/$file ]; then
504: file_to_fix=${LIB}/$file
505: else
506: if [ -r ${INPUT}/$file ]; then
507: file_to_fix=${INPUT}/$file
508: else
509: file_to_fix=""
510: fi
511: fi
512: if [ \! -z "$file_to_fix" ]; then
513: echo Checking $file_to_fix
514: cp $file_to_fix /tmp/$base
515: chmod +w /tmp/$base
1.1.1.5 ! root 516: sed -e '/#define.*__std_hdr_/d' /tmp/$base > /tmp/$base.sed
! 517: if cmp $file_to_fix /tmp/$base.sed >/dev/null 2>&1; then \
! 518: true
1.1 root 519: else
520: echo Fixed $file_to_fix
521: rm -f ${LIB}/$file
1.1.1.5 ! root 522: cp /tmp/$base.sed ${LIB}/$file
! 523: chmod a+r ${LIB}/$file
! 524: fi
! 525: rm -f /tmp/$base /tmp/$base.sed
! 526: fi
! 527:
! 528: # Delete any #defines of `__i386' which may be present in <ieeefp.h>. They
! 529: # tend to conflict with the compiler's own definition of this symbol. (We
! 530: # will use the compiler's definition.)
! 531: # Likewise __sparc, for Solaris, and __i860, and a few others
! 532: # (guessing it is necessary for all of them).
! 533:
! 534: file=ieeefp.h
! 535: base=`basename $file`
! 536: if [ -r ${LIB}/$file ]; then
! 537: file_to_fix=${LIB}/$file
! 538: else
! 539: if [ -r ${INPUT}/$file ]; then
! 540: file_to_fix=${INPUT}/$file
! 541: else
! 542: file_to_fix=""
1.1 root 543: fi
544: fi
1.1.1.5 ! root 545: if [ \! -z "$file_to_fix" ]; then
! 546: echo Checking $file_to_fix
! 547: cp $file_to_fix /tmp/$base
! 548: chmod +w /tmp/$base
! 549: sed -e '/#define[ ]*__i386 /d' -e '/#define[ ]*__sparc /d' \
! 550: -e '/#define[ ]*__i860 /d' -e '/#define[ ]*__m88k /d' \
! 551: -e '/#define[ ]*__mips /d' -e '/#define[ ]*__m68k /d' \
! 552: /tmp/$base > /tmp/$base.sed
! 553: if cmp $file_to_fix /tmp/$base.sed >/dev/null 2>&1; then \
! 554: true
! 555: else
! 556: echo Fixed $file_to_fix
! 557: rm -f ${LIB}/$file
! 558: cp /tmp/$base.sed ${LIB}/$file
! 559: chmod a+r ${LIB}/$file
! 560: fi
! 561: rm -f /tmp/$base /tmp/$base.sed
! 562: fi
1.1 root 563:
564: # Add a #define of _SIGACTION_ into <sys/signal.h>.
1.1.1.4 root 565: # Also fix types of SIG_DFL, SIG_ERR, SIG_IGN, and SIG_HOLD.
1.1 root 566:
567: file=sys/signal.h
568: base=`basename $file`
569: if [ -r ${LIB}/$file ]; then
570: file_to_fix=${LIB}/$file
571: else
572: if [ -r ${INPUT}/$file ]; then
573: file_to_fix=${INPUT}/$file
574: else
575: file_to_fix=""
576: fi
577: fi
578: if [ \! -z "$file_to_fix" ]; then
579: echo Checking $file_to_fix
580: cp $file_to_fix /tmp/$base
581: chmod +w /tmp/$base
1.1.1.5 ! root 582: sed -e '/^struct sigaction {/c\
! 583: #define _SIGACTION_\
! 584: struct sigaction {' \
! 585: -e '1,$s/(void *(\*)())/(void (*)(int))/' /tmp/$base > /tmp/$base.sed
! 586: if cmp $file_to_fix /tmp/$base.sed >/dev/null 2>&1; then \
! 587: true
1.1 root 588: else
589: echo Fixed $file_to_fix
590: rm -f ${LIB}/$file
1.1.1.5 ! root 591: cp /tmp/$base.sed ${LIB}/$file
! 592: chmod a+r ${LIB}/$file
1.1 root 593: fi
1.1.1.5 ! root 594: rm -f /tmp/$base /tmp/$base.sed
1.1 root 595: fi
596:
597: # Fix declarations of `makedev', `major', and `minor' in <sys/mkdev.h>.
598:
599: file=sys/mkdev.h
600: base=`basename $file`
601: if [ -r ${LIB}/$file ]; then
602: file_to_fix=${LIB}/$file
603: else
604: if [ -r ${INPUT}/$file ]; then
605: file_to_fix=${INPUT}/$file
606: else
607: file_to_fix=""
608: fi
609: fi
610: if [ \! -z "$file_to_fix" ]; then
611: echo Checking $file_to_fix
612: cp $file_to_fix /tmp/$base
613: chmod +w /tmp/$base
1.1.1.5 ! root 614: sed -e '/^dev_t makedev(const/c\
! 615: static dev_t makedev(const major_t, const minor_t);' \
! 616: -e '/^dev_t makedev()/c\
! 617: static dev_t makedev();' \
! 618: -e '/^major_t major(const/c\
! 619: static major_t major(const dev_t);' \
! 620: -e '/^major_t major()/c\
! 621: static major_t major();' \
! 622: -e '/^minor_t minor(const/c\
! 623: static minor_t minor(const dev_t);' \
! 624: -e '/^minor_t minor()/c\
! 625: static minor_t minor();' /tmp/$base > /tmp/$base.sed
! 626: if cmp $file_to_fix /tmp/$base.sed >/dev/null 2>&1; then \
! 627: true
1.1 root 628: else
629: echo Fixed $file_to_fix
630: rm -f ${LIB}/$file
1.1.1.5 ! root 631: cp /tmp/$base.sed ${LIB}/$file
! 632: chmod a+r ${LIB}/$file
1.1 root 633: fi
1.1.1.5 ! root 634: rm -f /tmp/$base /tmp/$base.sed
1.1 root 635: fi
636:
637: # Fix reference to NMSZ in <sys/adv.h>.
638:
639: file=sys/adv.h
640: base=`basename $file`
641: if [ -r ${LIB}/$file ]; then
642: file_to_fix=${LIB}/$file
643: else
644: if [ -r ${INPUT}/$file ]; then
645: file_to_fix=${INPUT}/$file
646: else
647: file_to_fix=""
648: fi
649: fi
650: if [ \! -z "$file_to_fix" ]; then
651: echo Checking $file_to_fix
652: sed 's/\[NMSZ\]/\[RFS_NMSZ\]/g' $file_to_fix > /tmp/$base
653: if cmp $file_to_fix /tmp/$base >/dev/null 2>&1; then \
1.1.1.5 ! root 654: true
1.1 root 655: else
656: echo Fixed $file_to_fix
657: rm -f ${LIB}/$file
658: cp /tmp/$base ${LIB}/$file
1.1.1.5 ! root 659: chmod a+r ${LIB}/$file
1.1 root 660: fi
661: rm -f /tmp/$base
662: fi
663:
664: # Fix reference to NC_NPI_RAW in <sys/netcspace.h>. Also fix types of
665: # array initializers.
666:
667: file=sys/netcspace.h
668: base=`basename $file`
669: if [ -r ${LIB}/$file ]; then
670: file_to_fix=${LIB}/$file
671: else
672: if [ -r ${INPUT}/$file ]; then
673: file_to_fix=${INPUT}/$file
674: else
675: file_to_fix=""
676: fi
677: fi
678: if [ \! -z "$file_to_fix" ]; then
679: echo Checking $file_to_fix
680: sed 's/NC_NPI_RAW/NC_TPI_RAW/g' $file_to_fix \
681: | sed 's/NC_/(unsigned long) NC_/' > /tmp/$base
682: if cmp $file_to_fix /tmp/$base >/dev/null 2>&1; then \
1.1.1.5 ! root 683: true
1.1 root 684: else
685: echo Fixed $file_to_fix
686: rm -f ${LIB}/$file
687: cp /tmp/$base ${LIB}/$file
1.1.1.5 ! root 688: chmod a+r ${LIB}/$file
1.1 root 689: fi
690: rm -f /tmp/$base
691: fi
692:
693: # Conditionalize all of <fs/rfs/rf_cache.h> on _KERNEL being defined.
694:
695: file=fs/rfs/rf_cache.h
696: base=`basename $file`
697: if [ -r ${LIB}/$file ]; then
698: file_to_fix=${LIB}/$file
699: else
700: if [ -r ${INPUT}/$file ]; then
701: file_to_fix=${INPUT}/$file
702: else
703: file_to_fix=""
704: fi
705: fi
706: if [ \! -z "$file_to_fix" ]; then
707: echo Checking $file_to_fix
708: if grep _KERNEL $file_to_fix > /dev/null; then
1.1.1.5 ! root 709: true
1.1 root 710: else
711: echo '#ifdef _KERNEL' > /tmp/$base
712: cat $file_to_fix >> /tmp/$base
713: echo '#endif /* defined(_KERNEL) */' >> /tmp/$base
714: echo Fixed $file_to_fix
715: rm -f ${LIB}/$file
716: cp /tmp/$base ${LIB}/$file
1.1.1.5 ! root 717: chmod a+r ${LIB}/$file
1.1 root 718: rm -f /tmp/$base
719: fi
720: fi
721:
722: # Conditionalize all of <sys/erec.h> on _KERNEL being defined.
723:
724: file=sys/erec.h
725: base=`basename $file`
726: if [ -r ${LIB}/$file ]; then
727: file_to_fix=${LIB}/$file
728: else
729: if [ -r ${INPUT}/$file ]; then
730: file_to_fix=${INPUT}/$file
731: else
732: file_to_fix=""
733: fi
734: fi
735: if [ \! -z "$file_to_fix" ]; then
736: echo Checking $file_to_fix
737: if grep _KERNEL $file_to_fix > /dev/null; then
1.1.1.5 ! root 738: true
1.1 root 739: else
740: echo '#ifdef _KERNEL' > /tmp/$base
741: cat $file_to_fix >> /tmp/$base
742: echo '#endif /* defined(_KERNEL) */' >> /tmp/$base
743: echo Fixed $file_to_fix
744: rm -f ${LIB}/$file
745: cp /tmp/$base ${LIB}/$file
1.1.1.5 ! root 746: chmod a+r ${LIB}/$file
1.1 root 747: rm -f /tmp/$base
748: fi
749: fi
750:
751: # Conditionalize all of <sys/err.h> on _KERNEL being defined.
752:
753: file=sys/err.h
754: base=`basename $file`
755: if [ -r ${LIB}/$file ]; then
756: file_to_fix=${LIB}/$file
757: else
758: if [ -r ${INPUT}/$file ]; then
759: file_to_fix=${INPUT}/$file
760: else
761: file_to_fix=""
762: fi
763: fi
764: if [ \! -z "$file_to_fix" ]; then
765: echo Checking $file_to_fix
766: if grep _KERNEL $file_to_fix > /dev/null; then
1.1.1.5 ! root 767: true
1.1 root 768: else
769: echo '#ifdef _KERNEL' > /tmp/$base
770: cat $file_to_fix >> /tmp/$base
771: echo '#endif /* defined(_KERNEL) */' >> /tmp/$base
772: echo Fixed $file_to_fix
773: rm -f ${LIB}/$file
774: cp /tmp/$base ${LIB}/$file
1.1.1.5 ! root 775: chmod a+r ${LIB}/$file
1.1 root 776: rm -f /tmp/$base
777: fi
778: fi
779:
780: # Conditionalize all of <sys/char.h> on _KERNEL being defined.
781:
782: file=sys/char.h
783: base=`basename $file`
784: if [ -r ${LIB}/$file ]; then
785: file_to_fix=${LIB}/$file
786: else
787: if [ -r ${INPUT}/$file ]; then
788: file_to_fix=${INPUT}/$file
789: else
790: file_to_fix=""
791: fi
792: fi
793: if [ \! -z "$file_to_fix" ]; then
794: echo Checking $file_to_fix
795: if grep _KERNEL $file_to_fix > /dev/null; then
1.1.1.5 ! root 796: true
1.1 root 797: else
798: echo '#ifdef _KERNEL' > /tmp/$base
799: cat $file_to_fix >> /tmp/$base
800: echo '#endif /* defined(_KERNEL) */' >> /tmp/$base
801: echo Fixed $file_to_fix
802: rm -f ${LIB}/$file
803: cp /tmp/$base ${LIB}/$file
1.1.1.5 ! root 804: chmod a+r ${LIB}/$file
1.1 root 805: rm -f /tmp/$base
806: fi
807: fi
808:
809: # Conditionalize all of <sys/getpages.h> on _KERNEL being defined.
810:
811: file=sys/getpages.h
812: base=`basename $file`
813: if [ -r ${LIB}/$file ]; then
814: file_to_fix=${LIB}/$file
815: else
816: if [ -r ${INPUT}/$file ]; then
817: file_to_fix=${INPUT}/$file
818: else
819: file_to_fix=""
820: fi
821: fi
822: if [ \! -z "$file_to_fix" ]; then
823: echo Checking $file_to_fix
824: if grep _KERNEL $file_to_fix > /dev/null; then
1.1.1.5 ! root 825: true
1.1 root 826: else
827: echo '#ifdef _KERNEL' > /tmp/$base
828: cat $file_to_fix >> /tmp/$base
829: echo '#endif /* defined(_KERNEL) */' >> /tmp/$base
830: echo Fixed $file_to_fix
831: rm -f ${LIB}/$file
832: cp /tmp/$base ${LIB}/$file
1.1.1.5 ! root 833: chmod a+r ${LIB}/$file
1.1 root 834: rm -f /tmp/$base
835: fi
836: fi
837:
838: # Conditionalize all of <sys/map.h> on _KERNEL being defined.
839:
840: file=sys/map.h
841: base=`basename $file`
842: if [ -r ${LIB}/$file ]; then
843: file_to_fix=${LIB}/$file
844: else
845: if [ -r ${INPUT}/$file ]; then
846: file_to_fix=${INPUT}/$file
847: else
848: file_to_fix=""
849: fi
850: fi
851: if [ \! -z "$file_to_fix" ]; then
852: echo Checking $file_to_fix
853: if grep _KERNEL $file_to_fix > /dev/null; then
1.1.1.5 ! root 854: true
1.1 root 855: else
856: echo '#ifdef _KERNEL' > /tmp/$base
857: cat $file_to_fix >> /tmp/$base
858: echo '#endif /* defined(_KERNEL) */' >> /tmp/$base
859: echo Fixed $file_to_fix
860: rm -f ${LIB}/$file
861: cp /tmp/$base ${LIB}/$file
1.1.1.5 ! root 862: chmod a+r ${LIB}/$file
1.1 root 863: rm -f /tmp/$base
864: fi
865: fi
866:
867: # Conditionalize all of <sys/cmn_err.h> on _KERNEL being defined.
868:
869: file=sys/cmn_err.h
870: base=`basename $file`
871: if [ -r ${LIB}/$file ]; then
872: file_to_fix=${LIB}/$file
873: else
874: if [ -r ${INPUT}/$file ]; then
875: file_to_fix=${INPUT}/$file
876: else
877: file_to_fix=""
878: fi
879: fi
880: if [ \! -z "$file_to_fix" ]; then
881: echo Checking $file_to_fix
882: if grep _KERNEL $file_to_fix > /dev/null; then
1.1.1.5 ! root 883: true
1.1 root 884: else
885: echo '#ifdef _KERNEL' > /tmp/$base
886: cat $file_to_fix >> /tmp/$base
887: echo '#endif /* defined(_KERNEL) */' >> /tmp/$base
888: echo Fixed $file_to_fix
889: rm -f ${LIB}/$file
890: cp /tmp/$base ${LIB}/$file
1.1.1.5 ! root 891: chmod a+r ${LIB}/$file
1.1 root 892: rm -f /tmp/$base
893: fi
894: fi
895:
896: # Conditionalize all of <sys/kdebugger.h> on _KERNEL being defined.
897:
898: file=sys/kdebugger.h
899: base=`basename $file`
900: if [ -r ${LIB}/$file ]; then
901: file_to_fix=${LIB}/$file
902: else
903: if [ -r ${INPUT}/$file ]; then
904: file_to_fix=${INPUT}/$file
905: else
906: file_to_fix=""
907: fi
908: fi
909: if [ \! -z "$file_to_fix" ]; then
910: echo Checking $file_to_fix
911: if grep _KERNEL $file_to_fix > /dev/null; then
1.1.1.5 ! root 912: true
1.1 root 913: else
914: echo '#ifdef _KERNEL' > /tmp/$base
915: cat $file_to_fix >> /tmp/$base
916: echo '#endif /* defined(_KERNEL) */' >> /tmp/$base
917: echo Fixed $file_to_fix
918: rm -f ${LIB}/$file
919: cp /tmp/$base ${LIB}/$file
1.1.1.5 ! root 920: chmod a+r ${LIB}/$file
1.1 root 921: rm -f /tmp/$base
922: fi
923: fi
924:
1.1.1.4 root 925: # Conditionalize some of <netinet/in.h> on _KERNEL being defined.
926:
927: file=netinet/in.h
928: base=`basename $file`
929: if [ -r ${LIB}/$file ]; then
930: file_to_fix=${LIB}/$file
931: else
932: if [ -r ${INPUT}/$file ]; then
933: file_to_fix=${INPUT}/$file
934: else
935: file_to_fix=""
936: fi
937: fi
938: if [ \! -z "$file_to_fix" ]; then
939: echo Checking $file_to_fix
940: if grep _KERNEL $file_to_fix > /dev/null; then
1.1.1.5 ! root 941: true
1.1.1.4 root 942: else
943: sed -e '/#ifdef INKERNEL/i\
944: #ifdef _KERNEL' \
945: -e '/#endif[ ]*\/\* INKERNEL \*\//a\
946: #endif /* _KERNEL */' \
947: $file_to_fix > ${LIB}/${file}.sed
948: rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
949: echo Fixed $file_to_fix
950: fi
951: fi
952:
953: # Conditionalize some of <sys/endian.h> on __GNUC__ and __GNUG__.
954:
955: file=sys/endian.h
956: base=`basename $file`
957: if [ -r ${LIB}/$file ]; then
958: file_to_fix=${LIB}/$file
959: else
960: if [ -r ${INPUT}/$file ]; then
961: file_to_fix=${INPUT}/$file
962: else
963: file_to_fix=""
964: fi
965: fi
966: if [ \! -z "$file_to_fix" ]; then
967: echo Checking $file_to_fix
968: if grep __GNUC__ $file_to_fix > /dev/null; then
1.1.1.5 ! root 969: true
1.1.1.4 root 970: else
971: sed -e '/# ifdef __STDC__/i\
972: # if !defined (__GNUC__) && !defined (__GNUG__)' \
973: -e '/# include <sys\/byteorder.h>/s/ / /'\
974: -e '/# include <sys\/byteorder.h>/i\
975: # endif /* !defined (__GNUC__) && !defined (__GNUG__) */'\
976: $file_to_fix > ${LIB}/${file}.sed
977: rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
978: echo Fixed $file_to_fix
979: fi
980: fi
981:
982: # Commented out because [email protected] says we don't clearly need it
983: # and the text in types.h is not erroneous.
984: ## In sys/types.h, don't name the enum for booleans.
985: #
986: #file=sys/types.h
987: #base=`basename $file`
988: #if [ -r ${LIB}/$file ]; then
989: # file_to_fix=${LIB}/$file
990: #else
991: # if [ -r ${INPUT}/$file ]; then
992: # file_to_fix=${INPUT}/$file
993: # else
994: # file_to_fix=""
995: # fi
996: #fi
997: #if [ \! -z "$file_to_fix" ]; then
998: # echo Checking $file_to_fix
999: # if grep "enum boolean" $file_to_fix > /dev/null; then
1000: # sed -e 's/enum boolean/enum/' ${LIB}/$file > ${LIB}/${file}.sed
1001: # rm -f ${LIB}/$file; mv ${LIB}/${file}.sed ${LIB}/$file
1002: # echo Fixed $file_to_fix
1003: # else
1.1.1.5 ! root 1004: # true
1.1.1.4 root 1005: # fi
1006: #fi
1007:
1008: # Remove useless extern keyword from struct forward declarations in
1009: # <sys/stream.h> and <sys/strsubr.h>
1010:
1011: file=sys/stream.h
1012: base=`basename $file`
1013: if [ -r ${LIB}/$file ]; then
1014: file_to_fix=${LIB}/$file
1015: else
1016: if [ -r ${INPUT}/$file ]; then
1017: file_to_fix=${INPUT}/$file
1018: else
1019: file_to_fix=""
1020: fi
1021: fi
1022: if [ \! -z "$file_to_fix" ]; then
1023: echo Checking $file_to_fix
1024: sed -e '
1025: s/extern struct stdata;/struct stdata;/g
1026: s/extern struct strevent;/struct strevent;/g
1027: ' $file_to_fix > /tmp/$base
1028: if cmp $file_to_fix /tmp/$base >/dev/null 2>&1; then \
1.1.1.5 ! root 1029: true
1.1.1.4 root 1030: else
1031: echo Fixed $file_to_fix
1032: rm -f ${LIB}/$file
1033: cp /tmp/$base ${LIB}/$file
1.1.1.5 ! root 1034: chmod a+r ${LIB}/$file
1.1.1.4 root 1035: fi
1036: rm -f /tmp/$base
1037: fi
1038:
1039: file=sys/strsubr.h
1040: base=`basename $file`
1041: if [ -r ${LIB}/$file ]; then
1042: file_to_fix=${LIB}/$file
1043: else
1044: if [ -r ${INPUT}/$file ]; then
1045: file_to_fix=${INPUT}/$file
1046: else
1047: file_to_fix=""
1048: fi
1049: fi
1050: if [ \! -z "$file_to_fix" ]; then
1051: echo Checking $file_to_fix
1052: sed -e '
1053: s/extern struct strbuf;/struct strbuf;/g
1054: s/extern struct uio;/struct uio;/g
1055: s/extern struct thread;/struct thread;/g
1056: s/extern struct proc;/struct proc;/g
1057: ' $file_to_fix > /tmp/$base
1058: if cmp $file_to_fix /tmp/$base >/dev/null 2>&1; then \
1.1.1.5 ! root 1059: true
1.1.1.4 root 1060: else
1061: echo Fixed $file_to_fix
1062: rm -f ${LIB}/$file
1063: cp /tmp/$base ${LIB}/$file
1.1.1.5 ! root 1064: chmod a+r ${LIB}/$file
! 1065: fi
! 1066: rm -f /tmp/$base
! 1067: fi
! 1068:
! 1069: # Put storage class at start of decl, to avoid warning.
! 1070: file=rpc/types.h
! 1071: base=`basename $file`
! 1072: if [ -r ${LIB}/$file ]; then
! 1073: file_to_fix=${LIB}/$file
! 1074: else
! 1075: if [ -r ${INPUT}/$file ]; then
! 1076: file_to_fix=${INPUT}/$file
! 1077: else
! 1078: file_to_fix=""
! 1079: fi
! 1080: fi
! 1081: if [ \! -z "$file_to_fix" ]; then
! 1082: echo Checking $file_to_fix
! 1083: sed -e '
! 1084: s/const extern/extern const/g
! 1085: ' $file_to_fix > /tmp/$base
! 1086: if cmp $file_to_fix /tmp/$base >/dev/null 2>&1; then \
! 1087: true
! 1088: else
! 1089: echo Fixed $file_to_fix
! 1090: rm -f ${LIB}/$file
! 1091: cp /tmp/$base ${LIB}/$file
! 1092: chmod a+r ${LIB}/$file
1.1.1.4 root 1093: fi
1094: rm -f /tmp/$base
1095: fi
1096:
1097: # Convert functions to prototype form, and fix arg names in <sys/stat.h>.
1098:
1099: file=sys/stat.h
1100: base=`basename $file`
1101: if [ -r ${LIB}/$file ]; then
1102: file_to_fix=${LIB}/$file
1103: else
1104: if [ -r ${INPUT}/$file ]; then
1105: file_to_fix=${INPUT}/$file
1106: else
1107: file_to_fix=""
1108: fi
1109: fi
1110: if [ \! -z "$file_to_fix" ]; then
1111: echo Checking $file_to_fix
1112: cp $file_to_fix /tmp/$base
1113: chmod +w /tmp/$base
1.1.1.5 ! root 1114: sed -e '/^stat(/{
! 1115: N
! 1116: N
! 1117: s/(.*)\n/( /
! 1118: s/;\n/, /
! 1119: s/;$/)/
! 1120: }' \
! 1121: -e '/^lstat(/{
! 1122: N
! 1123: N
! 1124: s/(.*)\n/( /
! 1125: s/;\n/, /
! 1126: s/;$/)/
! 1127: }' \
! 1128: -e '/^fstat(/{
! 1129: N
! 1130: N
! 1131: s/(.*)\n/( /
! 1132: s/;\n/, /
! 1133: s/;$/)/
! 1134: }' \
! 1135: -e '/^mknod(/{
! 1136: N
! 1137: N
! 1138: N
! 1139: s/(.*)\n/( /
! 1140: s/;\n/, /g
! 1141: s/;$/)/
! 1142: }' \
! 1143: -e '1,$s/\([^A-Za-z]\)path\([^A-Za-z]\)/\1__path\2/g' \
! 1144: -e '1,$s/\([^A-Za-z]\)buf\([^A-Za-z]\)/\1__buf\2/g' \
! 1145: -e '1,$s/\([^A-Za-z]\)fd\([^A-Za-z]\)/\1__fd\2/g' \
! 1146: -e '1,$s/ret\([^u]\)/__ret\1/g' \
! 1147: -e '1,$s/\([^_]\)mode\([^_]\)/\1__mode\2/g' \
! 1148: -e '1,$s/\([^_r]\)dev\([^_]\)/\1__dev\2/g' /tmp/$base > /tmp/$base.sed
! 1149: if cmp $file_to_fix /tmp/$base.sed >/dev/null 2>&1; then \
! 1150: true
! 1151: else
! 1152: echo Fixed $file_to_fix
! 1153: rm -f ${LIB}/$file
! 1154: cp /tmp/$base.sed ${LIB}/$file
! 1155: chmod a+r ${LIB}/$file
! 1156: fi
! 1157: rm -f /tmp/$base /tmp/$base.sed
1.1.1.4 root 1158: fi
1159:
1.1.1.2 root 1160: # Sony NEWSOS 5.0 does not support the complete ANSI C standard.
1161:
1162: if [ -x /bin/sony ]; then
1163: if /bin/sony; then
1164:
1165: # Change <stdio.h> to not define __filbuf, __flsbuf, and __iob
1166:
1167: file=stdio.h
1168: base=`basename $file`
1169: if [ -r ${LIB}/$file ]; then
1170: file_to_fix=${LIB}/$file
1171: else
1172: if [ -r ${INPUT}/$file ]; then
1173: file_to_fix=${INPUT}/$file
1174: else
1175: file_to_fix=""
1176: fi
1177: fi
1178: if [ \! -z "$file_to_fix" ]; then
1179: echo Checking $file_to_fix
1180: cp $file_to_fix /tmp/$base
1181: chmod +w /tmp/$base
1182: sed -e '
1183: s/__filbuf/_filbuf/g
1184: s/__flsbuf/_flsbuf/g
1185: s/__iob/_iob/g
1186: ' /tmp/$base > /tmp/$base.sed
1187: mv /tmp/$base.sed /tmp/$base
1188: if cmp $file_to_fix /tmp/$base.sed >/dev/null 2>&1; then
1.1.1.5 ! root 1189: true
1.1.1.2 root 1190: else
1191: echo Fixed $file_to_fix
1192: rm -f ${LIB}/$file
1193: cp /tmp/$base ${LIB}/$file
1.1.1.5 ! root 1194: chmod a+r ${LIB}/$file
1.1.1.2 root 1195: fi
1196: rm -f /tmp/$base
1197: fi
1198:
1199: # Change <ctype.h> to not define __ctype
1200:
1201: file=ctype.h
1202: base=`basename $file`
1203: if [ -r ${LIB}/$file ]; then
1204: file_to_fix=${LIB}/$file
1205: else
1206: if [ -r ${INPUT}/$file ]; then
1207: file_to_fix=${INPUT}/$file
1208: else
1209: file_to_fix=""
1210: fi
1211: fi
1212: if [ \! -z "$file_to_fix" ]; then
1213: echo Checking $file_to_fix
1214: cp $file_to_fix /tmp/$base
1215: chmod +w /tmp/$base
1216: sed -e '
1217: s/__ctype/_ctype/g
1218: ' /tmp/$base > /tmp/$base.sed
1219: mv /tmp/$base.sed /tmp/$base
1220: if cmp $file_to_fix /tmp/$base.sed >/dev/null 2>&1; then
1.1.1.5 ! root 1221: true
1.1.1.2 root 1222: else
1223: echo Fixed $file_to_fix
1224: rm -f ${LIB}/$file
1225: cp /tmp/$base ${LIB}/$file
1.1.1.5 ! root 1226: chmod a+r ${LIB}/$file
1.1.1.2 root 1227: fi
1228: rm -f /tmp/$base
1229: fi
1230: fi
1231: fi
1232:
1.1.1.4 root 1233: # In limits.h, put #ifndefs around things that are supposed to be defined
1234: # in float.h to avoid redefinition errors if float.h is included first.
1235: # Solaris 2.1 has this problem.
1236:
1237: file=limits.h
1238: base=`basename $file`
1239: if [ -r ${LIB}/$file ]; then
1240: file_to_fix=${LIB}/$file
1241: else
1242: if [ -r ${INPUT}/$file ]; then
1243: file_to_fix=${INPUT}/$file
1244: else
1245: file_to_fix=""
1246: fi
1247: fi
1248: if [ \! -z "$file_to_fix" ]; then
1249: echo Checking $file_to_fix
1250: sed -e '/[ ]FLT_MIN[ ]/i\
1251: #ifndef FLT_MIN'\
1252: -e '/[ ]FLT_MIN[ ]/a\
1253: #endif'\
1254: -e '/[ ]FLT_MAX[ ]/i\
1255: #ifndef FLT_MAX'\
1256: -e '/[ ]FLT_MAX[ ]/a\
1257: #endif'\
1258: -e '/[ ]FLT_DIG[ ]/i\
1259: #ifndef FLT_DIG'\
1260: -e '/[ ]FLT_DIG[ ]/a\
1261: #endif'\
1262: -e '/[ ]DBL_MIN[ ]/i\
1263: #ifndef DBL_MIN'\
1264: -e '/[ ]DBL_MIN[ ]/a\
1265: #endif'\
1266: -e '/[ ]DBL_MAX[ ]/i\
1267: #ifndef DBL_MAX'\
1268: -e '/[ ]DBL_MAX[ ]/a\
1269: #endif'\
1270: -e '/[ ]DBL_DIG[ ]/i\
1271: #ifndef DBL_DIG'\
1272: -e '/[ ]DBL_DIG[ ]/a\
1273: #endif' $file_to_fix > /tmp/$base
1274: if cmp $file_to_fix /tmp/$base >/dev/null 2>&1; then \
1.1.1.5 ! root 1275: true
1.1.1.4 root 1276: else
1277: echo Fixed $file_to_fix
1278: rm -f ${LIB}/$file
1279: cp /tmp/$base ${LIB}/$file
1.1.1.5 ! root 1280: chmod a+r ${LIB}/$file
1.1.1.4 root 1281: fi
1282: rm -f /tmp/$base
1283: fi
1284:
1.1.1.5 ! root 1285: # Completely replace <sys/varargs.h> with a file that includes gcc's
! 1286: # stdarg.h or varargs.h files as appropriate.
! 1287:
! 1288: file=sys/varargs.h
! 1289: if [ -r ${INPUT}/$file ]; then
! 1290: echo Replacing $file
! 1291: cat > ${LIB}/$file << EOF
! 1292: /* This file was generated by fixincludes. */
! 1293: #ifndef _SYS_VARARGS_H
! 1294: #define _SYS_VARARGS_H
! 1295:
! 1296: #ifdef __STDC__
! 1297: #include <stdarg.h>
! 1298: #else
! 1299: #include <varargs.h>
! 1300: #endif
! 1301:
! 1302: #endif /* _SYS_VARARGS_H */
! 1303: EOF
! 1304: chmod a+r ${LIB}/$file
! 1305: fi
! 1306:
1.1 root 1307: echo 'Removing unneeded directories:'
1308: cd $LIB
1309: files=`find . -type d -print | sort -r`
1310: for file in $files; do
1311: rmdir $LIB/$file > /dev/null 2>&1
1312: done
1313:
1314: if $LINKS; then
1315: echo 'Making internal symbolic non-directory links'
1316: cd ${INPUT}
1317: files=`find . -type l -print`
1318: for file in $files; do
1319: dest=`ls -ld $file | sed -n 's/.*-> //p'`
1320: if expr "$dest" : '[^/].*' > /dev/null; then
1321: target=${LIB}/`echo file | sed "s|[^/]*\$|$dest|"`
1322: if [ -f $target ]; then
1323: ln -s $dest ${LIB}/$file >/dev/null 2>&1
1324: fi
1325: fi
1326: done
1327: fi
1328:
1329: cd ${ORIG_DIR}
1330:
1331: echo 'Replacing <sys/byteorder.h>'
1332: rm -f ${LIB}/sys/byteorder.h
1.1.1.4 root 1333: cp ${SRCDIR}/byteorder.h ${LIB}/sys/byteorder.h
1.1 root 1334:
1335: exit 0
1336:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.