Обсуждение: 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 loongarch64loongarch64 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