We successfully managed to create cross compiler for sparc-sun-solaris2.9, but the same algorithm doesn't wotk for i386-pc-solaris2.10
1) host "uname -a" is "Linux localhost.localdomain 2.6.11-1.14_FC3 #1 Thu Apr 7 19:25:50 EDT 2005 x86_64 x86_64 x86_64 GNU/Linux" 2) binutils is configured with "/home/anton/tmp/gcc/binutils-2.16.1/configure --target=$TARGET --prefix=$PREFIX --disable-nls --with-sysroot=/opt/crossgcc-4.1.1/solaris10-i386/sysroot --with-pic" where TARGET is "i386-pc-solaris2.10", PREFIX="/opt/crossgcc-4.1.1/i386-pc-solaris2.10/gcc" 3) gcc is configured with " /home/anton/tmp/gcc/gcc-4.1.1/configure --target=$TARGET --prefix=$PREFIX --with-sysroot=/opt/crossgcc-4.1.1/solaris10-i386/sysroot --with-gnu-as --with-gnu-ld --disable-libgcj --enable-languages=c,c++ --with-pic --disable-shared" 4) All header and library files are copied from target Solaris machine from /usr/include directory to /opt/crossgcc-4.1.1/solaris10-i386/sysroot/usr/include directory and from /usr/lib to /opt/crossgcc-4.1.1/solaris10-i386/sysroot/usr/lib We are getting error during libstdc++v3 configuration. Here is the end of ouput of process: Checking multilib configuration... /bin/sh /home/anton/tmp/gcc/gcc-4.1.1/mkinstalldirs i386-pc-solaris2.10/libstdc++-v3 ; \ rm -f i386-pc-solaris2.10/libstdc++-v3/Makefile || : ; \ cp multilib.out i386-pc-solaris2.10/libstdc++-v3/multilib.out mkdir -p -- i386-pc-solaris2.10/libstdc++-v3 Configuring in i386-pc-solaris2.10/libstdc++-v3 configure: creating cache ./config.cache checking build system type... x86_64-unknown-linux-gnu checking host system type... i386-pc-solaris2.10 checking target system type... i386-pc-solaris2.10 checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking for i386-pc-solaris2.10-strip... i386-pc-solaris2.10-strip checking for i386-pc-solaris2.10-gcc... /home/anton/tmp/gcc/objdir/./gcc/xgcc -B/home/anton/tmp/gcc/objdir/./gcc/ -B/opt/crossgcc-4.1.1/solaris10-i386/gcc/i386-pc-solaris2.10/bin/ -B/opt/crossgcc-4.1.1/solaris10-i386/gcc/i386-pc-solaris2.10/lib/ -isystem /opt/crossgcc-4.1.1/solaris10-i386/gcc/i386-pc-solaris2.10/include -isystem /opt/crossgcc-4.1.1/solaris10-i386/gcc/i386-pc-solaris2.10/sys-include checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether /home/anton/tmp/gcc/objdir/./gcc/xgcc -B/home/anton/tmp/gcc/objdir/./gcc/ -B/opt/crossgcc-4.1.1/solaris10-i386/gcc/i386-pc-solaris2.10/bin/ -B/opt/crossgcc-4.1.1/solaris10-i386/gcc/i386-pc-solaris2.10/lib/ -isystem /opt/crossgcc-4.1.1/solaris10-i386/gcc/i386-pc-solaris2.10/include -isystem /opt/crossgcc-4.1.1/solaris10-i386/gcc/i386-pc-solaris2.10/sys-include accepts -g... yes checking for /home/anton/tmp/gcc/objdir/./gcc/xgcc -B/home/anton/tmp/gcc/objdir/./gcc/ -B/opt/crossgcc-4.1.1/solaris10-i386/gcc/i386-pc-solaris2.10/bin/ -B/opt/crossgcc-4.1.1/solaris10-i386/gcc/i386-pc-solaris2.10/lib/ -isystem /opt/crossgcc-4.1.1/solaris10-i386/gcc/i386-pc-solaris2.10/include -isystem /opt/crossgcc-4.1.1/solaris10-i386/gcc/i386-pc-solaris2.10/sys-include option to accept ANSI C... none needed checking for i386-pc-solaris2.10-g++... /home/anton/tmp/gcc/objdir/./gcc/xgcc -shared-libgcc -B/home/anton/tmp/gcc/objdir/./gcc -nostdinc++ -L/home/anton/tmp/gcc/objdir/i386-pc-solaris2.10/libstdc++-v3/src -L/home/anton/tmp/gcc/objdir/i386-pc-solaris2.10/libstdc++-v3/src/.libs -B/opt/crossgcc-4.1.1/solaris10-i386/gcc/i386-pc-solaris2.10/bin/ -B/opt/crossgcc-4.1.1/solaris10-i386/gcc/i386-pc-solaris2.10/lib/ -isystem /opt/crossgcc-4.1.1/solaris10-i386/gcc/i386-pc-solaris2.10/include -isystem /opt/crossgcc-4.1.1/solaris10-i386/gcc/i386-pc-solaris2.10/sys-include checking whether we are using the GNU C++ compiler... yes checking whether /home/anton/tmp/gcc/objdir/./gcc/xgcc -shared-libgcc -B/home/anton/tmp/gcc/objdir/./gcc -nostdinc++ -L/home/anton/tmp/gcc/objdir/i386-pc-solaris2.10/libstdc++-v3/src -L/home/anton/tmp/gcc/objdir/i386-pc-solaris2.10/libstdc++-v3/src/.libs -B/opt/crossgcc-4.1.1/solaris10-i386/gcc/i386-pc-solaris2.10/bin/ -B/opt/crossgcc-4.1.1/solaris10-i386/gcc/i386-pc-solaris2.10/lib/ -isystem /opt/crossgcc-4.1.1/solaris10-i386/gcc/i386-pc-solaris2.10/include -isystem /opt/crossgcc-4.1.1/solaris10-i386/gcc/i386-pc-solaris2.10/sys-include accepts -g... yes checking whether ln -s works... yes checking for i386-pc-solaris2.10-as... /home/anton/tmp/gcc/objdir/./gcc/as checking for i386-pc-solaris2.10-ar... i386-pc-solaris2.10-ar checking for i386-pc-solaris2.10-ranlib... i386-pc-solaris2.10-ranlib checking whether to enable maintainer-specific portions of Makefiles... no configure: CPU config directory is cpu/i386 configure: OS config directory is os/solaris/solaris2.7 checking for ld used by GCC... /home/anton/tmp/gcc/objdir/./gcc/collect-ld checking if the linker (/home/anton/tmp/gcc/objdir/./gcc/collect-ld) is GNU ld... yes checking for /home/anton/tmp/gcc/objdir/./gcc/collect-ld option to reload object files... -r checking for BSD-compatible nm... /home/anton/tmp/gcc/objdir/./gcc/nm checking how to recognise dependant libraries... pass_all checking the maximum length of command line arguments... none checking for i386-pc-solaris2.10-ranlib... (cached) i386-pc-solaris2.10-ranlib checking for i386-pc-solaris2.10-strip... (cached) i386-pc-solaris2.10-strip updating cache ./config.cache loading cache ./config.cache within ltconfig checking for objdir... .libs checking for /home/anton/tmp/gcc/objdir/./gcc/xgcc option to produce PIC... -fPIC -DPIC checking if /home/anton/tmp/gcc/objdir/./gcc/xgcc PIC flag -fPIC -DPIC works... yes checking if /home/anton/tmp/gcc/objdir/./gcc/xgcc static flag -static works... no finding the maximum length of command line arguments... 49153 checking if /home/anton/tmp/gcc/objdir/./gcc/xgcc supports -c -o file.o... yes checking if /home/anton/tmp/gcc/objdir/./gcc/xgcc supports -fno-rtti -fno-exceptions ... no checking whether the linker (/home/anton/tmp/gcc/objdir/./gcc/collect-ld) supports shared libraries... yes checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking dynamic linker characteristics... solaris2.10 ld.so checking command to parse /home/anton/tmp/gcc/objdir/./gcc/nm output... failed checking if libtool supports shared libraries... yes checking whether to build shared libraries... no checking whether to build static libraries... yes creating libtool updating cache ./config.cache configure: loading cache ./config.cache checking how to run the C++ preprocessor... /home/anton/tmp/gcc/objdir/./gcc/xgcc -shared-libgcc -B/home/anton/tmp/gcc/objdir/./gcc -nostdinc++ -L/home/anton/tmp/gcc/objdir/i386-pc-solaris2.10/libstdc++-v3/src -L/home/anton/tmp/gcc/objdir/i386-pc-solaris2.10/libstdc++-v3/src/.libs -B/opt/crossgcc-4.1.1/solaris10-i386/gcc/i386-pc-solaris2.10/bin/ -B/opt/crossgcc-4.1.1/solaris10-i386/gcc/i386-pc-solaris2.10/lib/ -isystem /opt/crossgcc-4.1.1/solaris10-i386/gcc/i386-pc-solaris2.10/include -isystem /opt/crossgcc-4.1.1/solaris10-i386/gcc/i386-pc-solaris2.10/sys-include -E loading cache ./config.cache within ltconfig checking host system type... i386-pc-solaris2.10 checking build system type... x86_64-unknown-linux-gnu checking for objdir... .libs checking for /home/anton/tmp/gcc/objdir/./gcc/xgcc option to produce PIC... -fPIC -DPIC checking if /home/anton/tmp/gcc/objdir/./gcc/xgcc PIC flag -fPIC -DPIC works... yes checking if /home/anton/tmp/gcc/objdir/./gcc/xgcc static flag -static works... no finding the maximum length of command line arguments... (cached) 49153 checking if /home/anton/tmp/gcc/objdir/./gcc/xgcc supports -c -o file.o... (cached) yes checking if /home/anton/tmp/gcc/objdir/./gcc/xgcc supports -fno-rtti -fno-exceptions ... yes checking whether the linker (/home/anton/tmp/gcc/objdir/./gcc/collect-ld) supports shared libraries... checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking dynamic linker characteristics... solaris2.10 ld.so checking command to parse /home/anton/tmp/gcc/objdir/./gcc/nm output... failed checking if libtool supports shared libraries... yes checking whether to build shared libraries... no checking whether to build static libraries... yes appending configuration tag "CXX" to libtool checking for exception model to use... call frame checking for compiler with PCH support... yes checking for enabled PCH... yes checking for underlying I/O to use... stdio checking how to run the C preprocessor... /home/anton/tmp/gcc/objdir/./gcc/xgcc -B/home/anton/tmp/gcc/objdir/./gcc/ -B/opt/crossgcc-4.1.1/solaris10-i386/gcc/i386-pc-solaris2.10/bin/ -B/opt/crossgcc-4.1.1/solaris10-i386/gcc/i386-pc-solaris2.10/lib/ -isystem /opt/crossgcc-4.1.1/solaris10-i386/gcc/i386-pc-solaris2.10/include -isystem /opt/crossgcc-4.1.1/solaris10-i386/gcc/i386-pc-solaris2.10/sys-include -E checking for egrep... grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for C locale to use... generic checking for std::allocator base class... new configure: "C" header strategy set to c_std checking for enabled long long specializations... yes checking wchar.h usability... yes checking wchar.h presence... yes checking for wchar.h... yes checking for mbstate_t... yes checking wctype.h usability... yes checking wctype.h presence... yes checking for wctype.h... yes checking for enabled wchar_t specializations... yes checking for ISO C99 support in <math.h>... no checking complex.h usability... yes checking complex.h presence... yes checking for complex.h... yes checking for ISO C99 support in <complex.h>... no checking for ISO C99 support in <stdio.h>... yes checking for ISO C99 support in <stdlib.h>... yes checking for ISO C99 support in <wchar.h>... yes checking for fully enabled ISO C99 support... no configure: Debug build flags set to -g3 -O0 checking for additional debug build... no checking for extra compiler flags for building... checking for thread model used by GCC... posix checking iconv.h usability... yes checking iconv.h presence... yes checking for iconv.h... yes checking langinfo.h usability... yes checking langinfo.h presence... yes checking for langinfo.h... yes checking for iconv in -liconv... configure: error: Link tests are not allowed after GCC_NO_EXECUTABLES. make[1]: *** [configure-target-libstdc++-v3] Error 1 make[1]: Leaving directory `/home/anton/tmp/gcc/objdir' make: *** [all] Error 2 -- Summary: Cannot build cross compiler for Solaris: configure: error: Link tests are not allowed after GCC_NO_EXECUTABLES Product: gcc Version: 4.1.1 Status: UNCONFIRMED Severity: critical Priority: P3 Component: libstdc++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: info at yourkit dot com GCC host triplet: x86_64-unknown-linux-gnu GCC target triplet: i386-pc-solaris2.10 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28125