--- gcc/fixincludes 2018/04/24 16:51:58 1.1.1.10 +++ gcc/fixincludes 2018/04/24 16:52:53 1.1.1.11 @@ -6,7 +6,10 @@ # for other versions, you had better check. # Directory in which to store the results. -LIB=/usr/local/lib/gcc-include +LIB=${LIB-/usr/local/lib/gcc-include} + +# Make sure it exists. +mkdir $LIB > /dev/null 2>&1 # Determine whether this system has symbolic links. if ln -s X $LIB/ShouldNotExist 2>/dev/null; then @@ -18,7 +21,6 @@ fi echo 'Making directories:' cd /usr/include -mkdir $LIB > /dev/null 2>&1 if $LINKS; then files=`ls -LR | sed -n s/:$//p` else @@ -38,7 +40,7 @@ if $LINKS; then for file in $files; do dest=`ls -ld $file | sed -n 's/.*-> //p'` if [ "$dest" ]; then - if expr $dest : '[^/].*' > /dev/null; then + if expr $dest : '[^/.].*' > /dev/null; then rmdir ${LIB}/$file > /dev/null 2>&1 rm -f ${LIB}/$file > /dev/null 2>&1 ln -s $dest ${LIB}/$file > /dev/null 2>&1 @@ -52,26 +54,28 @@ fi set - $treetops while [ $# != 0 ]; do # $1 is an old directory to copy, and $2 is the new directory to copy to. - echo 'Finding header files in $1:' + echo "Finding header files in $1:" + cd /usr/include cd $1 files=`find . -type f -print` echo 'Checking header files:' for file in $files; do - if egrep -s '[ ]_IO[A-Z]*\(|#define._IO|CTRL' $file; then + if egrep '[ ]_IO[A-Z]*\(|#define._IO|CTRL' $file > /dev/null; then echo Fixing $file if [ -r $file ]; then cp $file $2/$file >/dev/null 2>&1 \ || echo "Can't copy $file" chmod +w $2/$file - ex $2/$file < $2/$file.sed + mv $2/$file.sed $2/$file if cmp $file $2/$file >/dev/null 2>&1; then echo Deleting $2/$file\; no fixes were needed. rm $2/$file @@ -82,6 +86,8 @@ EOF shift; shift done +cd /usr/include + # Fix one other error in this file: a mismatched quote not inside a C comment. file=sundev/vuid_event.h if [ -r $file ]; then @@ -95,7 +101,30 @@ fi if [ -r ${LIB}/sundev/vuid_event.h ]; then echo Fixing sundev/vuid_event.h comment ex ${LIB}/sundev/vuid_event.h <&- + cp $file ${LIB}/$file >/dev/null 2>&1 \ + || echo "Can't copy $file" + chmod +w ${LIB}/$file + fi +fi + +if [ -r ${LIB}/$file ]; then + echo Fixing $file sprintf declaration + ex ${LIB}/$file < /dev/null 2>&1 done +if $LINKS; then + echo 'Making internal symbolic non-directory links' + cd /usr/include + files=`find . -type l -print` + for file in $files; do + dest=`ls -ld $file | sed -n 's/.*-> //p'` + if expr "$dest" : '[^/].*' > /dev/null; then + target=${LIB}/`echo file | sed "s|[^/]*\$|$dest|"` + if [ -f $target ]; then + ln -s $dest ${LIB}/$file >/dev/null 2>&1 + fi + fi + done +fi + +exit 0