OSDN Git Service

PR bootstrap/22541
authorbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 17 May 2006 13:54:38 +0000 (13:54 +0000)
committerbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 17 May 2006 13:54:38 +0000 (13:54 +0000)
From Dan Kegel <dank@kegel.com>:
* Makefile.in: Strip "dir/../" combinations from SYSTEM_INCLUDE_DIR.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@113859 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/Makefile.in

index 1f1f7fd..eefaa9a 100644 (file)
@@ -1,3 +1,9 @@
+2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       PR bootstrap/22541
+       From Dan Kegel <dank@kegel.com>:
+       * Makefile.in: Strip "dir/../" combinations from SYSTEM_INCLUDE_DIR.
+
 2006-05-17  Eric Botcazou  <ebotcazou@adacore.com>
 
        * tree.c (variably_modified_type_p) <ARRAY_TYPE>: Return true
index 5e9497b..4aa1967 100644 (file)
@@ -397,7 +397,10 @@ NATIVE_SYSTEM_HEADER_DIR = /usr/include
 CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
 
 # autoconf sets SYSTEM_HEADER_DIR to one of the above.
-SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@
+# Purge it of unneccessary internal relative paths
+# to directories that might not exist yet.
+# The sed idiom for this is to repeat the search-and-replace until it doesn't match, using :a ... ta.
+SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`
 
 # Control whether to run fixproto and fixincludes.
 STMP_FIXPROTO = @STMP_FIXPROTO@
@@ -3211,13 +3214,16 @@ s-macro_list : $(GCC_PASSES)
 ../$(build_subdir)/fixincludes/fixincl: ; @ :
 
 # Build fixed copies of system files.
+# Abort if no system headers available, unless building a crosscompiler.
+# FIXME: abort unless building --without-headers would be more accurate and less ugly
 stmp-fixinc: gsyslimits.h macro_list \
   $(build_objdir)/fixincludes/fixincl \
   $(build_objdir)/fixincludes/fixinc.sh
        @if ! $(inhibit_libc) && test ! -d ${SYSTEM_HEADER_DIR}; then \
          echo The directory that should contain system headers does not exist: >&2 ; \
          echo "  ${SYSTEM_HEADER_DIR}" >&2 ; \
-         if test "x${SYSTEM_HEADER_DIR}" = "x${gcc_tooldir}/sys-include"; \
+         tooldir_sysinc=`echo "${gcc_tooldir}/sys-include" | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`; \
+         if test "x${SYSTEM_HEADER_DIR}" = "x${tooldir_sysinc}"; \
          then sleep 1; else exit 1; fi; \
        fi
        rm -rf include; mkdir include