From a2f90f6389029e0e306a52e74b437c7505e43796 Mon Sep 17 00:00:00 2001 From: Jingyun Hua Date: Thu, 1 Dec 2022 07:03:06 +0000 Subject: [PATCH] add loongarch support Signed-off-by: Jingyun Hua (cherry picked from commit 901df5e12902dd2b7fda9d7e2e0e7f64a78a7745) --- add-loongarch-support.patch | 50 +++++++++++++++++++++++++++++++++++++ libpq.spec | 6 ++++- 2 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 add-loongarch-support.patch diff --git a/add-loongarch-support.patch b/add-loongarch-support.patch new file mode 100644 index 0000000..053ba09 --- /dev/null +++ b/add-loongarch-support.patch @@ -0,0 +1,50 @@ +diff --git a/src/include/storage/s_lock.h b/src/include/storage/s_lock.h +index 6b368a5..86e0e84 100644 +--- a/src/include/storage/s_lock.h ++++ b/src/include/storage/s_lock.h +@@ -696,6 +696,45 @@ do \ + + #endif /* __mips__ && !__sgi */ + ++#if defined(__loongarch__) /* loongarch */ ++#define HAS_TEST_AND_SET ++ ++typedef unsigned int slock_t; ++ ++#define TAS(lock) tas(lock) ++ ++static __inline__ int ++tas(volatile slock_t *lock) ++{ ++ register volatile slock_t *_l = lock; ++ register int _res; ++ register int _tmp; ++ ++ __asm__ __volatile__( ++ " ll.w %0, %2 \n" ++ " ori %1, %0, 1 \n" ++ " sc.w %1, %2 \n" ++ " xori %1, %1, 1 \n" ++ " or %0, %0, %1 \n" ++ " dbar 0 \n" ++: "=&r" (_res), "=&r" (_tmp), "+R" (*_l) ++: /* no inputs */ ++: "memory"); ++ return _res; ++} ++ ++#define S_UNLOCK(lock) \ ++do \ ++{ \ ++ __asm__ __volatile__( \ ++ " dbar 0 \n" \ ++: /* no outputs */ \ ++: /* no inputs */ \ ++: "memory"); \ ++ *((volatile slock_t *) (lock)) = 0; \ ++} while (0) ++#endif /* __loongarch__ */ ++ + + #if defined(__m32r__) && defined(HAVE_SYS_TAS_H) /* Renesas' M32R */ + #define HAS_TEST_AND_SET diff --git a/libpq.spec b/libpq.spec index 71ed236..e3099ba 100644 --- a/libpq.spec +++ b/libpq.spec @@ -1,6 +1,6 @@ Name: libpq Version: 13.7 -Release: 1 +Release: 2 Summary: PostgreSQL client library License: PostgreSQL Url: http://www.postgresql.org/ @@ -9,6 +9,7 @@ Source0: https://ftp.postgresql.org/pub/source/v%{version}/postgresql-%{version} Patch0001: libpq-10.3-rpm-pgsql.patch Patch0002: libpq-10.3-var-run-socket.patch Patch0003: libpq-12.1-symbol-versioning.patch +Patch0004: add-loongarch-support.patch BuildRequires: gcc glibc-devel bison flex gawk zlib-devel openssl-devel BuildRequires: krb5-devel openldap-devel gettext multilib-rpm-config @@ -79,6 +80,9 @@ cat pg_config-13.lang >>libpq-devel.lst %_libdir/pkgconfig/libpq.pc %changelog +* Thu Dec 1 2022 huajingyun - 13.7-2 +- add loongarch support + * Mon Jun 13 2022 duyiwei - 13.7-1 - upgrade libpq to 13.7,fix CVE-2021-32027,CVE-2022-1552 -- Gitee