I got past this error, at least.
$ su -
# pkg install gcc46
# exit
$ export IMAKECPP=/usr/local/bin/cpp46
$ xmkmf
It built, it installed, and it works exactly on my new FreeBSD 11.1-RELEASE #Unix PC like it did on my old Debian Jessie #Linux PC!
Have the fruits of my labor: http://files.thornton2.com/packages/unix/xcal-4.1-patched-for-freebsd.tar.gz
Inside is the unpatched xcal 4.1 source tarball from Debian Sid (as of last week), my patch file, and my notes for applying the patch.
(Packages screenies & desc: https://screenshots.debian.net/package/xcal )
I don't expect it matters to too many other people, but I'm excited and happy. Anyway, a screenie (croppped) of xcal running and partly customized on my PC: https://computerfairi.es/media/W40bNZdWr2Bhudlybqw
(My window manager is x11-wm/wmx.)
I don't know if I need a version of gcc so old, but I'm wearing out.