Orh*_*anT 5 c# mono mutex solaris sparc
我正在尝试在 Solaris 10 上编译 mono。我尝试了很多版本,从 2.11.4 到今天最新的 5.xx 版本。但我总是失败。
我正在使用具有 SPARC 处理器的Sun-Fire-v240硬件。此外,操作系统版本为Oracle Solaris 10 1/13 s10s_u11wos_24a SPARC
我遇到的问题是:
checking for PTHREAD_MUTEX_RECURSIVE... no
configure: error: Posix system lacks support for recursive mutexes
Run Code Online (Sandbox Code Playgroud)
有没有办法为 Solaris 编译单声道,我一直在寻找这个问题一段时间,但我的案例没有工作结果。我不太擅长 UNIX 系统,所以我想我错过了一些东西......
谢谢你。最好的问候,奥尔罕。
这似乎是一个已有两年历史的 Mono bug,Bug 31999 - C99 和 XPG5 在 Solaris 10+ 上不匹配:
Run Code Online (Sandbox Code Playgroud)checking for PTHREAD_MUTEX_RECURSIVE... no configure: error: Posix system lacks support for recursive mutexes
这是不正确的。在 config.log 中我发现
Run Code Online (Sandbox Code Playgroud)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 -Wunuse d -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wmissing-pro totypes -Wnested-externs -Wpointer-arith -Wno-cast-qual -Wwrite-strings -Wno-swi tch -Wno-switch-enum -Wno-unused-value -mno-tls-direct-seg-refs -Wno-char-subscr ipts -I/vol/mono-4.0/include -DGC_SOLARIS_THREADS -DGC_SOLARIS_PTHREADS -D_REENT RANT -D_POSIX_PTHREAD_SEMANTICS -DUSE_MMAP -DUSE_MUNMAP -DPLATFORM_SOLARIS -g -W all -Wunused -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -W missing-prototypes -Wnested-externs -Wpointer-arith -Wno-cast-qual -Wwrite-strin gs -Wno-switch -Wno-switch-enum -Wno-unused-value -DLARGE_CONFIG -D_XOPEN_SOURC E=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_test s.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
此错误是由configure.ac 造成的
CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500"
Run Code Online (Sandbox Code Playgroud)
而在 Solaris 10 及更高版本上,C99 只能与 XPG6/_XOPEN_SOURCE=600 一起使用。完全省略 _XOPEN_SOURCE 定义不是一个选项,因为没有它,<sys/socket.h>struct msghdr 就会缺少 msg_flags 成员。
| 归档时间: |
|
| 查看次数: |
494 次 |
| 最近记录: |