diff options
Diffstat (limited to 'dev-db/postgresql/files/postgresql-8.2.4-sh.patch')
-rw-r--r-- | dev-db/postgresql/files/postgresql-8.2.4-sh.patch | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/dev-db/postgresql/files/postgresql-8.2.4-sh.patch b/dev-db/postgresql/files/postgresql-8.2.4-sh.patch new file mode 100644 index 0000000..295bb6c --- /dev/null +++ b/dev-db/postgresql/files/postgresql-8.2.4-sh.patch @@ -0,0 +1,34 @@ +--- postgresql-8.2.3.orig/src/include/storage/s_lock.h 2006-06-08 00:24:45.000000000 +0200 ++++ postgresql-8.2.3/src/include/storage/s_lock.h 2007-03-29 12:25:56.000000000 +0200 +@@ -299,6 +299,31 @@ + #endif /* __s390__ || __s390x__ */ + + ++#if defined(__sh__) ++#define HAS_TEST_AND_SET ++ ++typedef unsigned char slock_t; ++ ++#define TAS(lock) tas(lock) ++ ++static __inline__ int ++tas(volatile slock_t *lock) ++{ ++ register int _res = 1; ++ ++ __asm__ __volatile__( ++ "tas.b @%1\n\t" ++ "movt %0\n\t" ++ "xor #1,%0" ++: "=z"(_res) ++: "r"(lock) ++: "t","memory"); ++ return _res; ++} ++ ++#endif /* __sh__ */ ++ ++ + #if defined(__sparc__) /* Sparc */ + #define HAS_TEST_AND_SET + |