I'd like to try out the multiple vm option as I want to have 2 separate OS threads, each running their own copy of gambit - neither of which need to communicate with the other, so I tried to rebuild Gambit using the --enable-multiple-vms option (this is under OS X 10.10 - Yosemite with Xcode6 - 6A313):
quorra:gambit aking$ ./configure --enable-multiple-vms --enable-cplusplus
It ends up showing the following warning:
checking for struct stat64... yes checking for posix threads with CFLAGS=' ' and LIBS=' '... no checking for posix threads with CFLAGS=' -mt' and LIBS=' '... no checking for posix threads with CFLAGS=' -pthread' and LIBS=' '... no checking for posix threads with CFLAGS=' ' and LIBS=' -lpthread'... no checking for win32 threads... no configure: ********************************************************************* *** *** *** A thread system is required for this configuration but none *** *** of the supported thread systems (posix threads and win32 *** *** threads) are available on this platform. The configuration *** *** will proceed as though --disable-thread-system, *** *** --disable-multiple-vms, and --disable-multiple-threaded-vms *** *** were specified. *** *** *** *********************************************************************
Checking config.log, I see:
configure:8106: checking for posix threads with CFLAGS=' ' and LIBS=' -lpthread' configure:8133: g++ -o conftest conftest.cpp -lpthread >&5 conftest.cpp:136:14: error: no matching function for call to 'pthread_join' pthread_join (&thread, NULL); ^~~~~~~~~~~~ /usr/include/pthread.h:336:5: note: candidate function not viable: no known conversion from 'pthread_t *' (aka '_opaque_pthread_t **') to 'pthread_t' (aka '_opaque_pthread_t *') for 1st argument; remove & int pthread_join(pthread_t , void **) __DARWIN_ALIAS_C(pthread_join); ^ 1 error generated. configure:8133: $? = 1
I *know* I have pthreads installed and working as I have 3 different apps all using pthreads on this system. Not sure what's going wrong here - pthread's API change?
Adam