Thread

  1. Re: [PATCH] Fix ARM64/MSVC atomic memory ordering issues on Win11 by adding explicit DMB barriers

    Greg Burd <greg@burd.me> — 2025-11-21T19:40:37Z

    On Nov 20 2025, at 5:36 pm, Nathan Bossart <nathandbossart@gmail.com> wrote:
    
    > I took a quick look at 0001.
    
    Thanks for taking a second to review!
    
    > +#ifdef _MSC_VER
    > +#include <intrin.h>
    > +#else
    > #include <arm_acle.h>
    > unsigned int crc;
    > 
    > I think you can remove this since we unconditionally do the runtime check
    > for MSVC.  In any case, the missing #endif seems likely to cause
    > problems.
    > 
    > --- a/src/port/pg_crc32c_armv8.c
    > +++ b/src/port/pg_crc32c_armv8.c
    > @@ -14,7 +14,9 @@
    >  */
    > #include "c.h"
    > 
    > +#ifndef _MSC_VER
    > #include <arm_acle.h>
    > +#endif
    > 
    > Hm.  Doesn't MSVC require intrin.h?
    
    It does in fact fail to compile without this part of the patch, I think
    Dave posted a bug about this.  I added the missing endif, thanks!
    
    > -- 
    > nathan
    
    best.
    
    -greg