libstdc++/5198: 3.0.3 linux x m68k build fail: invalid opcodes in c++locale.cc
Aaron J. Grier
aaron@frye.com
Fri Jan 4 15:36:00 GMT 2002
The following reply was made to PR libstdc++/5198; it has been noted by GNATS.
From: "Aaron J. Grier" <aaron@frye.com>
To: Craig Rodrigues <rodrigc@mediaone.net>
Cc: Don Lindsay <lindsayd@cisco.com>, rodrigc@gcc.gnu.org,
gcc-bugs@gcc.gnu.org, nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org
Subject: Re: libstdc++/5198: 3.0.3 linux x m68k build fail: invalid opcodes in c++locale.cc
Date: Fri, 4 Jan 2002 15:25:14 -0800
On Fri, Jan 04, 2002 at 05:43:39PM -0500, Craig Rodrigues wrote:
> On Fri, Jan 04, 2002 at 02:34:11PM -0800, Aaron J. Grier wrote:
> > the fault is with libstdc++-v3, specifically
> >
> > libstdc++-v3/config/cpu/m68k/bits/atomicity.h
> >
> > which includes "cas" as an inlined assembly instruction in a supposedly
> > generic m68k include file.
> >
> > I've been able to identify at least three cases that need to be covered
> > in atomicity.h:
> >
> > 68020/30/40: use current "cas"
> > mcpu32 and v4 coldfire: "tas" on a static local variable
> > 68000/010, v2/3 coldfire: disable interrupts
> >
> > I'm preparing a quick-and-dirty patch for people to go over, but if
> > someone beats me to it, more power to them. :)
>
> If you can submit a good patch for atomicity.h, please do.
> You can look at the proposed patch from Peter Barada here:
> http://gcc.gnu.org/ml/gcc/2002-01/msg00328.html
>
> That might give you an idea of what macros to use.
except as Nathan Myers pointed out in a followup (which apparently
hasn't made it to the web archive yet), Peter's solution won't work
since you could be interrupted by another thread between the add and cmp
instructions.
--
Aaron J. Grier | Frye Electronics, Tigard, OR | aaron@frye.com
"In a few thousand years people will be scratching their heads
wondering how on earth the first computer was invented and
bootstrapped without a prior computer to do it with."
-- Chris Malcolm, on comp.arch
More information about the Gcc-prs
mailing list