From: | Andres Freund <andres(at)anarazel(dot)de> |
---|---|
To: | Andrew Dunstan <andrew(at)dunslane(dot)net> |
Cc: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | Re: pgsql: Allow building with MSVC and Strawberry perl |
Date: | 2022-11-25 23:33:31 |
Message-ID: | 20221125233331.dh4yrd76a3mnwj4s@awork3.anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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
From | Date | Subject | |
---|---|---|---|
Next Message | Andres Freund | 2022-11-25 23:48:13 | Re: pgsql: Allow building with MSVC and Strawberry perl |
Previous Message | Andrew Dunstan | 2022-11-25 22:11:51 | Re: pgsql: Allow building with MSVC and Strawberry perl |