From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23056 invoked by alias); 22 Dec 2007 17:46:04 -0000 Received: (qmail 23046 invoked by uid 22791); 22 Dec 2007 17:46:04 -0000 X-Spam-Check-By: sourceware.org Received: from dessent.net (HELO dessent.net) (69.60.119.225) by sourceware.org (qpsmtpd/0.31) with ESMTP; Sat, 22 Dec 2007 17:45:54 +0000 Received: from localhost ([127.0.0.1] helo=dessent.net) by dessent.net with esmtp (Exim 4.50) id 1J68Pv-0005mJ-53; Sat, 22 Dec 2007 17:45:43 +0000 Message-ID: <476D4D46.260ECF52@dessent.net> Date: Sat, 22 Dec 2007 17:46:00 -0000 From: Brian Dessent Reply-To: gcc-help X-Mailer: Mozilla 4.79 [en] (Windows NT 5.0; U) MIME-Version: 1.0 To: NightStrike CC: Kaz Kylheku , gcc-help Subject: Re: More questions on sysroots References: <1106742C6EE944BC9D7488BFB2CC7E76@rocktron> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact gcc-help-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-help-owner@gcc.gnu.org X-SW-Source: 2007-12/txt/msg00399.txt.bz2 NightStrike wrote: > This is where it dies as follows: > In file included from ../../../gcc/libgcc/../gcc/libgcc2.c:33: > ../../../gcc/libgcc/../gcc/tsystem.h:90:19: error: stdio.h: No such > file or directory > ../../../gcc/libgcc/../gcc/tsystem.h:93:23: error: sys/types.h: No > such file or directory > ../../../gcc/libgcc/../gcc/tsystem.h:96:19: error: errno.h: No such > file or directory > ../../../gcc/libgcc/../gcc/tsystem.h:103:20: error: string.h: No such > file or directory > ../../../gcc/libgcc/../gcc/tsystem.h:104:20: error: stdlib.h: No such > file or directory > ../../../gcc/libgcc/../gcc/tsystem.h:105:20: error: unistd.h: No such > file or directory You cut out the part that would have been useful, namely the -B and -I arguments passed to xgcc. > I don't understand that error. It says, for instance, that limits.h > can't include limits.h. How is that possible? It also can't find any > of the system headers that are in place. The limits.h that was found is gcc's private copy, not the actual system limits.h. gcc uses this technique when it needs to amend the contents of a system header, by installing its own limits.h in its private include directory that contains the gcc-specific parts, and at the end it does #include_next so that the actual system limits.h gets picked up at that point. It also does something similar when it needs to deal with buggy/broken/noncompliant system headers, by making a copy of the offending header in its private include dir and then fixincluding it there, obviously without the include_next. The details don't matter, the error is materially equivalent to all of the above, namely, a system header could not be found. Brian