error: #error PostgreSQL does not have native spinlock support on this platform. error: unknown type name ‘slock_t’

Started by 大坏蛋!over 3 years ago3 messagesbugs
Jump to latest
#1大坏蛋!
769323213@qq.com

[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]: *** [<内置&gt;:adminpack.o] 错误 1

#2Japin Li
japinli@hotmail.com
In reply to: 大坏蛋! (#1)
Re: error: #error PostgreSQL does not have native spinlock support on this platform. error: unknown type name ‘slock_t’

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.

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Japin Li (#2)
Re: error: #error PostgreSQL does not have native spinlock support on this platform. error: unknown type name ‘slock_t’

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