い〜さねっと

雑多メモ

8.0-CURRENT で devel/pth がインストールできない状態

Gnomeのインストールをしようとすると,エラーが出力されて止まった

In file included from pth_p.h.in:35,
from pthread.c:43:
/usr/include/signal.h:75: error: conflicting types for 'pthread_kill'
pthread.h:357: error: previous declaration of 'pthread_kill' was here
*** Error code 1


これはなにやら,8.0-CURRENTで起こる問題らしい
http://www.freebsd.org/cgi/query-pr.cgi?pr=132828
pthread_kill()関数が衝突して起こっている問題らしい
解決策としては,signal.hを含めなければいいらしい
試しに,指定されているファイルをみてみると,確かに8.0-CURRENTは特殊な処置をしようとしている
けどこれが上手くいってないんかな?

# cd /usr/ports/devel/pth/files
# vi patch-pth_p.h.in
--- pth_p.h.in.orig     2009-04-12 21:27:26.000000000 +0300
+++ pth_p.h.in  2009-04-12 21:38:56.000000000 +0300
@@ -32,7 +32,10 @@
 #include <stdarg.h>
 #include <string.h>
 #include <setjmp.h>
+#if !(defined(__FreeBSD__) && __FreeBSD_version >= 800070)
+/* See http://www.freebsd.org/cgi/query-pr.cgi?pr=132828 */
 #include <signal.h>
+#endif /* FreeBSD */
 #include <unistd.h>
 #include <fcntl.h>
 #include <errno.h>


しかしながら,どうやるかよくわからなかったので強引に力技でやってみることに

# cd /usr/include/
# vi signal.h
/*int     pthread_kill(__pthread_t, int);*/


これで,devel/pthがインストールできた
ただ,これでいいのかは不明,というかよくない気もする
後は普通にGnomeをインストールしてやるとできた


ただ,nvidiaさんは相変わらずご機嫌斜めやけど