This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: Corrections to GNU/Linux libstdc++-v3 os_defines.h for S/390
- To: Gabriel Dos Reis <gdr at codesourcery dot com>
- Subject: Re: Corrections to GNU/Linux libstdc++-v3 os_defines.h for S/390
- From: David Edelsohn <dje at watson dot ibm dot com>
- Date: Fri, 24 Aug 2001 13:51:28 -0400
- cc: "Ulrich Weigand" <Ulrich dot Weigand at de dot ibm dot com>, Franz Sirl <Franz dot Sirl-kernel at lauterbach dot com>, gcc-patches at gcc dot gnu dot org, libstdc++ at gcc dot gnu dot org
I have committed the change to the branch. But there seems to be
some conflict between CPU limits.h and os_defines for PowerPC.
Currently libstdc++-v3 configure.target tests for "powerpc" not
"powerpc*" (e.g., powerpc64). config/cpu/powerpc/bits/atomicity.h is
incorrect for some (unused) functions which have a signature of "long"
instead of "_Atomic_word". This is why I removed the definition of
__compare_and_swap() from the AIX atomicity.h: the function signature
forces "long *", not _Atomic_word, but __compare_and_swap() is not used
*anywhere* in libstdc++-v3.
Additionally, config/cpu/powerpc/bits/limits.h now defines
#define __glibcpp_long_double_bits 64
It is confusing to me to define 32-bit PowerPC there, but 64-bit PowerPC
in os_defines.h (because configure.target does not use a wildcard). And
the long double 128 option which is not fully implemented confuses things
further.
I would recommend adding a wildcard to configure.target for
PowerPC and removing __compare_and_swap() from atomicity.h. I don't know
whether limits.h should match the current implementation or the
flexibility allowed by the current options.
David