This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: 3.[01] C++ Testing: Support -mabi=64
- To: Jeffrey Oldham <oldham at codesourcery dot com>
- Subject: Re: 3.[01] C++ Testing: Support -mabi=64
- From: Rainer Orth <ro at TechFak dot Uni-Bielefeld dot DE>
- Date: 30 May 2001 18:05:26 +0200
- Cc: gcc-patches at gcc dot gnu dot org, david dot billinghurst at riotinto dot com, mark at codesourcery dot com
- References: <20010523092352.D8277@codesourcery.com>
Jeffrey Oldham <oldham@codesourcery.com> writes:
> Dave Billinghurst complained that DejaGNU testing gcc 3.0
> mips-sgi-irix6.5 with -mabi=64 yielded many execution failures
> (http://gcc.gnu.org/ml/gcc-bugs/2001-05/msg00477.html). A difficulty
> was that the -mabi=64 flags was not being used during the testing
> linking commands so Irix n32 libraries, not 64-bit libraries, were
> being used.
>
> This patch, tested by Mark Mitchell (mark@codesourcery.com), ensures
> that -m... options are passed to g++ compilation and linking commands.
>
> Wed May 23 2001 Jeffrey D. Oldham <oldham@codesourcery.com>
>
> * lib/g++.exp (g++_include_flags): Use args to compute
> get_multilibs.
> (g++_link_flags): Likewise.
> (g++_init): Pass TOOL_OPTIONS as arguments to two above functions.
Unfortunately, this patch has just the opposite effect for me ;-) Before
it went it, I could successfully test both N32 and N64 ABIs on IRIX 6.2 and
32-bit and 64-bit on Solaris 8. I'm using command lines like this:
make RUNTESTFLAGS='--target_board "unix{,-mabi=64}"' check
or
make RUNTESTFLAGS='--target_board "unix{,-m64}"' check
With this patch, none of the g++ tests that link with -lstdc++ find the
library anymore:
spawn /vol/gcc/obj/gcc-3.0-20010528/6.2-gcc/gcc/testsuite/../g++ -B/vol/gcc/obj/gcc-3.0-20010528/6.2-gcc/gcc/testsuite/../ /vol/gnu/src/gcc/gcc-3.0-branch-dist/gcc/testsuite/g++.old-deja/g++.abi/arraynew.C -nostdinc++ -I/vol/gcc/obj/gcc-3.0-20010528/6.2-gcc/mips-sgi-irix6.2/libstdc++-v3/include -I/amnt/zacatecas/volumes/d9/gnu/src/gcc/gcc-3.0-branch-dist/libstdc++-v3/include -I/amnt/zacatecas/volumes/d9/gnu/src/gcc/gcc-3.0-branch-dist/libstdc++-v3/include/std -I/amnt/zacatecas/volumes/d9/gnu/src/gcc/gcc-3.0-branch-dist/libstdc++-v3/include/c_std -I/amnt/zacatecas/volumes/d9/gnu/src/gcc/gcc-3.0-branch-dist/libstdc++-v3/libsupc++ -I/amnt/zacatecas/volumes/d9/gnu/src/gcc/gcc-3.0-branch-dist/libstdc++-v3/libio -I/amnt/zacatecas/volumes/d9/gnu/src/gcc/gcc-3.0-branch-dist/libstdc++-v3/testsuite -I/amnt/zacatecas/volumes/d9/gnu/src/gcc/gcc-3.0-branch-dist/libstdc++-v3/include/backwards -I/amnt/zacatecas/volumes/d9/gnu/src/gcc/gcc-3.0-branch-dist/libstdc++-v3/include/ext -fmessage-l!
ength=0 -ansi -pedantic-errors -Wno-long-long -lstdc++ -L/vol/gcc/obj/gcc-3.0-20010528/6.2-gcc/mips-sgi-irix6.2//libstdc++-v3/src/.libs -L/vol/gcc/obj/gcc-3.0-20010528/6.2-gcc/mips-sgi-irix6.2//libiberty -lm -mabi=64 -o /vol/gcc/obj/gcc-3.0-20010528/6.2-gcc/gcc/testsuite/g++-abi-arraynew-C.exe
ld64: FATAL 12: Expecting 64-bit objects: /vol/gcc/obj/gcc-3.0-20010528/6.2-gcc/mips-sgi-irix6.2//libstdc++-v3/src/.libs/libstdc++.so is n32.
collect2: ld returned 4 exit status
compiler exited with status 1
As you can see, the mabi=64 subdirectory of mips-sgi-irix6.2 is missing
from the -L switches above.
Backing out the patch returns the multilib testsuite to working condition
again.
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Faculty of Technology, Bielefeld University
Email: ro@TechFak.Uni-Bielefeld.DE