This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: Questions on running check-abi
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 libgcc_s.so.1
> > is not found correctly:
> > $ make check-abi
> > ./abi_check: error while loading shared libraries: libgcc_s.so.1: 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 libstdc++.so 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
> libgcc_s.so 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
thread:
http://gcc.gnu.org/ml/libstdc++/2002-09/msg00009.html
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 libgcc_s.so. 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
testsuite/Makefile.
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.
Phil
--
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