I just tried replacing both definitions by:
#ifndef COHERENCE_DEFINED
#define COHERENCE_DEFFINED
void (*coherence)(void);
#endif
Still getting (after mk nuke) on mk install:
/usr/bin/ld: kproc-pthreads.o:/inferno/emu/Linux/../port/fns.h:25: multiple definition of `coherence'; os.o:/inferno/emu/Linux/../port/fns.h:25: first defined here
/usr/bin/ld: lock.o:/inferno/emu/Linux/../port/fns.h:25: multiple definition of `coherence'; os.o:/inferno/emu/Linux/../port/fns.h:25: first defined here
/usr/bin/ld: ipif6-posix.o:/inferno/emu/Linux/../port/fns.h:25: multiple definition of `coherence'; os.o:/inferno/emu/Linux/../port/fns.h:25: first defined here
/usr/bin/ld: cmd.o:/inferno/emu/Linux/../port/fns.h:25: multiple definition of `coherence'; os.o:/inferno/emu/Linux/../port/fns.h:25: first defined here
/usr/bin/ld: devmnt.o:/inferno/emu/Linux/../port/fns.h:25: multiple definition of `coherence'; os.o:/inferno/emu/Linux/../port/fns.h:25: first defined here
/usr/bin/ld: win-x11a.o:/inferno/emu/Linux/../port/fns.h:25: multiple definition of `coherence'; os.o:/inferno/emu/Linux/../port/fns.h:25: first defined here