Input on new i386 atomics (was Re: Python 2.3 in testing)

Martin v. Löwis martin@v.loewis.de
Tue Apr 29 19:35:00 GMT 2003


Loren James Rittle <rittle@latour.rsch.comm.mot.com> writes:

> How about this instead:

I'll comment to your other message.

> At the moment, my version of Joel's patch just fixes a major speed
> regression introduced Nov 2002 when i386-*-* was (rightly, pending
> further research) switched to generic atomics as a bug fix.

I see. As fixing a speed regression, this is fine (if implemented
correctly).

> FYI, thus we already have a major change installed on mainline/3.3
> which is not in 3.2 that breaks this ABI for i386 machines.  It was
> (rightly) called a bug fix at the time the change was installed since
> xaddl doesn't exist on plain i386 yet somehow snuck into a file with
> i386 support before gcc 3.0 was released.

That should be no problem. There are probably relatively few binaries
for the i386 target that would now break under the ABI change. More
precisely, Debian/unstable is full of such binaries, but breakage in
that system is ok, and no binaries have been released to end users,
yet (all other Linux distributions seem to use i586+).

> Sorry, but that issue was broken by other patches (e.g. the one that
> forced i386 but not higher level CPUs to use generic) and if an
> important concern to the OS packagers, we had better fix it before the
> gcc 3.3 release.  

I think that is too late now.

> OTOH, why does anyone presume that a compiler triple i386-*-*- is
> completely compatible with i686-*-*? (rhetorical question ;-)

Nobody blaims gcc for having these configurations incompatible; this
is perfectly reasonable.

The issue is for "the Linux platform": Should it use the i386 ABI, the
i486, or something else? So far, those were compatible (with processor
dependencies strictly inside functions), so the Linux ABI people did
not care. There are good arguments on both sides (support i386+, or
support i486+ only) - it is unfortunate that no explicit decision
about this was made. Instead, all decisions have been ad hoc, and as a
side effect of configuring the compiler (with most distributions
chosing the i486 ABI, since they mean to support i586+ only, anyway).

For Debian, there is a vocal group of i386 users (whether they
represent a significant portion of Debian users, I don't know). They
demand that Debian stays compatible with i386. Due to the way politics
work in Debian, a "significant minority" can veto changes, even if the
majority considers those changes as progress.

As a result, Debian will chose between backwards compatibility (with
i386), and sidewards compatibility (with other distributions). It
appears that the choice will favour backwards compatibility. This will
satisfy the i386 users, but will hurt Linux in general.

Regards,
Martin



More information about the Libstdc++ mailing list