I haven't tried 4.7 yet.
OpenBSD xobsd.jkhome 4.6 obj#0 i386
$ cat 1.c
#include <stdio.h>
#include <pthread.h>
void* thread1(void* a)
{
printf("%p\n", pthread_self());
return 0;
}
int main()
{
pthread_t t1;
printf("%p\n", pthread_self());
pthread_create(&t1, NULL, thread1, 0);
sleep(100);
return 0;
}
$ gcc 1.c -L/usr/X11R6/lib -lX11 -pthread -static
$ ./a.out
0x0
0x0
I use -static deliberately so I can give binaries that work on other OpenBSD
versions.
I give source too, it's not too keep source private, but it is for "ease of
use".
Putting -lpthread (not -pthread) ahead of -lX11 fixes it.
I suppose there is a goal to enable using -lX11 without using -pthread?
And I suppose -static isn't meant to be much supported?
Merging libpthread into libc is the way imho.
- Jay