Re: pgsql: Allow building with MSVC and Strawberry perl

Поиск
Список
Период
Сортировка
От Andres Freund
Тема Re: pgsql: Allow building with MSVC and Strawberry perl
Дата
Msg-id 20221125233331.dh4yrd76a3mnwj4s@awork3.anarazel.de
обсуждение исходный текст
Ответ на Re: pgsql: Allow building with MSVC and Strawberry perl  (Andrew Dunstan <andrew@dunslane.net>)
Ответы Re: pgsql: Allow building with MSVC and Strawberry perl  (Andres Freund <andres@anarazel.de>)
Список pgsql-committers
Hi,

On 2022-11-25 17:11:51 -0500, Andrew Dunstan wrote:
> On 2022-11-25 Fr 15:38, Andrew Dunstan wrote:
> > Allow building with MSVC and Strawberry perl
> >
> > Strawberry uses __builtin_expect which Visual C doesn't have. For this
> > case define it as a noop. Solution taken from vim sources.

FWIW, to get a newer strawberry perl to work with msvc we need more than
this. At the very least -DNO_THREAD_SAFE_LOCALE, see

https://postgr.es/m/20220130221659.tlyr2lbw3wk22owg%40alap3.anarazel.de



>
> Argh! drongo doesn't seem to like this. I thought I'd tested it.
>
> A little further googling suggests that instead of
>
>
> #define __builtin_expect(expr, val) (expr)
>
>
> we should probably have something like
>
>
> #define __builtin_expect(expr, val) ((expr) == (val))

That doesn't seem right - val isn't something to compare to, it's the expected
return value. This afaict would compute bogus value in a number of scenarios.

Note that perl's own definition is:

#ifdef HAS_BUILTIN_EXPECT
#  define EXPECT(expr,val)                  __builtin_expect(expr,val)
#else
#  define EXPECT(expr,val)                  (expr)
#endif

So we really should be able to get away with
#define __builtin_expect(expr, val) (expr)


I don't see why drongo's problems would go away with
#define __builtin_expect(expr, val) ((expr) == (val))
anyway?


FWIW a meson build with msvc 2019 and strawberry perl 5.32 builds fine with
#define __builtin_expect(expr, val) (expr)

Greetings,

Andres Freund



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

Предыдущее
От: Andrew Dunstan
Дата:
Сообщение: Re: pgsql: Allow building with MSVC and Strawberry perl
Следующее
От: Andres Freund
Дата:
Сообщение: Re: pgsql: Allow building with MSVC and Strawberry perl