patches/uClibc/0.9.28/140-fix_includes.sh.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Fri Sep 04 17:27:16 2009 +0200 (2009-09-04)
changeset 1512 439a6b292917
parent 1 eeea35fbf182
permissions -rw-r--r--
TODO: update

Add TODO list for m4, autoconf, automake and libtool.
Building our own versions would remove burden from the users
who have older versions on their distributions, and are not
ready/able/allowed to upgrade.
     1 --- uClibc-0.9.28/extra/scripts/fix_includes.sh.orig	2006-12-13 05:44:21.000000000 -0700
     2 +++ uClibc-0.9.28/extra/scripts/fix_includes.sh	2006-12-13 05:44:35.000000000 -0700
     3 @@ -1,183 +1,155 @@
     4  #!/bin/sh
     5 -# Copyright (C) 2003 Erik Andersen <andersen@uclibc.org>
     6  #
     7 -# This program is free software; you can redistribute it and/or
     8 -# modify it under the terms of the GNU Library General Public
     9 -# License as published by the Free Software Foundation; either
    10 -# version 2 of the License, or (at your option) any later
    11 -# version.
    12 -#
    13 -# This program is distributed in the hope that it will be useful,
    14 -# but WITHOUT ANY WARRANTY; without even the implied warranty of
    15 -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    16 -# GNU Library General Public License for more details.
    17 -#
    18 -# You should have received a copy of the GNU Library General
    19 -# Public License along with this program; if not, write to the
    20 -# Free Software Foundation, Inc., 59 Temple Place, Suite 330,
    21 -# Boston, MA 02111-1307 USA
    22 -
    23 -usage () {
    24 -    echo ""
    25 -    echo "usage: "`basename $0`" -k KERNEL_SOURCE_DIRECTORY -t TARGET_ARCH"
    26 -    echo ""
    27 -    echo "This utility scans the KERNEL_SOURCE_DIRECTORY directory and"
    28 -    echo "checks that it contains well formed kernel headers suitable"
    29 -    echo "for inclusion as the include/linux/ directory provided by"
    30 -    echo "uClibc."
    31 -    echo ""
    32 -    echo "If the specified kernel headers are present and already"
    33 -    echo "configured for the architecture specified by TARGET_ARCH,"
    34 -    echo "they will be used as-is."
    35 -    echo ""
    36 -    echo "If the specified kernel headers are missing entirely, this"
    37 -    echo "script will return an error."
    38 -    echo ""
    39 -    echo "If the specified kernel headers are present, but are either"
    40 -    echo "not yet configured or are configured for an architecture"
    41 -    echo "different than that specified by TARGET_ARCH, this script"
    42 -    echo "will attempt to 'fix' the kernel headers and make them"
    43 -    echo "suitable for use by uClibc.  This fixing process may fail."
    44 -    echo "It is therefore best to always provide kernel headers that"
    45 -    echo "are already configured for the selected architecture."
    46 -    echo ""
    47 -    echo "Most Linux distributions provide 'kernel-headers' packages"
    48 -    echo "that are suitable for use by uClibc."
    49 -    echo ""
    50 -    echo ""
    51 -    exit 1;
    52 +# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org>
    53 +#
    54 +# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
    55 +#
    56 +
    57 +usage() {
    58 +	echo ""
    59 +	echo "usage: "`basename $0`" -k KERNEL_SOURCE_DIRECTORY -t TARGET_ARCH"
    60 +	echo ""
    61 +	echo "This utility scans the KERNEL_SOURCE_DIRECTORY directory and"
    62 +	echo "checks that it contains well formed kernel headers suitable"
    63 +	echo "for inclusion as the include/linux/ directory provided by"
    64 +	echo "uClibc."
    65 +	echo ""
    66 +	echo "If the specified kernel headers are present and already"
    67 +	echo "configured for the architecture specified by TARGET_ARCH,"
    68 +	echo "they will be used as-is."
    69 +	echo ""
    70 +	echo "If the specified kernel headers are missing entirely, this"
    71 +	echo "script will return an error."
    72 +	echo ""
    73 +	echo "If the specified kernel headers are present, but are either"
    74 +	echo "not yet configured or are configured for an architecture"
    75 +	echo "different than that specified by TARGET_ARCH, this script"
    76 +	echo "will attempt to 'fix' the kernel headers and make them"
    77 +	echo "suitable for use by uClibc.  This fixing process may fail."
    78 +	echo "It is therefore best to always provide kernel headers that"
    79 +	echo "are already configured for the selected architecture."
    80 +	echo ""
    81 +	echo "Most Linux distributions provide 'kernel-headers' packages"
    82 +	echo "that are suitable for use by uClibc."
    83 +	echo ""
    84 +	echo ""
    85 +	exit 1
    86  }
    87  
    88 -HAS_MMU="y";
    89 +
    90 +#
    91 +# Parse our arguments
    92 +#
    93 +HAS_MMU="y"
    94  while [ -n "$1" ]; do
    95 -    case $1 in
    96 -	-k ) shift; if [ -n "$1" ]; then KERNEL_SOURCE=$1; shift; else usage; fi; ;;
    97 -	-t ) shift; if [ -n "$1" ]; then TARGET_ARCH=$1; shift; else usage; fi; ;;
    98 -	-n ) shift; HAS_MMU="n"; ;;
    99 -	-* ) usage; ;;
   100 -	* ) usage; ;;
   101 -    esac;
   102 -done;
   103 +	case $1 in
   104 +		-k ) shift; if [ -n "$1" ]; then KERNEL_SOURCE=$1; shift; else usage; fi; ;;
   105 +		-t ) shift; if [ -n "$1" ]; then TARGET_ARCH=$1; shift; else usage; fi; ;;
   106 +		-n ) shift; HAS_MMU="n"; ;;
   107 +		-* ) usage; ;;
   108 +		* ) usage; ;;
   109 +	esac
   110 +done
   111  
   112 -if [ ! -f "$KERNEL_SOURCE/Makefile" -a ! -f "$KERNEL_SOURCE/include/linux/version.h" ]; then
   113 -    echo "";
   114 -    echo "";
   115 -    echo "The file $KERNEL_SOURCE/Makefile or $KERNEL_SOURCE/include/linux/version.h is missing!";
   116 -    echo "Perhaps your kernel source is broken?"
   117 -    echo "";
   118 -    echo "";
   119 -    exit 1;
   120 -fi;
   121  
   122 -if [ ! -d "$KERNEL_SOURCE" ]; then
   123 -    echo "";
   124 -    echo "";
   125 -    echo "$KERNEL_SOURCE is not a directory";
   126 -    echo "";
   127 -    echo "";
   128 -    exit 1;
   129 -fi;
   130 -
   131 -if [ -f "$KERNEL_SOURCE/Makefile" ] ; then
   132 -# set current VERSION, PATCHLEVEL, SUBLEVEL, EXTRAVERSION
   133 -eval `sed -n -e 's/^\([A-Z]*\) = \([0-9]*\)$/\1=\2/p' -e 's/^\([A-Z]*\) = \(-[-a-z0-9]*\)$/\1=\2/p' $KERNEL_SOURCE/Makefile`
   134 -else
   135 -ver=`grep UTS_RELEASE $KERNEL_SOURCE/include/linux/version.h | cut -d '"' -f 2`
   136 -VERSION=`echo "$ver" | cut -d '.' -f 1`
   137 -PATCHLEVEL=`echo "$ver" | cut -d '.' -f 2`
   138 -if echo "$ver" | grep -q '-' ; then
   139 -SUBLEVEL=`echo "$ver" | sed "s/${VERSION}.${PATCHLEVEL}.//" | cut -d '-' -f 1`
   140 -EXTRAVERSION=`echo "$ver" | sed "s/${VERSION}.${PATCHLEVEL}.${SUBLEVEL}-//"`
   141 -else
   142 -SUBLEVEL=`echo "$ver" | cut -d '.' -f 3`
   143 -#EXTRAVERSION=
   144 -fi
   145 +#
   146 +# Perform some sanity checks on our kernel sources
   147 +#
   148 +if [ ! -f "$KERNEL_SOURCE/Makefile" -a ! -f "$KERNEL_SOURCE/include/linux/version.h" ]; then
   149 +	echo ""
   150 +	echo ""
   151 +	echo "The file $KERNEL_SOURCE/Makefile or $KERNEL_SOURCE/include/linux/version.h is missing!"
   152 +	echo "Perhaps your kernel source is broken?"
   153 +	echo ""
   154 +	echo ""
   155 +	exit 1
   156  fi
   157 -if [ -z "$VERSION" -o -z "$PATCHLEVEL" -o -z "$SUBLEVEL" ]
   158 -then
   159 -    echo "Unable to determine version for kernel headers"
   160 -    echo -e "\tprovided in directory $KERNEL_SOURCE"
   161 -    exit 1
   162 +if [ ! -d "$KERNEL_SOURCE" ]; then
   163 +	echo ""
   164 +	echo ""
   165 +	echo "$KERNEL_SOURCE is not a directory"
   166 +	echo ""
   167 +	echo ""
   168 +	exit 1
   169  fi
   170  
   171 -if [ "$MAKE_IS_SILENT" != "y" ]; then
   172 -echo "Current kernel version is $VERSION.$PATCHLEVEL.$SUBLEVEL${EXTRAVERSION}"
   173 -echo -e "\n"
   174 -echo "Using kernel headers from $VERSION.$PATCHLEVEL.$SUBLEVEL${EXTRAVERSION} for architecture '$TARGET_ARCH'"
   175 -echo -e "\tprovided in directory $KERNEL_SOURCE"
   176 -echo -e "\n"
   177 -fi
   178  
   179 +#
   180  # Create a symlink to include/asm
   181 -
   182 +#
   183  rm -f include/asm*
   184  if [ ! -d "$KERNEL_SOURCE/include/asm" ]; then
   185 -    echo "";
   186 -    echo "";
   187 -    echo "The symlink $KERNEL_SOURCE/include/asm is missing\!";
   188 -    echo "Perhaps you forgot to configure your kernel source?";
   189 -    echo "You really should configure your kernel source tree so I";
   190 -    echo "do not have to try and guess about this sort of thing.";
   191 -    echo ""
   192 -    echo "Attempting to guess a usable value....";
   193 -    echo ""
   194 -    echo "";
   195 -    sleep 1;
   196 -
   197 -    if [ "$TARGET_ARCH" = "powerpc" ];then
   198 -	set -x;
   199 -	ln -fs $KERNEL_SOURCE/include/asm-ppc include/asm;
   200 -	set +x;
   201 -    elif [ "$TARGET_ARCH" = "mips" ];then
   202 -	set -x;
   203 -	ln -fs $KERNEL_SOURCE/include/asm-mips include/asm;
   204 -	set +x;
   205 -    elif [ "$TARGET_ARCH" = "arm" ];then
   206 -	set -x;
   207 -	ln -fs $KERNEL_SOURCE/include/asm-arm include/asm;
   208 -	set +x;
   209 -	if [ ! -L $KERNEL_SOURCE/include/asm-arm/proc ] ; then
   210 -	    if [ ! -L proc ] ; then
   211 -		(cd include/asm;
   212 -		ln -fs proc-armv proc;
   213 -		ln -fs arch-ebsa285 arch);
   214 -	    fi
   215 +	echo ""
   216 +	echo ""
   217 +	echo "The symlink $KERNEL_SOURCE/include/asm is missing\!"
   218 +	echo "Perhaps you forgot to configure your kernel source?"
   219 +	echo "You really should configure your kernel source tree so I"
   220 +	echo "do not have to try and guess about this sort of thing."
   221 +	echo ""
   222 +	echo "Attempting to guess a usable value...."
   223 +	echo ""
   224 +	echo ""
   225 +	sleep 1
   226 +
   227 +	if [ "$TARGET_ARCH" = "powerpc" ]; then
   228 +		set -x
   229 +		ln -fs $KERNEL_SOURCE/include/asm-ppc include/asm
   230 +		set +x
   231 +	elif [ "$TARGET_ARCH" = "mips" ]; then
   232 +		set -x
   233 +		ln -fs $KERNEL_SOURCE/include/asm-mips include/asm
   234 +		set +x
   235 +	elif [ "$TARGET_ARCH" = "arm" ]; then
   236 +		set -x
   237 +		ln -fs $KERNEL_SOURCE/include/asm-arm include/asm
   238 +		set +x
   239 +	if [ ! -L $KERNEL_SOURCE/include/asm-arm/proc ]; then
   240 +		if [ ! -L proc ]; then
   241 +			(
   242 +				cd include/asm
   243 +				ln -fs proc-armv proc
   244 +				ln -fs arch-ebsa285 arch
   245 +			)
   246 +		fi
   247 +	fi
   248 +	elif [ "$TARGET_ARCH" = "cris" ]; then
   249 +		set -x
   250 +		ln -fs $KERNEL_SOURCE/include/asm-cris include/asm
   251 +		set +x
   252 +	elif [ "$HAS_MMU" != "y" ]; then
   253 +		if [ -d $KERNEL_SOURCE/include/asm-${TARGET_ARCH}nommu ]; then
   254 +			set -x
   255 +			ln -fs $KERNEL_SOURCE/include/asm-${TARGET_ARCH}nommu include/asm
   256 +			set +x
   257 +		else
   258 +			set -x
   259 +			ln -fs $KERNEL_SOURCE/include/asm-$TARGET_ARCH include/asm
   260 +			set +x
   261 +		fi
   262 +	else
   263 +		set -x
   264 +		ln -fs $KERNEL_SOURCE/include/asm-$TARGET_ARCH include/asm
   265 +		set +x
   266  	fi;
   267 -    elif [ "$TARGET_ARCH" = "cris" ]; then
   268 -	set -x;
   269 -	ln -fs $KERNEL_SOURCE/include/asm-cris include/asm;
   270 -	set +x;
   271 -    elif [ "$HAS_MMU" != "y" ]; then
   272 -	    if [ -d $KERNEL_SOURCE/include/asm-${TARGET_ARCH}nommu ] ; then
   273 -		set -x;
   274 -		ln -fs $KERNEL_SOURCE/include/asm-${TARGET_ARCH}nommu include/asm;
   275 -		set +x;
   276 -	    else
   277 -		set -x;
   278 -		ln -fs $KERNEL_SOURCE/include/asm-$TARGET_ARCH include/asm;
   279 -		set +x;
   280 -	    fi;
   281 -    else
   282 -	set -x;
   283 -	ln -fs $KERNEL_SOURCE/include/asm-$TARGET_ARCH include/asm;
   284 -	set +x;
   285 -    fi;
   286  else
   287 -# No guessing required.....
   288 -ln -fs $KERNEL_SOURCE/include/asm include/asm
   289 -if [ -e $KERNEL_SOURCE/include/asm-$TARGET_ARCH ] ; then
   290 -ln -fs $KERNEL_SOURCE/include/asm-$TARGET_ARCH include/asm-$TARGET_ARCH
   291 +	# No guessing required.....
   292 +	for x in $KERNEL_SOURCE/include/asm* ; do
   293 +		ln -fs ${x} include/
   294 +	done
   295  fi
   296 -fi;
   297  
   298  
   299 +#
   300  # Annoyingly, 2.6.x kernel headers also need an include/asm-generic/ directory
   301 -if [ $VERSION -eq 2 ] && [ $PATCHLEVEL -ge 6 ] ; then
   302 -    ln -fs $KERNEL_SOURCE/include/asm-generic include/asm-generic
   303 -fi;
   304 +#
   305 +if [ -e $KERNEL_SOURCE/include/asm-generic ]; then
   306 +	rm -f include/asm-generic
   307 +	ln -fs $KERNEL_SOURCE/include/asm-generic include/asm-generic
   308 +fi
   309  
   310  
   311 +#
   312  # Create the include/linux symlink.
   313 +#
   314  rm -f include/linux
   315  ln -fs $KERNEL_SOURCE/include/linux include/linux
   316 -