2017-06-19 5 views
1

Solaris 10でモノをコンパイルしようとしています。私は2.11.4から今日の5.xxバージョンまで多くのバージョンを試しました。しかし、私はいつも失敗している。Solarisでモノラルをコンパイル

私はSPARCプロセッサを搭載したSun-Fire-v240ハードウェアを使用しています。 はまた、OSのバージョンのOracle Solaris 10 1/13 s10s_u11wos_24a SPARCある

は私が取得しています問題はこれです:

checking for PTHREAD_MUTEX_RECURSIVE... no 
configure: error: Posix system lacks support for recursive mutexes 

は、Solaris用のモノをコンパイルする方法があり、私が探してきましたこの問題はしばらくありましたが、私のケースでは何の効果もありませんでした。私はUNIXシステムより優れているわけではないので、私は何かを逃していると思います...

ありがとう。 よろしくお願いします。

答えて

1

これはtwo-year-old Mono bugように表示されます。私はこれが働いていなかった、あなたを伝えることを恐れています

Bug 31999 - C99 and XPG5 don't match on Solaris 10+

...

checking for PTHREAD_MUTEX_RECURSIVE... no configure: error: Posix system lacks support for recursive mutexes

which is wrong. In config.log I find

configure:22190: checking for PTHREAD_MUTEX_RECURSIVE 
configure:22206: gcc -m64 -R/vol/gnu/lib/amd64 -c -g -O2 -std=gnu99 -fno-strict-aliasing -fwrapv -DMONO_DLL_EXPORT -Wno-unused-but-set-variable -g -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wno-cast-qual -Wwrite-strings -Wno-switch -Wno-switch-enum -Wno-unused-value -mno-tls-direct-seg-refs -Wno-char-subscripts -I/vol/mono-4.0/include -DGC_SOLARIS_THREADS -DGC_SOLARIS_PTHREADS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DUSE_MMAP -DUSE_MUNMAP -DPLATFORM_SOLARIS -g -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wno-cast-qual -Wwrite-strings -Wno-switch -Wno-switch-enum -Wno-unused-value -DLARGE_CONFIG -D_XOPEN_SOURCE=500 -D__EXTENSIONS__ -D_XOPEN_SOURCE_EXTENDED=1 conftest.c >&5 
In file included from /usr/include/pthread.h:8:0, 
       from conftest.c:106: 
/vol/gcc-4.8/lib/gcc/i386-pc-solaris2.11/4.8.0/include-fixed/sys/feature_tests.h:363:2: 

error: #error "Compiler or options invalid for pre-UNIX 03 X/Open applications and pre-2001 POSIX applications" #error "Compiler or options invalid for pre-UNIX 03 X/Open applications \ ^ conftest.c:108:1: warning: function declaration isn't a prototype [-Wstrict-prototypes] ^ conftest.c:108:1: warning: function declaration isn't a prototype [-Wstrict-prototypes] main() ^ configure:22206: $? = 1 configure: failed program was: [...] configure:22213: result: no configure:22215: error: Posix system lacks support for recursive mutexes

This error is an artefact of the fact that configure.ac has

CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500"

while on Solaris 10 and up C99 can only be used with XPG6/_XOPEN_SOURCE=600. Completely omitting the _XOPEN_SOURCE definition isn't an option since without it, struct msghdr lacks the msg_flags member

+0

。それでも同じエラーが発生しています。 – OrhanT

+0

@OrhanT 'grep PTHREAD_MUTEX_RECURSIVE/usr/include/*'を実行するとどうなりますか? –

+0

'/usr/include/pthread.h:#define PTHREAD_MUTEX_RECURSIVE 0x4'を表示します。 – OrhanT