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