So I'm testing out building a PD project with Eclipse, using master branch.

In default_libpd_render.cpp (line 289) we have:

#ifdef PD_THREADED_IO
void fdLoop(void* arg){
	while(!gShouldStop){
		sys_doio();
		usleep(3000);
	}
}
#endif /* PD_THREADED_IO */

at line 170:

#ifdef PD_THREADED_IO
EXTERN void sys_doio(t_pdinstance* pd_that);
EXTERN void sys_dontmanageio(int status);
#endif

At line 64:

#define PD_THEADED_IO

So the call to sys_doio() is missing the parameter.

Could it be because you copied the libpd includes BEFORE you did update_board? If you check the files in /usr/local/include/libpd now you should see they take the same arguments as used in the default_libpd_render.cpp you have on your board.

This is a version on my mac that I just checked out from github, maybe I did something wrong, let me check...

The libpd includes, you need to get them from your board after you do update_board, and you should also ensure you have the same version of the core code on the host and on the board.

I now realise that EXTERN void sys_doio(t_pdinstance* pd_that); was in another include, I used "Open Declaration" in Eclipse and didn't realise it had opened another file. Doh 2 for the day.