[PPL-devel] Graphite build fails if PPL configured with --disable-shared

Janis Johnson janis187 at us.ibm.com
Tue May 12 22:25:36 CEST 2009


On Tue, 2009-05-12 at 18:46 +0200, Roberto Bagnara wrote:
> Janis Johnson wrote:
> > On Mon, 2009-05-11 at 13:07 -0700, Ian Lance Taylor wrote:
> >> Another Graphite build issue: it appears that I must not use
> >> --disable-shared when I configure PPL.  If I do use --disable-shared, I
> >> get this:
> >>
> >> /home/iant/gnu/ppl-0.10.2-install/lib/libppl_c.a(ppl_c_implementation_common.o): In function `finalize':
> >> /home/iant/gnu/ppl-0.10.2/interfaces/C/../../src/ppl.hh:1842: undefined reference to `operator delete(void*)'
> >>
> >> followed by thousands of similar errors.  This is unfortunate, as it
> >> means that I must manually set LD_LIBRARY_PATH to the directory where
> >> the PPL library is installed.  This also makes it harder for anybody
> >> else to run the compiler that I build.  This needs to be fixed.
> > 
> > I get around this by setting LDFLAGS for the ppl configure:

I was wrong, I use these flags for other reasons.

> >   LDFLAGS="-static" \
> >   ./configure \
> >     --prefix=$PREFIX \
> >     --build=powerpc-linux \
> >     --with-gnu-ld \
> >     --with-libgmp-prefix=$PREFIX \
> >     --with-libgmpxx-prefix=$PREFIX \
> >     --disable-shared
> 
> I am not sure I understand: we trust that Libtool, which provides us
> with the --disable-shared option, will do the right thing.  And it
> seems it does here: the static library is built and passes its checks.

The --disable-shared option worked as expected.  What I had problems
with was finding my static versions of libgmp and libgmpxx; configure
kept finding the default shared versions, which were too old, until
I added LDFLAGS="-static" before ./configure, and passed
LDFLAGS="-all-static" to make and make check.  I had assumed that by
specifying their locations, configure and make would be able to use
those particular libraries.

> Perhaps you want something different from what --disable-shared promises,
> that is, not to build any shared libraries?
> 
> > I copy libstdc++.a into the directory with the other GCC host
> > libraries (gmp/mpfr/ppl/cloog/mpc).
> > 
> > Building these libraries is indeed quite painful.
> 
> Any suggestion about how to improve the PPL is welcome.  This, of course,
> applies also to the build machinery.
> All the best,

One small change would be to use --with-gmp as a configure option.
It's not clear whether it's necessary to use both --with-libgmp-prefix
and --with-libgmpxx-prefix.  Other packages that GCC needs (MPFR,
CLoog, MPC) use --with-gmp for the GMP package.

Janis




More information about the PPL-devel mailing list