This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
3.0 PATCH: Fix multilibbed libstdc++ v3 testsuite
- To: gcc-patches at gcc dot gnu dot org
- Subject: 3.0 PATCH: Fix multilibbed libstdc++ v3 testsuite
- From: Rainer Orth <ro at TechFak dot Uni-Bielefeld dot DE>
- Date: Wed, 30 May 2001 21:20:31 +0200 (MEST)
- Cc: libstdc++ at gcc dot gnu dot org
As reported before in PR libstdc++/2841
http://gcc.gnu.org/ml/gcc-prs/2001-05/msg00817.html
the libstdc++ v3 testsuite doesn't currently support multilibbed targets.
The problem is twofold:
* If I run e.g.
make RUNTESTFLAGS='--target_board "unix{-mabi=64}"' check
on IRIX 6.2, make check is still run in mips-sgi-irix6.2/libstdc++-v3,
but with -mabi=64 to create N64 binaries. Still the linker is pointed to
the mips-sgi-irix6.2/libstdc++-v3/src/.libs directory, which only
contains libstdc++.so for the default (i.e. N32 in this case) multilib.
I haven't attacked this yet, since I don't know for sure how make check
for multilibs is really supposed to work.
* Instead I've done the following: simply run make RUNTESTFLAGS=... check
in the appropriate multilib directory,
i.e. mips-sgi-irix6.2/mabi=64/libstdc++-v3. This allowed me to
sucessfully compile the tests, but they failed to run since
libgcc_s_mabi=64.so couldn't be found since LD_LIBRARY_PATH pointed to
${blddir}/../../gcc, missing one ../ (i.e. $MULTIBUILDTOP). I fixed this
as follows, inspired by gcc/testsuite/lib/g++.exp (e.g. g++_link_flags).
With this patch, I'm finally able to sucessfully run the testsuite in
multilib subdirectories.
Rainer
-----------------------------------------------------------------------------
Rainer Orth, Faculty of Technology, Bielefeld University
Email: ro@TechFak.Uni-Bielefeld.DE
Wed May 30 18:33:24 2001 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3-init): Use
get_multilibs to find gcc.
Index: libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp
===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/testsuite/lib/libstdc++-v3-dg.exp,v
retrieving revision 1.2.2.4
diff -u -p -r1.2.2.4 libstdc++-v3-dg.exp
--- libstdc++-v3-dg.exp 2001/05/23 07:07:41 1.2.2.4
+++ libstdc++-v3-dg.exp 2001/05/30 19:00:51
@@ -44,9 +44,11 @@ proc libstdc++-v3-init { args } {
file copy -force $txt $outdir
}
+ set gccpath [get_multilibs]
+
# set LD_LIBRARY_PATH so that libgcc_s, libstdc++ binaries can be found.
set ld_library_path "."
- append ld_library_path ":${blddir}/../../gcc"
+ append ld_library_path ":${gccpath}../gcc"
append ld_library_path ":${blddir}/src/.libs"
# Do a bunch of handstands and backflips for cross compiling and