When configuring and building gcc 3.2 on a i386-linux machine
c++ programs fail because you use 486 code in inline assembler
statements in your atomicity headers (xadd, cmpxchg and others)
libjava has the same problems. It would be nice if you could
rework the header files to use non-atomic i386 instructions
if such behaviour is required. A special configure option
would do, too. If you need help how the appropriate headers
for i386 might look like, mail me, but I haven't got the
files around here at the university, so it might take some
time to send them in...
i388 running Linux 2.2.21 and glibc 2.2.5
You can't repeat it unless you still have an old i386 around...
rework i386 atomicity header files to make a distinction
between i386 and i486 and newer...
State-Changed-Why: Thank you for your bug report.
We already make a distinction between i386 and higher.
If we compare those two files:
% cd libstdc++-v3/config/cpu
% diff i386/atomicity.h i486/atomicity.h
< // Low-level functions for atomic operations: x86, x < 4 version -*- C++ -*-
> // Low-level functions for atomic operations: x86, x >= 4 version -*- C++ -*-
Well, crumbs. That's embarassing.
I have not done any CVS archaeology to find out when
this happened, but I'm sure it was a long time ago.
(Those files are rarely changed.) And it's gone undetected
this long because there are only five i386 machines still
in use, and you have one of them. :-)
Somebody more familiar with i386 will have to rewrite
those instructions. And remove those two useless blank
State-Changed-Why: This target, i386, should have been using the generic configuration, not the i486 files. I switched it.
Date: 2 Nov 2002 01:42:23 -0000
Module name: gcc
Changes by: email@example.com 2002-11-01 17:42:22
libstdc++-v3 : ChangeLog configure.target
2002-11-01 Benjamin Kosnik <firstname.lastname@example.org>
* configure.target: Simplify.
* config/cpu/i386/atomicity.h: Remove.
* config/cpu/i386: Remove.
* config/cpu/arm/atomicity.h: Remove.
* config/cpu/arm: Remove.
* config/cpu/x86-64/atomicity.h: Remove.
* config/cpu/x86-64: Remove.
State-Changed-Why: This is fixed on mainline.