-----Forwarded Message-----
From: rmurray@debian.org
To: 139003@bugs.debian.org
Cc: control@bugs.debian.org
Subject: Bug#139003: a little bit more is needed...
Date: 27 Mar 2002 00:21:18 -0800
reopen 139003
thanks
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.
diff -urN postgresql-7.2/src/backend/storage/lmgr/s_lock.c postgresql-7.2.fixed/src/backend/storage/lmgr/s_lock.c
--- postgresql-7.2/src/backend/storage/lmgr/s_lock.c Mon Nov 5 18:46:28 2001
+++ postgresql-7.2.fixed/src/backend/storage/lmgr/s_lock.c Wed Mar 27 07:46:59 2002
@@ -173,9 +173,12 @@.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\