This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Corrections to GNU/Linux libstdc++-v3 os_defines.h for S/390


	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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]