http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49055
Summary: 4.6.0 libjava 64-bit + 32-bit multilib compile fails due missing -isystem and -nostdinc++ with $OBJDIR != $topsrcdir build Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: other AssignedTo: unassig...@gcc.gnu.org ReportedBy: jason.vas.d...@gmail.com Hi - Thanks for the great new gcc-4.6.0, which built and passed C + C++ tests OK ; especially thanks for the new --enable-version-specific-runtime-libs option, which I believe a bug I raised a while ago may have contributed to inspiring - but I ended up with these libs installed : $ find /usr/lib64/gcc/x86_64-pc-linux-gnu/{4.6.0,lib{32,64}} \ -name 'lib*.so*' -a -type f /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libobjc.so.3.0.0 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libgfortran.so.3.0.0 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libquadmath.so.0.0.0 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libssp.so.0.0.0 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libmudflapth.so.0.0.0 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libmudflap.so.0.0.0 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libstdc++.so.6.0.15-gdb.py /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/32/libstdc++.so.6.0.15 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/libobjc.so.3.0.0 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/libgfortran.so.3.0.0 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/libquadmath.so.0.0.0 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/libssp.so.0.0.0 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/libmudflapth.so.0.0.0 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/libmudflap.so.0.0.0 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/libstdc++.so.6.0.15-gdb.py /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/libstdc++.so.6.0.15 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/libgcjgc.so.1.0.2 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/libffi.so.4.0.1 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.6.0/libgomp.so.1.0.0 /usr/lib64/gcc/x86_64-pc-linux-gnu/lib32/libgcc_s.so.1 /usr/lib64/gcc/x86_64-pc-linux-gnu/lib64/libgcc_s.so.1 And 'make install' still created links to the shared libraries in $LIBDIR ! Why the special treatment for libgcc_s.so.1 ? I'd suggest : 1. Ensure NO shared libraries or links are shipped direct into $LIBDIR if --enable-version-specific-runtime-libs given to configure ; and either : o put libgcc_s.so.1 in ${DESTDIR}/${LIBDIR}/gcc/${GCC_PLATFORM}/${GCC_VERSION}{32/,} or : o put ${DESTDIR}/${LIBDIR}/gcc/${GCC_PLATFORM}/${GCC_VERSION}{32/,}/lib*.so* into /usr/lib64/gcc/x86_64-pc-linux-gnu/lib{32,64}/ NOT both . Here's my gcc build details : $ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: /usr/build2/gcc/gcc-4.6.0/configure --prefix=/usr --libdir=/usr/lib64 --with-cpu-32=i686 --with-cpu-64=k8 --enable-languages=all --enable-targets=all --enable-multilib --enable-threads=posix --enable-tls --enable-lto --enable-shared --enable-checking=release --with-build-time-tools=/usr/bin --with-ld=/usr/bin/ld --with-gnu-ld --with-as=/usr/bin/as --with-gnu-as --enable-__cxa_atexit --disable-libunwind-exceptions --with-gxx-include-dir=/usr/include/c++ --enable-version-specific-runtime-libs --with-system-zlib --disable-werror --enable-classpath --with-x --enable-gtk-cairo --enable-java-awt=gtk,xlib --with-java-home=/usr/java --with-jvm-root-dir=/usr/java/jvm --with-jvm-jar-dir=/usr/java/jvm_exports --enable-browser-plugin --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --without-included-gettext --enable-serial-configure Thread model: posix gcc version 4.6.0 (GCC) And also, though C, C++, objc, and gfortran and other gcj components build OK, libjava fails because the libjava configure run as part of main gcc 'make ' does NOT add these to CPPFLAGS ( where my $OBJDIR=/mnt/sda3/gcc and topsrcdir= /usr/build2/gcc/gcc-4.6.0 ) : -isystem /mnt/sda3/gcc/stage1-gcc/include -isystem /mnt/sda3/gcc/stage1-gcc/include-fixed -I/mnt/sda3/gcc/x86_64-pc-linux-gnu/libstdc++-v3/include -I/usr/build2/gcc/gcc-4.6.0/libstdc++-v3/libsupc++ -I/mnt/sda3/gcc/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu -I/mnt/sda3/gcc/x86_64-pc-linux-gnu/32/ I had to edit the make files to add the above cpp flags to get libjava to build.