Jon Dufresne wrote: > I am creating a cross toolchain using gnu. So far it has been working great. > > However, one problem I noticed is that libstdc++ isn't installed into > the specified sysroot duing "make install". > > After I have binutils, a static gcc, linux-headers, and glibc compiled > this is how I build gcc: > > ${BUILD}/gcc-${GCC_VERSION}/configure \ > --prefix=${TOOLS} \ > --build=${HOST} \ > --host=${HOST} \ > --target=${TARGET} \ > --with-sysroot=${ROOTFS} \ > --enable-languages=c,c++ \ > --disable-multilib \ > --disable-nls \ > --enable-shared \ > --enable-threads=posix \ > --enable-__cxa_atexit \ > --disable-libunwind-exceptions \ > --enable-c99 \ > --enable-long-long > > make > make install > > The things to notice are that I use the "--with-sysroot" option and enable c++. > > After the compile finishes libstdc++ is installed to > ${TOOLS}/${TARGET}/lib and I need to manually copy it over to the > ${ROOTFS}/usr/lib. Is this a bug in the gcc Makefile? Should libstdc++ > install to the sysroot by default like the c runtime library does? Or > is this preferred behavior? It's doing what it's supposed to do. All target libs are installed in the prefix, along with the cross-compiler. The libs have to be there because the cross-compiler needs them. So, you need the target libs in two places: in /usr/lib on the target and in prefix/*lib on the cross compiling host. Andrew.