For those readers who follow the emacs religion: Andreas Fuchs found that the emacs build expects
/usr/lib/crtbegin.o, which does not exist on DragonFly. Rahul Siddharthan removed the mention of crtbegin.o from the makefile for emacs, and that seems to fix it.
Updated: Hiten Pandya added a port override for emacs, made by Aaron Malone. That solves it.