The problem with release 20130715 comes from the OPT_SYSTEM_INTERNAL defined in main.cpp
and used in wiring.h to define _scheduleTask()
Code: Select all
This works with MPIDE because this IDE, just like the Arduino IDE, concatenates all the files of the project in a large single file with main.cpp at the top. Thus OPT_SYSTEM_INTERNAL is taken into account by all the other libraries. This under-the-hood work is performed by an arcane Java script when embedXcode relies solely on GNU make.
With standard GNU tools, each file is compiled separately and linked afterwards. If a variable is defined in a file, it is only taken into account by another file if the later includes the former. For example, main.cpp includes wiring.h: all the variables defined in wiring.h are known by main.cpp.
This is not the case for OPT_SYSTEM_INTERNAL: it is defined in main.cpp but used in wiring.h. main.cpp includes wiring.h, but wiring.h doesn't include main.cpp. So OPT_SYSTEM_INTERNAL is unknown and isn't taken into account by wiring.h, hence the error.
As for other Processing-based Wiring-derived Arduino-like platforms, I 'd like to stress again how important is to ensure a clean implementation, i.e. that allows compilation and linking using the standard GNU toolchain.
Please raise an official ticket about this issue.