Questions on running check-abi

Phil Edwards
Thu Oct 31 14:50:00 GMT 2002

On Tue, Oct 29, 2002 at 04:11:17PM -0500, Phil Edwards wrote:
> On Sun, Oct 27, 2002 at 10:16:43AM +0100, Andreas Jaeger wrote:
> > but it seems this does not set up everything right since
> > is not found correctly:
> > $ make check-abi
> > ./abi_check: error while loading shared libraries: cannot open shared object file: No such file or directory
> > make: [check-abi] Error 127 (ignored)
> > 
> > (this is a system that has gcc 2.95 as default compiler and gcc 3.3
> > installed into /opt/gcc).
> Yeah, problem.  We were finding the installed earlier,
> so we introduced LD_RUN_PATH into the abi_check build rule, so that the
> freshly-built library was found.  Now we're finding the system-installed
> instead of the freshly-built one.  (I just ran ldd on my
> build tree.)  I'll fix this.

Or maybe not.  When I started to mess around with fixing this, I remembered
the problems with LD_RUN_PATH in the first place.  Here's the start of the

We still have to get multilibs into the picture.

Also, amusingly enough, we don't have a variable anywhere for the build-time
directory that holds  The proper solution AFAICT is to call
testsuite/Makefile's CXX_fake with -print-libgcc-file-name, and run the
result through dirname.  Then add that path to the LD_RUN_PATH bit in

Of course, we can't have that many level of backticks in a Makefile variable
without some really annoying syntax.  The POSIX shell's $(command) syntax
was introduced for this reason -- proper nesting -- but we have to cater
to systems where the /bin/sh suffers from rectal-cranial inversion.

And that still doesn't get multilibs into the picture.

In the absence of staging, we can use a hack like the 'testsuite_flags
--rpath' patch that I posted as an example in the thread above.  Or we can
have configure write a small script in our build directory called 'cxx_fake'
that does all this, including passing all the -B and -include parameters,
and that we can pretend is a working compiler.


I would therefore like to posit that computing's central challenge, viz. "How
not to make a mess of it," has /not/ been met.
                                                 - Edsger Dijkstra, 1930-2002

More information about the Libstdc++ mailing list