From: | Noah Misch <noah(at)leadboat(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | Re: pgsql: For all ppc compilers, implement pg_atomic_fetch_add_ with inlin |
Date: | 2019-09-14 17:11:54 |
Message-ID: | 20190914171154.GA3487808@rfd.leadboat.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
On Sat, Sep 14, 2019 at 10:10:47AM -0400, Tom Lane wrote:
> Noah Misch <noah(at)leadboat(dot)com> writes:
> > For all ppc compilers, implement pg_atomic_fetch_add_ with inline asm.
>
> prairiedog thinks there's something wrong here --- probably, some global
> enabling #define is missing?
I can reproduce its situation by commenting out the HAVE_GCC_ symbols in
pg_config.h. This commit did "#define PG_HAVE_ATOMIC_U32_SUPPORT" but defined
only fetch_add, not compare_exchange. That works with generic-gcc.h, but
fallback.h can't replace just one. (Rightly so -- fallback.h defines the
pg_atomic_uint32 structure differently.) I can see these ways to fix this:
1. Add pg_atomic_compare_exchange_u{32,64}_impl to arch-ppc.h
2. Arrange for arch-ppc.h to be a no-op when GCC atomics are unavailable
3. Just revert
(1) seems best. Since it may be days or weeks before I get to that, I'm
inclined to revert after ~24h of total buildfarm exposure.
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2019-09-14 18:28:58 | Re: pgsql: For all ppc compilers, implement pg_atomic_fetch_add_ with inlin |
Previous Message | Tom Lane | 2019-09-14 14:10:47 | Re: pgsql: For all ppc compilers, implement pg_atomic_fetch_add_ with inlin |