Looks like a small patch is needed as well to do the right thing on Linux.
authorBruce Momjian <bruce@momjian.us>
Fri, 5 Apr 2002 11:38:13 +0000 (11:38 +0000)
committerBruce Momjian <bruce@momjian.us>
Fri, 5 Apr 2002 11:38:13 +0000 (11:38 +0000)
The patch enables the mips2 ISA for the ll/sc operations, and then restores
it when done.  The kernel/libc emulation code will take over on CPUs without
ll/sc, and on CPUs with it, it'll use the operations provided by the CPU.

Combined with the earlier fix (removing -mips2), postgresql builds again on
mips and mipsel.  The patch is against 7.2-7.

Oliver Elphick

src/backend/storage/lmgr/s_lock.c

index ea7b40581e4c562260923a8261de540bccaf15c9..80f4b654970059d70246f7bf2763d98aa750b050 100644 (file)
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/storage/lmgr/s_lock.c,v 1.5 2001/11/05 17:46:28 momjian Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/storage/lmgr/s_lock.c,v 1.6 2002/04/05 11:38:13 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -173,9 +173,12 @@ tas_dummy()
 .global    tas                     \n\
 tas:                           \n\
            .frame  $sp, 0, $31 \n\
+           .set push       \n\
+           .set mips2      \n\n
            ll      $14, 0($4)  \n\
            or      $15, $14, 1 \n\
            sc      $15, 0($4)  \n\
+           .set pop            \n\
            beq     $15, 0, fail\n\
            bne     $14, 0, fail\n\
            li      $2, 0       \n\