This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug other/49055] New: 4.6.0 libjava 64-bit + 32-bit multilib compile fails due missing -isystem and -nostdinc++ with $OBJDIR != $topsrcdir build


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: unassigned@gcc.gnu.org
        ReportedBy: jason.vas.dias@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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]