summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVolker Grabsch <vog@notjusthosting.com>2010-05-16 16:06:17 (GMT)
committerVolker Grabsch <vog@notjusthosting.com>2010-05-16 16:06:17 (GMT)
commit335a9b234263af534ba8c1330528d9db823c8da2 (patch)
treeca348448cd8908a596474010b0d1300051194ec8 /src
parentb6ee0378c5a00d9cfadb6c308a513bed6c6ef845 (diff)
downloadmxe-335a9b234263af534ba8c1330528d9db823c8da2.zip
mxe-335a9b234263af534ba8c1330528d9db823c8da2.tar.gz
mxe-335a9b234263af534ba8c1330528d9db823c8da2.tar.bz2
test program for package pthreads (by Martin Lambers)
Diffstat (limited to 'src')
-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