The dependency tracker inherited by a variety of libraries, like libstdc++.la
keeps local dependencies.  Since it is never installed via libtool, its
dependencies are never fixed based on the installation prefix defined at
configure.  Because of this, the installed .la files point to invalid locations
for their dependencies.

An example of our build is configured as:


cd ../gcc-build/sun4x_58 && CFLAGS=-O CC=gcc sh ../../gcc-3.4.3/configure \
    --datadir='${prefix}/lib' --libexecdir='${prefix}/lib' \
    --sharedstatedir='${prefix}/lib' --prefix=/usr/pubsw \
    --enable-threads \
    --disable-multilib \
    --with-gnu-as \
    --with-as=/usr/pubsw/bin/as \
    --with-gnu-ld \
    --with-ld=/usr/pubsw/bin/ld \
    --with-included-gettext \
    --with-libintl-prefix=/usr/pubsw \
    --with-libiconv-prefix=/usr/pubsw

It is then installed as:

cd ../gcc-build/sun4x_58 && make install
DESTDIR=/afs/.ir/pubsw/Languages/gcc-3.4.3/sun4x_58


Note that correct dependencies via .la files should look in /usr/pubsw/lib. 
This however, does not appear to happen with any of the .la files that would use
it, and all the incorrect ones

grep dependency_libs libsupc++.la
dependency_libs='
-L/afs/ir.stanford.edu/src/pubsw/languages/gcc-build/sun4x_58/sparc-sun-solaris2.8/libstdc++-v3/src
-L/afs/ir.stanford.edu/src/pubsw/languages/gcc-build/sun4x_58/sparc-sun-solaris2.8/libstdc++-v3/src/.libs
-lm -L/afs/ir.stanford.edu/src/pubsw/languages/gcc-build/sun4x_58/gcc
-L/usr/pubsw/bin -L/usr/pubsw/lib -L/usr/ccs/bin -L/usr/ccs/lib -L/usr/local/lib
-lgcc_s -lgcc_s'

grep dependency_libs libstdc++.la
dependency_libs='
-L/afs/ir.stanford.edu/src/pubsw/languages/gcc-build/sun4x_58/sparc-sun-solaris2.8/libstdc++-v3/src
-L/afs/ir.stanford.edu/src/pubsw/languages/gcc-build/sun4x_58/sparc-sun-solaris2.8/libstdc++-v3/src/.libs
-lm -lm -lm -L/afs/ir.stanford.edu/src/pubsw/languages/gcc-build/sun4x_58/gcc
-L/usr/pubsw/bin -L/usr/pubsw/lib -L/usr/ccs/bin -L/usr/ccs/lib -L/usr/local/lib
-lgcc_s -lgcc_s -lm -lgcc_s -lgcc_s'


grep dependency_libs libgcj.la
dependency_libs='
-L/afs/ir.stanford.edu/src/pubsw/languages/gcc-build/sun4x_58/sparc-sun-solaris2.8/libstdc++-v3/src
-L/afs/ir.stanford.edu/src/pubsw/languages/gcc-build/sun4x_58/sparc-sun-solaris2.8/libstdc++-v3/src/.libs
-L/afs/ir.stanford.edu/src/pubsw/languages/gcc-build/sun4x_58/sparc-sun-solaris2.8/libjava
-lpthread -lrt -ldl
-L/afs/ir.stanford.edu/src/pubsw/languages/gcc-build/sun4x_58/gcc
-L/usr/pubsw/bin -L/usr/pubsw/lib -L/usr/ccs/bin -L/usr/ccs/lib -L/usr/local/lib
-lgcc_s -lgcc_s'


etc.  This is totally broken.

--Quanah

-- 
           Summary: local dependencies permeated throughout other libraries
                    instead of for $prefix/lib
           Product: gcc
           Version: 3.4.3
            Status: UNCONFIRMED
          Severity: critical
          Priority: P2
         Component: libstdc++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: quanah at stanford dot edu
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: all platforms
  GCC host triplet: all platforms
GCC target triplet: all platforms


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

Reply via email to