2017-06-19 4 views
1

J'essaye de compiler mono sur Solaris 10. J'ai essayé beaucoup de versions de 2.11.4 vers les dernières versions 5.xx d'aujourd'hui. Mais j'ai l'échec tout le temps. J'utilise le matériel Sun-Fire-v240 qui a un processeur SPARC. En outre, la version OS est Oracle Solaris 10 1/13 s10s_u11wos_24a SPARCMono compile sur Solaris

Le problème que je reçois est la suivante:

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

est-il possible de compiler mono pour Solaris, je cherche ce problème pendant un moment, mais je n'avais aucun résultat de travail pour mon cas. Je ne suis pas très bon sur les systèmes UNIX, donc je suppose qu'il me manque quelque chose ...

Merci. Cordialement, Orhan.

Répondre

1

Cela semble être un 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

Je crains de vous dire, cela n'a pas fonctionné. Il donne toujours la même erreur. – OrhanT

+0

@OrhanT Que voyez-vous si vous exécutez 'grep PTHREAD_MUTEX_RECURSIVE/usr/include/*'? –

+0

il imprime '/usr/include/pthread.h:#define PTHREAD_MUTEX_RECURSIVE 0x4' – OrhanT