The top-level gcc configure currently only passes the "--with-sysroot" to the
subdirectories, and of these, the "gcc" subdir seems to be the only one that
uses it. When I was configuring with languages c and c++, this meant that the
libstdc++ package would not build, because it couldn't find my native libraries
and headers that I had specified with --with-sysroot. The alternative (use
--with-headers and --with-libs) would disrupt my file hiearchy too much
(basically I grab all the necessary libs and headers from the native system
as-is, meaning most of the libraries are symlinks, which are not dereferenced by
gcc's make when using --with-libs). 

It turns out that this is relatively easy to fix. The top-level configure sets
the xgcc options to add "-B%{build_tooldir}/lib/  -isystem
$(build_tooldir)/include -isystem $(build_tooldir)/sys-include". These are
hard-coded, even if you use --with-sysroot. By altering configure to be 'sysroot
aware', I changed the options to "-B$(target_sysroot)/lib
-B$(target_sysroot)/usr/lib -isystem $(target_sysroot)/usr/include" (where
target_sysroot is the sysroot), and did a rebuild (from scratch) and everything
worked. I'll attach my patch below.

-- 
           Summary: Top-level gcc configure/makefile does not handle --with-
                    sysroot
           Product: gcc
           Version: 3.4.3
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: other
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: prothonotar at tarnation dot dyndns dot org
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: sparc-sun-solaris2.8
  GCC host triplet: sparc-sun-solaris2.8
GCC target triplet: i586-sun-solaris2.10


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20955

Reply via email to