Неизвестный тип при компиляции XZ Utils на MinGW/MSYS2
Я пытался скомпилировать XZ Utils, используя MinGW-w64 и при попытке запустить make
после ./configure
Я получаю ошибку, sigset_t
неизвестно
Версия XZ Utils - 5.2.3, а мой MinGW-w64 - x86_64-7.2.0-posix-seh-rt_v5-rv1
,
In file included from common/common.h:17:0,
from common/common.c:13:
../../src/common/mythread.h:138:33: error: unknown type name 'sigset_t'
mythread_sigmask(int how, const sigset_t *restrict set,
^~~~~~~~
../../src/common/mythread.h:139:3: error: unknown type name 'sigset_t'; did you mean '_sigset_t'?
sigset_t *restrict oset)
^~~~~~~~
_sigset_t
../../src/common/mythread.h: In function 'mythread_create':
../../src/common/mythread.h:158:2: error: unknown type name 'sigset_t'; did you mean '_sigset_t'?
sigset_t old;
^~~~~~~~
_sigset_t
../../src/common/mythread.h:159:2: error: unknown type name 'sigset_t'; did you mean '_sigset_t'?
sigset_t all;
^~~~~~~~
_sigset_t
../../src/common/mythread.h:160:2: warning: implicit declaration of function 'sigfillset' [-Wimplicit-function-declaration]
sigfillset(&all);
^~~~~~~~~~
../../src/common/mythread.h:162:2: warning: implicit declaration of function 'mythread_sigmask'; did you mean 'pthread_sigmask'? [-Wimplicit-function-declaration]
mythread_sigmask(SIG_SETMASK, &all, &old);
^~~~~~~~~~~~~~~~
pthread_sigmask
Я проверил signal.h
за sigset_t
с помощью gcc -E - <<< "#include <signal.h>" | grep sigset_t
и ничего не нашел. Теперь мне было интересно, если это ограничение MinGW и, если да, есть ли способ обойти это.
1 ответ
https://github.com/Alexpux/mingw-w64/blob/master/mingw-w64-headers/crt/sys/types.h#L110
#ifdef _POSIX
typedef _sigset_t sigset_t;
#endif
Похоже, это будет определено, только если определено _POSIX. Это также в sys / types.h против signal.h...