summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/pthreads-test.c39
-rw-r--r--src/pthreads.mk5
2 files changed, 44 insertions, 0 deletions
diff --git a/src/pthreads-test.c b/src/pthreads-test.c
new file mode 100644
index 0000000..fe212b5
--- /dev/null
+++ b/src/pthreads-test.c
@@ -0,0 +1,39 @@
+/* This file is part of mingw-cross-env. */
+/* See doc/index.html for further information. */
+
+#include <stdio.h>
+#include <pthread.h>
+
+#define N 10
+
+void *thread_fn(void *p)
+{
+ const int *arg = p;
+ fprintf(stderr, "Hello from thread %d\n", *arg);
+ return NULL;
+}
+
+int main(int argc, char *argv[])
+{
+ pthread_t threads[N];
+ int args[N];
+ int i;
+
+ (void)argc;
+ (void)argv;
+
+ for (i = 0; i < N; i++) {
+ args[i] = i;
+ if (pthread_create(threads + i, NULL, thread_fn, args + i) != 0) {
+ return 1;
+ }
+ }
+
+ for (i = 0; i < N; i++) {
+ if (pthread_join(threads[i], NULL) != 0) {
+ return 2;
+ }
+ }
+
+ return 0;
+}
diff --git a/src/pthreads.mk b/src/pthreads.mk
index edfc8d3..813a229 100644
--- a/src/pthreads.mk
+++ b/src/pthreads.mk
@@ -31,4 +31,9 @@ define $(PKG)_BUILD
$(INSTALL) -m664 '$(1)/pthread.h' '$(PREFIX)/$(TARGET)/include/'
$(INSTALL) -m664 '$(1)/sched.h' '$(PREFIX)/$(TARGET)/include/'
$(INSTALL) -m664 '$(1)/semaphore.h' '$(PREFIX)/$(TARGET)/include/'
+
+ '$(TARGET)-gcc' \
+ -W -Wall -Werror -ansi -pedantic \
+ '$(2).c' -o '$(PREFIX)/$(TARGET)/bin/test-pthreads.exe' \
+ -lpthread -lws2_32
endef