Chris Moline wrote:
[...] then i tried compiling it with
gcc test.c -I/usr/X11R6/include -lSM -lICE -L/usr/X11R6/lib -lX11 -lXext
-lXmu -lXt -lXi -lm -pthread -lGL
this compiles with no errors. running ./a.out gives hello world!. [...]
I assume that FreeBSD uses Mesa as its OpenGL implementation. During Mesa's
build it is tested if compiling with and linking with -lpthread
gives access to pthread_create. In that case, a thread-safe variant of Mesa
is built (thread-safe dispatch, per-thread OpenGL context, etc.). Of course
this requires linking any OpenGL application with pthreads.
Plausible as this explanation is, I've got no idea why the explicit
-pthread is needed only for FreeBSD, perhaps some FreeBSD guru can
enlighten me. Maybe I have to adjust the configure magic one more
time. *sigh*
The fix is simple (Bourne shell syntax):
LDFLAGS="-pthread" ./configure
Cheers,
S.