Re: i386 compatibility & libstdc++
Arnd Bergmann <email@example.com> writes:
> Right. Any reason why the patch below should not work?
> When __exchange_and_add is an extern function, the implementation
> does not matter to applications using it. Binaries optimized for
> i486 or higher can still use the inline function then, just i386
> optimized ones will be even slower than they are now. There will of
> course have to be two variants of libstdc++ -- binaries built for
> i486 will require the new library but all other c++ libraries and
> application are compatible regardless of their optimization level.
So should the standard binaries (apt, groff, OpenGL libraries, kde
libraries) be compiled for 386 or 486?
If 486, how can you run the packages on 386?
If 386, how will they be compatible with other distributions? More
importantly, how will binaries created for other distribution work on
Debian? If you have a library compiled for 386 and a foreign binary
compiled for 486, you may experience data corruption: the 386 code
will modify atomic values one way, and the 486 code *in the same
process* will modify them another way. This just cannot work.
> We should still discuss an i686 (or i586) optimized port, but fixing
> the problem will make it possible to seperate the issues.
I can see no fix for the problem in this patch.