Re: cpluspluscheck vs ICU

Поиск
Список
Период
Сортировка
От Peter Eisentraut
Тема Re: cpluspluscheck vs ICU
Дата
Msg-id 2d7acd18-b785-203a-e4b3-950303c5e0dd@eisentraut.org
обсуждение исходный текст
Ответ на Re: cpluspluscheck vs ICU  (Andres Freund <andres@anarazel.de>)
Список pgsql-hackers
On 08.08.23 01:35, Andres Freund wrote:
> Hi,
> 
> On 2023-03-10 20:10:30 -0800, Andres Freund wrote:
>> On 2023-03-10 19:37:27 -0800, Andres Freund wrote:
>>> I just hit this once more - and I figured out a fairly easy fix:
>>>
>>> We just need a
>>>    #ifndef U_DEFAULT_SHOW_DRAFT
>>>    #define U_DEFAULT_SHOW_DRAFT 0
>>>    #endif
>>> before including unicode/ucol.h.
>>>
>>> At first I was looking at
>>>    #define U_SHOW_CPLUSPLUS_API 0
>>> and
>>>    #define U_HIDE_INTERNAL_API 1
>>> which both work, but they are documented to be internal.
>>
>> Err. Unfortunately only the U_SHOW_CPLUSPLUS_API approach actually works. The
>> others don't, not quite sure what I was doing earlier.
>>
>> So it's either relying on a define marked as internal, or the below:
>>
>>> Alternatively we could emit U_DEFAULT_SHOW_DRAFT 0 into pg_config.h to avoid
>>> that issue.
>>>
>>>
>>> The only other thing I see is to do something like:
>>> [ugly]
>>> which seems mighty ugly.
> 
> The ICU docs talk about it like it's not really internal:
>
https://github.com/unicode-org/icu/blob/720e5741ccaa112c4faafffdedeb7459b66c5673/docs/processes/release/tasks/healthy-code.md#test-icu4c-headers
> 
> So I'm inclined to go with that solution.

This looks sensible to me.

Perhaps undef U_SHOW_CPLUSPLUS_API after including the headers, so that 
if extensions want to use the ICU C++ APIs, they are not tripped up by this?




В списке pgsql-hackers по дате отправления:

Предыдущее
От: Richard Guo
Дата:
Сообщение: Re: Oversight in reparameterize_path_by_child leading to executor crash
Следующее
От: YANG Xudong
Дата:
Сообщение: Re: [PATCH] Add loongarch native checksum implementation.