gcc 3.x test matrix

Geoff Keating geoffk@geoffk.org
Wed Sep 5 19:58:00 GMT 2001


> From: Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
> Date: Wed, 5 Sep 2001 23:19:57 +0200
> Cc: Olaf Hering <olh@suse.de>, Geoff Keating <geoffk@geoffk.org>
> X-OriginalArrivalTime: 05 Sep 2001 21:19:41.0655 (UTC) FILETIME=[7A14C670:01C13650]
> 
> 
> --------------Boundary-00=_9LK7BOUVWH2GDZ17ETCS
> Content-Type: text/plain;
>   charset="iso-8859-1"
> Content-Transfer-Encoding: 8bit
> 
> On Tuesday 04 September 2001 17:04, Andreas Jaeger wrote:
> > I run the same tests on PowerPC with GCC 2.95.3 + patches:
> >
> > Tests with GCC 2.95.3: Successful
> >
> > Installed gcc 3.0.1 in the chroot
> > Tests with GCC 3.0.1: Successfull
> >
> > Rebuild glibc with GCC 3.0.1 and installed this glibc:
> > Tests with GCC 3.0.1: Succesfull
> >
> > but the tests with GCC 2.95.x and an installed glibc compiled with GCC
> > 3.0.1 all fail - and the hack adding -lc doesn't help:
> >
> > melon:/tmp/test-eh# LD_DEBUG=symbols ./dso-c-app 2>&1  |grep
> > frame_state_for 02961:  symbol=__frame_state_for;  lookup in
> > file=./dso-c-app
> > 02961:  symbol=__frame_state_for;  lookup in file=./do_test.so
> > 02961:  symbol=__frame_state_for;  lookup in file=/lib/libc.so.6
> > 02961:  symbol=__frame_state_for;  lookup in
> > file=/opt/experimental/lib/libgcc_s.so.1 melon:/tmp/test-eh# ./dso-c-app
> > 2>&1  |grep frame_state_for
> > melon:/tmp/test-eh# ./dso-c-app
> > tsearch
> > Aborted
> > melon:/tmp/test-eh# ldd ./dso-c-app
> >         do_test.so => ./do_test.so (0x017de000)
> >         libc.so.6 => /lib/libc.so.6 (0x0168a000)
> >         libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3
> > (0x01610000) libm.so.6 => /lib/libm.so.6 (0x01575000)
> >         /lib/ld.so.1 => /lib/ld.so.1 (0x30000000)
> >
> > PowerPC developers, can you have a look, please?
> 
> Hmm, ugly compatibility stuff with the unofficial dwarf2 patch for gcc-2.95. 
> Andreas, can you try the appended patch with gcc-3.0.1 and retry the testcase?
> 
> The problem is that gcc-2.95+dwarf2 uses 70 as the regno to mark CR for 
> dwarf2, but gcc3 uses 68.
> 
> Geoff, I guess we can make gcc3 compatible with both versions?

This is OK, with a suitable changelog and testing.

> --------------Boundary-00=_9LK7BOUVWH2GDZ17ETCS
> Content-Type: text/plain;
>   charset="iso-8859-1";
>   name="gcc3-dwarf2-gcc295-compat.patch"
> Content-Transfer-Encoding: 8bit
> Content-Disposition: attachment; filename="gcc3-dwarf2-gcc295-compat.patch"
> 
> Index: rs6000.c
> ===================================================================
> RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rs6000.c,v
> retrieving revision 1.167.2.9
> diff -u -p -r1.167.2.9 rs6000.c
> --- rs6000.c	2001/08/25 16:02:18	1.167.2.9
> +++ rs6000.c	2001/09/05 21:05:02
> @@ -6098,9 +6098,10 @@ rs6000_emit_prologue ()
>  	 to understand '(unspec:SI [(reg:CC 68) ...] 19)'.  But that's
>  	 OK.  All we have to do is specify that _one_ condition code
>  	 register is saved in this stack slot.  The thrower's epilogue
> -	 will then restore all the call-saved registers.  */
> +	 will then restore all the call-saved registers.
> +	 We use CR2_REGNO (70) to be compatible with gcc-2.95 on Linux.  */
>        rs6000_frame_related (insn, frame_ptr_rtx, info->total_size, 
> -			    cr_save_rtx, gen_rtx_REG (SImode, CR0_REGNO));
> +			    cr_save_rtx, gen_rtx_REG (SImode, CR2_REGNO));
>      }
>  
>    /* Update stack and set back pointer unless this is V.4, 
> 
> --------------Boundary-00=_9LK7BOUVWH2GDZ17ETCS--
> 


-- 
- Geoffrey Keating <geoffk@geoffk.org>



More information about the Gcc-patches mailing list