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