i386 compatibility & libstdc++
Should Debian further support the i386 target, or make (at least i486)
the default for code generation? Asking because I'm unsure how to
provide the libstdc++5 package.
- In gcc-3.2, the libstdc++ atomicity implementation uses ix86 (>=4)
specific code. This was reported by two users (#184446, #185662).
- In gcc-3.3, it's differentiated between i386 and ix86 (>=4), however
the atomicity implementation is selected at configure time (so
an i386-linux configured compiler always uses the generic
- Trying to "fix" this resulted in libstdc++5 packages built for
i386 and ix86, and selecting the atomicity implementation based on
target cpu macros. This approach doesn't work, as I learned now.
See http://gcc.gnu.org/ml/libstdc++/2003-04/msg00394.html: It's
not possible to mix the two implementations.
- Keeping the generic implementation would not allow binaries
linked against the libstdc++ built with the generic implementation
to run on platforms with a libstdc++ built for ix86 (>=4).
See #189983. No libstdc++ dependent binary will run on distributions
"optimized" for ix86 (>=4).
- The generic implementation hurts ix86 (>=4) users a bit more.
Phil Edwards writes in #184446:
Debian already hurts the x86 users (IMHO) by giving them a
compiler targetted for processor which, I'd bet, is used by less
than 2% of the user base. This is just one more performace hit on
top of all the others; I really wouldn't worry about it
unless/until the compiler is targeted to something more useful,
e.g., i486, i586, or (quelle suprise) i686, and for those cases
the atomic operations will be automatically corrected.
For now I will revert to the gcc-3.2 implementation and continue
beeing incompatible with i386. But if you do this, why not make i486
the default target for code generation anyway? Who decides on this, is
there an "ix86" port maintainer?