BUG #15844: MIPS: remove .set mips2 in s_lock.h to fix r6 build

Поиск
Список
Период
Сортировка
От PG Bug reporting form
Тема BUG #15844: MIPS: remove .set mips2 in s_lock.h to fix r6 build
Дата
Msg-id 15844-8f62fe7e163939b3@postgresql.org
обсуждение исходный текст
Ответы Re: BUG #15844: MIPS: remove .set mips2 in s_lock.h to fix r6 build  (Michael Paquier <michael@paquier.xyz>)
Re: BUG #15844: MIPS: remove .set mips2 in s_lock.h to fix r6 build  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: BUG #15844: MIPS: remove .set mips2 in s_lock.h to fix r6 build  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
The following bug has been logged on the website:

Bug reference:      15844
Logged by:          Yunqiang Su
Email address:      wzssyqa@gmail.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" \


В списке pgsql-bugs по дате отправления:

Предыдущее
От: PG Bug reporting form
Дата:
Сообщение: BUG #15843: Postgresql11 installation fails on Fedora 29
Следующее
От: Michael Paquier
Дата:
Сообщение: Re: BUG #15833: defining a comment on a domain constraint fails withwrong OID