[cfe-dev] [PATCH] Libc++ Windows fixes

Howard Hinnant hhinnant at apple.com
Wed Sep 28 14:45:27 PDT 2011


On Sep 28, 2011, at 5:35 PM, Ruben Van Boxem wrote:

> 
>> In <__config> don't you want to:
>> 
>> #if __APPLE__ || _WIN32
>> #define _LIBCPP_STABLE_APPLE_ABI
>> #endif
>> 
>> instead of:
>> 
>> #if __APPLE__ || __FreeBSD__ || _WIN32
>> #define _LIBCPP_LOCALE__L_EXTENSIONS 1
>> #endif
>> 
>> ?
>> 
> I guess you're right. I defined both in the new patch. libc++ compiles, but I'm kind of baffled by this because there are locale.cpp parts using _DefaultRuneLocale if _LIBCPP_STABLE_APPLE_ABI is defined. I didn't touch these at all :s so I'm kind of confused why this works at all for me... I'm not seeing what the compiler is seeing :(
> 
> These parts of locale.cpp are standard C locale things, so I guess the alternative I need to write is these bits using a hidden (static) C locale object I can always access for the values needed (this would involve modifying __cloc to not create a locale every time it is called, but I was waiting for the <locale> refactoring...). Why does FreeBSD not define _LLIBCPP_STABLE_APPLE_ABI?
> 
> I'm officially confumbled,

I'm officially confumbled too, you're not alone. :-)

You're checked in.  Hopefully with a fresh update things will start to unwind and simplify.

I think FreeBSD should define _LLIBCPP_STABLE_APPLE_ABI too.  David?  And maybe with David's latest patch to FreeBSD, should also #define _LIBCPP_GET_C_LOCALE 0.

Howard




More information about the cfe-dev mailing list