From: | PG Bug reporting form <noreply(at)postgresql(dot)org> |
---|---|
To: | pgsql-bugs(at)lists(dot)postgresql(dot)org |
Cc: | wzssyqa(at)gmail(dot)com |
Subject: | BUG #15844: MIPS: remove .set mips2 in s_lock.h to fix r6 build |
Date: | 2019-06-11 04:39:35 |
Message-ID: | 15844-8f62fe7e163939b3@postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
The following bug has been logged on the website:
Bug reference: 15844
Logged by: Yunqiang Su
Email address: wzssyqa(at)gmail(dot)com
PostgreSQL version: 12beta1
Operating system: Linux
Description:
MIPS r6 changes the encoding of LL/SC instruction,
while the .set mips2 will force assembler to generate
old encoding.
This patch can fix this problem.
In fact if we not willing to support MIPS I or any CPU without ll/sc
at all, we can just remove .set mips2 here.
Index: postgresql-11-11.2/src/include/storage/s_lock.h
===================================================================
--- postgresql-11-11.2.orig/src/include/storage/s_lock.h
+++ postgresql-11-11.2/src/include/storage/s_lock.h
@@ -606,6 +606,13 @@ typedef unsigned int slock_t;
#define TAS(lock) tas(lock)
+
+#if __mips_isa_rev >= 6
+# define MIPS_SET_VER " \n"
+#else
+# define MIPS_SET_VER ".set mips2 \n"
+#endif
+
static __inline__ int
tas(volatile slock_t *lock)
{
@@ -615,7 +622,7 @@ tas(volatile slock_t *lock)
__asm__ __volatile__(
" .set push \n"
- " .set mips2 \n"
+ MIPS_SET_VER
" .set noreorder \n"
" .set nomacro \n"
" ll %0, %2 \n"
@@ -637,7 +644,7 @@ do \
{ \
__asm__ __volatile__( \
" .set push \n" \
- " .set mips2 \n" \
+ MIPS_SET_VER \
" .set noreorder \n" \
" .set nomacro \n" \
" sync \n" \
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Paquier | 2019-06-11 04:55:39 | Re: BUG #15833: defining a comment on a domain constraint fails with wrong OID |
Previous Message | PG Bug reporting form | 2019-06-11 02:54:32 | BUG #15843: Postgresql11 installation fails on Fedora 29 |