> Problem Description:
> --------------------
> The PostgreSQL sources fail to compile on NetBSD/arm32
> systems due to the lack of a TAS function.
> Solution:
> ---------
> I am sorry that this isn't a proper patch.
I am too :(
So, if someone were to add this TAS capability, does everything build
properly? Do the regression tests look reasonable? Do we have a fully
supported platform with all the bells and whistles??
I'd like to add your platform to the supported list for the upcoming
release...
- Tom
> Add the following into src/include/storage/s_lock.h:
>
> #if defined(__arm32__)
> #define TAS(lock) tas(lock)
>
> static __inline__ int
> tas(volatile slock_t *lock)
> {
> register slock_t _res = 1;
>
> __asm__("swpb %0, %0, [%3]": "=r"(_res), "=m"(*lock):"0"(_res), "r" (lock));
> return (int) _res;
> }
>
> #endif /* __arm32__ */