Index: src/tests/preempt_longrun/create.c
===================================================================
--- src/tests/preempt_longrun/create.c	(revision f3c17371d46f1b32ef02e76b36b88a71b5627031)
+++ src/tests/preempt_longrun/create.c	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
@@ -10,11 +10,11 @@
 }
 
-thread Worker {};
+thread worker_t {};
 
-void main(Worker * this) {}
+void main(worker_t * this) {}
 
 int main(int argc, char* argv[]) {
-	for(int i = 0; i < 250_000ul; i++) {
-		Worker w;
+	for(int i = 0; i < 10_000ul; i++) {
+		worker_t w[7];
 	}
 }
Index: src/tests/preempt_longrun/enter.c
===================================================================
--- src/tests/preempt_longrun/enter.c	(revision f3c17371d46f1b32ef02e76b36b88a71b5627031)
+++ src/tests/preempt_longrun/enter.c	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
@@ -28,8 +28,13 @@
 }
 
+extern "C" {
+static worker_t * workers;
+}
+
 int main(int argc, char * argv[] ) {
 	processor p;
 	{
 		worker_t w[7];
+		workers = w;
 	}
 }
Index: src/tests/preempt_longrun/enter3.c
===================================================================
--- src/tests/preempt_longrun/enter3.c	(revision f3c17371d46f1b32ef02e76b36b88a71b5627031)
+++ src/tests/preempt_longrun/enter3.c	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
@@ -28,8 +28,13 @@
 }
 
+extern "C" {
+static worker_t * workers;
+}
+
 int main(int argc, char * argv[] ) {
 	processor p;
 	{
 		worker_t w[7];
+		workers = w;
 	}
 }
Index: src/tests/preempt_longrun/processor.c
===================================================================
--- src/tests/preempt_longrun/processor.c	(revision f3c17371d46f1b32ef02e76b36b88a71b5627031)
+++ src/tests/preempt_longrun/processor.c	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
@@ -10,7 +10,7 @@
 }
 
-thread Worker {};
+thread worker_t {};
 
-void main(Worker * this) {}
+void main(worker_t * this) {}
 
 int main(int argc, char* argv[]) {
Index: src/tests/preempt_longrun/stack.c
===================================================================
--- src/tests/preempt_longrun/stack.c	(revision f3c17371d46f1b32ef02e76b36b88a71b5627031)
+++ src/tests/preempt_longrun/stack.c	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
@@ -12,15 +12,15 @@
 }
 
-thread Worker {};
+thread worker_t {};
 
-void main(Worker * this) {
+void main(worker_t * this) {
 	volatile long p = 5_021_609ul;
 	volatile long a = 326_417ul;
 	volatile long n = 1l;
-	for (volatile long i = 0; i < p; i++) { 
-		n *= a; 
-		n %= p; 
+	for (volatile long i = 0; i < p; i++) {
+		n *= a;
+		n %= p;
 	}
-		
+
 	if( n != a ) {
 		abort();
@@ -28,8 +28,13 @@
 }
 
+extern "C" {
+static worker_t * workers;
+}
+
 int main(int argc, char* argv[]) {
 	processor p;
 	{
-		Worker w[7];
+		worker_t w[7];
+		workers = w;
 	}
 }
Index: src/tests/preempt_longrun/yield.c
===================================================================
--- src/tests/preempt_longrun/yield.c	(revision f3c17371d46f1b32ef02e76b36b88a71b5627031)
+++ src/tests/preempt_longrun/yield.c	(revision f2b124061d7ce33f53a26142cfc9e83dd99f068a)
@@ -10,7 +10,7 @@
 }
 
-thread Worker {};
+thread worker_t {};
 
-void main(Worker * this) {
+void main(worker_t * this) {
 	for(int i = 0; i < 325_000ul; i++) {
 		yield();
@@ -18,8 +18,13 @@
 }
 
+extern "C" {
+static worker_t * workers;
+}
+
 int main(int argc, char* argv[]) {
 	processor p;
 	{
-		Worker w[7];
+		worker_t w[7];
+		workers = w;
 	}
 }
