============================================================================
POSTGRESQL BUG REPORT TEMPLATE
============================================================================
Your name : Andrew McMurry
Your email address : a.mcmurry1@physics.ox.ac.uk
Category : install: compile
Severity : critical
Summary: PostgreSQL does not compile on ARM systems
System Configuration
--------------------
Operating System : NetBSD/arm32 1.3-current
PostgreSQL version : 6.4.2
Compiler used : ecgs-1.1.1
Hardware:
---------
CATS (StrongARM 110 processor), 128MB RAM
Versions of other tools:
------------------------
--------------------------------------------------------------------------
Problem Description:
--------------------
The PostgreSQL sources fail to compile on NetBSD/arm32
systems due to the lack of a TAS function.
--------------------------------------------------------------------------
Test Case:
----------
--------------------------------------------------------------------------
Solution:
---------
I am sorry that this isn't a proper patch.
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__ */
--------------------------------------------------------------------------