diff options
Diffstat (limited to 'gcc/fixinc.svr4')
-rwxr-xr-x | gcc/fixinc.svr4 | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/gcc/fixinc.svr4 b/gcc/fixinc.svr4 index fa0bae0144b..cf04a2c4761 100755 --- a/gcc/fixinc.svr4 +++ b/gcc/fixinc.svr4 @@ -501,6 +501,7 @@ EOF fi # Add a #define of _SIGACTION_ into <sys/signal.h>. +# Also fix types of SIG_DFL, SIG_ERR, SIG_IGN, and SIG_HOLD. file=sys/signal.h base=`basename $file` @@ -522,6 +523,7 @@ if [ \! -z "$file_to_fix" ]; then #define _SIGACTION_ struct sigaction { . + 1,\$s/(void *(\*)())/(void (*)(int))/ wq EOF if cmp $file_to_fix /tmp/$base >/dev/null 2>&1; then \ @@ -860,6 +862,64 @@ if [ \! -z "$file_to_fix" ]; then fi fi +# Convert functions to prototype form, and fix arg names in <sys/stat.h>. + +file=sys/stat.h +base=`basename $file` +if [ -r ${LIB}/$file ]; then + file_to_fix=${LIB}/$file +else + if [ -r ${INPUT}/$file ]; then + file_to_fix=${INPUT}/$file + else + file_to_fix="" + fi +fi +if [ \! -z "$file_to_fix" ]; then + echo Checking $file_to_fix + cp $file_to_fix /tmp/$base + chmod +w /tmp/$base + ex /tmp/$base <<EOF +/^stat(path, buf)/j +j +- +/^stat(path, buf)/c +stat (const char *path, struct stat *buf) +. +/^lstat(path, buf)/j +j +- +/^lstat(path, buf)/c +lstat (const char *path, struct stat *buf) +. +/^fstat(fd, buf)/j +j +- +/^fstat(fd, buf)/c +fstat (int fd, struct stat *buf) +. +/^mknod(path, mode, dev)/j +j +j +- +/^mknod(path, mode, dev)/c +mknod (const char *path, mode_t mode, dev_t dev) +. +1,\$s/path/__path/g +1,\$s/buf/__buf/g +1,\$s/fd/__fd/g +1,\$s/ret\\([^u]\\)/__ret\1/g +1,\$s/\\([^_]\\)mode\\([^_]\\)/\\1__mode\\2/g +1,\$s/\\([^_r]\\)dev\\([^_]\\)/\\1__dev\\2/g +wq +EOF + echo Fixed $file_to_fix + rm -f ${LIB}/$file + cp /tmp/$base ${LIB}/$file + rm -f /tmp/$base + fi +fi + # Sony NEWSOS 5.0 does not support the complete ANSI C standard. if [ -x /bin/sony ]; then |