patches/glibc/2.7/180-gcc-4.3-sysinclude-path.patch
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Tue Oct 16 20:57:44 2012 +0200 (2012-10-16)
changeset 3079 37831a33e07e
parent 747 d3e603e7c17c
permissions -rw-r--r--
kernel/linux: fix using custom location

Currently, extract and patch are skipped as thus:
- using a custom directory of pre-installed headers
- a correctly named directory already exists

Otherwise, extract and patch are done.

The current second condition is wrong, because it allows the following
sequence to happen:
- a non-custom kernel is used
- a previous build only partially extracted the non-custom sources
- that p[revious build broke during extraction (eg. incomplete tarball...)
- a subsequent build will find a properly named directory, and will
thus skip extract and patch, which is wrong

Fix that by following the conditions in this table:

Type | Extract | Patch
----------------------+---------+-------
Pre-installed headers | N | N
custom directory | N | N
custom tarball | Y | N
mainstream tarball | Y | Y

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: David Holsgrove <david.holsgrove@xilinx.com>
     1 Patch pointed to by Ryan ARNOLD on the libc-help ML.
     2 See: http://sourceware.org/ml/libc-help/2008-06/msg00063.html
     3 
     4 Forwarded to crosstool-NG by Ioannis E. VENETIS:
     5 See: http://sourceware.org/ml/libc-help/2008-06/msg00063.html
     6 
     7 GCC 4.3 changed the location of some of the header files.  I don't
     8 understand why you'd be getting these errors while building GCC since
     9 it provides them.
    10 
    11 With regard to GLIBC, Roland checked in some changes so that the GLIBC
    12 build system could find the new locations of the GCC provided header
    13 files.
    14 
    15 diff -durN glibc-2.7.orig/configure.in glibc-2.7/configure.in
    16 --- glibc-2.7.orig/configure.in	2007-06-08 05:16:36.000000000 +0200
    17 +++ glibc-2.7/configure.in	2008-06-24 18:38:46.000000000 +0200
    18 @@ -911,8 +911,12 @@
    19  # header directory and add that to the list.  NOTE: Only does the right
    20  # thing on a system that doesn't need fixincludes.  (Not presently a problem.)
    21  if test -n "$sysheaders"; then
    22 -  ccheaders=`$CC -print-file-name=include`
    23 -  SYSINCLUDES="-nostdinc -isystem $ccheaders \
    24 +  SYSINCLUDES=-nostdinc
    25 +  for d in include include-fixed; do
    26 +    i=`$CC -print-file-name="$d"` && test "x$i" != x && test "x$i" != "x$d" &&
    27 +    SYSINCLUDES="$SYSINCLUDES -isystem $i"
    28 +  done
    29 +  SYSINCLUDES="$SYSINCLUDES \
    30  -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
    31    if test -n "$CXX"; then
    32      cxxversion=`$CXX -dumpversion 2>&AS_MESSAGE_LOG_FD` &&
    33 diff -durN glibc-2.7.orig/configure glibc-2.7/configure
    34 --- glibc-2.7.orig/configure	2008-06-24 18:35:34.000000000 +0200
    35 +++ glibc-2.7/configure	2008-06-24 18:38:46.000000000 +0200
    36 @@ -5062,8 +5062,12 @@
    37  # header directory and add that to the list.  NOTE: Only does the right
    38  # thing on a system that doesn't need fixincludes.  (Not presently a problem.)
    39  if test -n "$sysheaders"; then
    40 -  ccheaders=`$CC -print-file-name=include`
    41 -  SYSINCLUDES="-nostdinc -isystem $ccheaders \
    42 +  SYSINCLUDES=-nostdinc
    43 +  for d in include include-fixed; do
    44 +    i=`$CC -print-file-name="$d"` && test "x$i" != "x$d" &&
    45 +    SYSINCLUDES="$SYSINCLUDES -isystem $i"
    46 +  done
    47 +  SYSINCLUDES="$SYSINCLUDES \
    48  -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
    49    if test -n "$CXX"; then
    50      cxxversion=`$CXX -dumpversion 2>&5` &&