This is the mail archive of the mailing list for the newlib project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.

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