This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
Re: ctype macros broken on 64-bits builds?
Joseph S. Myers wrote:
On Mon, 21 Jul 2008, Jeff Johnston wrote:
I have checked in the accompanying patch which implements the alternative you
mention above. To prevent breakage in existing code, I have created a new
pointer: __ctype_ptr__ and changed the ctype macros/functions to use it.
By removing the _ctype_ declaration, this breaks building libstdc++-v3,
which has headers knowing about the internals of ctype on several
different systems: the newlib version of those headers
(config/os/newlib/ctype_noninline.h) uses _ctype_.
I recommend restoring that compatibility declaration, so that existing
libstdc++-v3 versions still build.
I had been contacted about this already off-list and a patch had been
proposed. I guess it was never
checked in. Anyway, I have added the old definition again. I have no
idea why C++ wouldn't just use the
macros and avoid accessing the internal table directly. Using that
table will only ever get the default table. If newlib implements ctype
locale change support, that method will be broken. The proposed change
sent to me to look at just changed to use the new __ctype_ptr__ instead
of _ctype_.
-- Jeff J.