Looks like a small patch is needed as well to do the right thing on Linux.

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
This commit is contained in:
Bruce Momjian 2002-04-05 11:38:13 +00:00
parent b9ae55f2aa
commit 3cbe6b2478
1 changed files with 4 additions and 1 deletions

View 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\