"Jeffrey W. Baker" <jwbaker@acm.org> writes:
>> It sounds like you have a build that's using SysV semaphores in place of
>> test-and-set instructions. That should not happen on x86 hardware,
>> since we have assembly TAS code for x86. Please look at your port
>> header file (src/include/pg_config_os.h symlink) and
>> src/include/storage/s_lock.h to figure out why it's misbuilt.
> Well, it seems that one of __i386__ or __GNUC__ isn't set at compile time.
> I'm using GCC on i386 so I don't see how that is possible.
I don't either.
> It should be
> safe for me to simply define these two things in pg_config.h, I suspect.
That is not a solution. If it's broken for you then it's likely to be
broken for other people. We need to figure out what went wrong and
provide a permanent fix.
What gcc version are you running, exactly, and what symbols does it
predefine? (I seem to recall that there's a way to find that out,
though I'm not recalling how at the moment. Anyone?)
regards, tom lane