Re: BUG #17967: [msvc-x86] Failed to build with error LNK2019: unresolved external symbol __BitScanReverse64 referen

Mo Youmiu <moyoumiu@outlook.com>

From: Mo Youmiu <moyoumiu@outlook.com>
To: David Rowley <dgrowleyml@gmail.com>, "pgsql-bugs@lists.postgresql.org" <pgsql-bugs@lists.postgresql.org>
Date: 2023-06-08T07:56:56Z
Lists: pgsql-bugs
Thanks for your replies and corrections, and apologies for the confusing version I mentioned.

For this commit, PostgreSQL was successfully built with msvc on both x86 and amd64.

Glad my report was helpful.

Mo

________________________________
From: David Rowley <dgrowleyml@gmail.com>
Sent: Thursday, June 8, 2023 6:18
To: moyoumiu@outlook.com <moyoumiu@outlook.com>; pgsql-bugs@lists.postgresql.org <pgsql-bugs@lists.postgresql.org>
Subject: Re: BUG #17967: [msvc-x86] Failed to build with error LNK2019: unresolved external symbol __BitScanReverse64 referen

On Thu, 8 Jun 2023 at 01:00, David Rowley <dgrowleyml@gmail.com> wrote:
> I've not tested it, but I imagine the attached patch should fix it.

I've just pushed that patch to master only.

I noticed your report mentioned that this was for version 15.3. I
assumed this was a mistake as I didn't see any usage of the bit
scanning functions in v15. Commit 677319746 [1] introduced these,
which is new to v16.

Many thanks for reporting this!

David

[1] https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=677319746

Commits

  1. Don't use _BitScanForward64/_BitScanReverse64 on 32-bit MSVC builds

  2. Remove newly added asserts from pg_bitutils.h

  3. Add MSVC support for pg_leftmost_one_pos32() and friends