[riot-notifications] [RIOT] Native: build of vtimer_msg test fails on OS X (#3175)
notifications at github.com
Tue Jun 16 01:44:54 CEST 2015
This also happens when running the entire test suite `cd tests/unittests && make`
My output is slightly different (different location of task.h), but essentially the same error:
~/c/R/t/unittests (master) $ make
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Building application "unittests" for "native" with MCU "native".
"/Applications/Xcode.app/Contents/Developer/usr/bin/make" -C /Users/me/code/RIOT/boards/native
"/Applications/Xcode.app/Contents/Developer/usr/bin/make" -C /Users/me/code/RIOT/boards/native/drivers
"/Applications/Xcode.app/Contents/Developer/usr/bin/make" -C /Users/me/code/RIOT/core
"/Applications/Xcode.app/Contents/Developer/usr/bin/make" -C /Users/me/code/RIOT/cpu/native
In file included from /Users/me/code/RIOT/cpu/native/hwtimer_cpu.c:47:
In file included from /Users/me/code/RIOT/core/include/debug.h:34:
/Users/me/code/RIOT/core/include/thread.h:138:14: error: conflicting types for 'thread_create'
kernel_pid_t thread_create(char *stack,
/usr/include/mach/task.h:193:15: note: previous declaration is here
1 error generated.
make: *** [/Users/me/code/RIOT/tests/unittests/bin/native/cpu/hwtimer_cpu.o] Error 1
make: *** [ALL--/Users/me/code/RIOT/cpu/native] Error 2
make: *** [all] Error 2
The issue is `cpu/native/hwtimer_cpu.c` on OSX includes `mach/mach.h` which includes `mach/mach_interface.h` which includes `mach/task.h` which defines `thread_create()` which conflicts with Riot's own `thread_create()`.
I see two solutions:
* Rename the conflicting method(s). Downside is `thread_create()` is a good and existing name.
* Rework the mach dependencies, which is possible. This works for the time being. I was able to get past the error with the following change:
diff --git a/cpu/native/hwtimer_cpu.c b/cpu/native/hwtimer_cpu.c
index 2dc9f1b..4fe0e17 100644
@@ -23,7 +23,8 @@
Reply to this email directly or view it on GitHub:
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the notifications