Re: [PATCH] Porting small OpenBSD changes.

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: David CARLIER <devnexen@gmail.com>
Cc: pgsql-hackers@postgresql.org
Date: 2017-11-20T22:24:03Z
Lists: pgsql-hackers

Attachments

David CARLIER <devnexen@gmail.com> writes:
> On 20 November 2017 at 18:49, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> OTOH, we still have M68K
>> and VAX stanzas in that file, so I suppose it's silly to complain
>> about 88K.  A bigger issue is that I wonder whether that code has
>> ever been tested: it does not look to me like the __asm__ call is
>> even syntactically correct.  There should be colons in it.

> True :-) corrected. Thanks.

I still dare to doubt whether you've tested this, because AFAICS
the operand numbering is wrong.  The "r"(lock) operand is number 3
given these operand declarations, not number 2.

Our practice elsewhere in s_lock.h is to use a "+" constraint instead of
duplicated operands, and I think that's better style because it avoids any
question of whether you're supposed to count duplicated operands.

Also, per the comment near s_lock.h line 115, it's important to specify
"+m"(*lock) as an output operand so that gcc knows that the asm
clobbers *lock.  It's possible that "memory" makes that redundant,
but I'd just as soon maintain consistency with the well-tested
other parts of the file.

So I propose the attached patch instead.  It would still be a good idea
to actually test this ;-)

			regards, tom lane

Commits

  1. Add support for Motorola 88K to s_lock.h.

  2. Use out-of-line M68K spinlock code for OpenBSD as well as NetBSD.