error: #error PostgreSQL does not have native spinlock support on this platform. error: unknown type name ‘slock_t’
[root@localhost build]# uname -a
Linux localhost.localdomain 4.19.90-23.19.v2101.a.ky10.loongarch64 #1 SMP Mon Sep 13 22:33:20 CST 2021 loongarch64 loongarch64 loongarch64 GNU/Linux
-------------------------------
../../src/include/storage/s_lock.h:946:2: error: #error PostgreSQL does not have native spinlock support on this platform. To continue the compilation, rerun configure using --disable-spinlocks. However, performance will be poor. Please report this to .
#error PostgreSQL does not have native spinlock support on this platform. To continue the compilation, rerun configure using --disable-spinlocks. However, performance will be poor. Please report this to pgsql-bugs@lists.postgresql.org.
^~~~~
../../src/include/storage/s_lock.h:1018:25: error: unknown type name ‘slock_t’
extern int tas(volatile slock_t *lock); /* in port/.../tas.s, or
^~~~~~~
../../src/include/storage/s_lock.h:1028:8: error: unknown type name ‘slock_t’
extern slock_t dummy_spinlock;
^~~~~~~
../../src/include/storage/s_lock.h:1033:28: error: unknown type name ‘slock_t’
extern int s_lock(volatile slock_t *lock, const char *file, int line, const char *func);
^~~~~~~
In file included from ../../src/include/utils/sharedtuplestore.h:18,
from ../../src/include/nodes/execnodes.h:26,
from ../../src/include/executor/execdesc.h:18,
from ../../src/include/executor/executor.h:17,
from ../../src/include/funcapi.h:22,
from adminpack.c:23:
../../src/include/storage/sharedfileset.h:29:2: error: unknown type name ‘slock_t’
slock_t mutex; /* mutex protecting the reference count */
^~~~~~~
In file included from ../../src/include/nodes/execnodes.h:32,
from ../../src/include/executor/execdesc.h:18,
from ../../src/include/executor/executor.h:17,
from ../../src/include/funcapi.h:22,
from adminpack.c:23:
../../src/include/storage/condition_variable.h:30:2: error: unknown type name ‘slock_t’
slock_t mutex; /* spinlock protecting the wakeup list */
^~~~~~~
In file included from ../../src/include/executor/execdesc.h:18,
from ../../src/include/executor/executor.h:17,
from ../../src/include/funcapi.h:22,
from adminpack.c:23:
../../src/include/nodes/execnodes.h:1560:2: error: unknown type name ‘slock_t’
slock_t mutex;
^~~~~~~
make[1]: *** [<内置>:adminpack.o] 错误 1
On Sat, 17 Sep 2022 at 14:38, 大坏蛋! <769323213@qq.com> wrote:
[root@localhost build]# uname -a
Linux localhost.localdomain 4.19.90-23.19.v2101.a.ky10.loongarch64 #1 SMP Mon Sep 13 22:33:20 CST 2021 loongarch64 loongarch64 loongarch64 GNU/Linux
IIRC, PostgreSQL do not support loongarch platform, so if you want to
use PostgreSQL on loongarch, you can a) disable spinlock when executing
configure (not recommended for production) or b) implement a spinlock
for PostgreSQL on loongarch64 platform.
Maybe you could encounter other questions on loongarch, I'm not sure.
--
Regrads,
Japin Li.
ChengDu WenWu Information Technology Co.,Ltd.
Japin Li <japinli@hotmail.com> writes:
IIRC, PostgreSQL do not support loongarch platform, so if you want to
use PostgreSQL on loongarch, you can a) disable spinlock when executing
configure (not recommended for production) or b) implement a spinlock
for PostgreSQL on loongarch64 platform.
Wikipedia suggests that loongarch is more or less a MIPS clone,
so maybe you could adapt the MIPS stanza in s_lock.h to work.
Do "make check" in src/backend/storage/lmgr for a basic smoke-test
of new spinlock code.
regards, tom lane