Recently I've been updating ports on a really old FreeBSD distribution (7.3-RELEASE for i386) and ran across a few.. hurdles.
First of all 'xz' is not fully supported by the builtin 'tar' - ofc!
So to be able to even start compiling ports using the new 'xz' compression I had to adapt /usr/ports/Mk/bsd.port.mk with the following small patch
Secondly the system doesn't have spawn.h - fixed this by copying it from a newer FreeBSD release.
This did not work for the "bison" port though.
The following works for compiling 'bison' <- this also worked for 'wget'
or for 'portupgrade'
as for 'portupgrade'/'portinstall' I made it easy for myself I added
ac_cv_header_spawn_h=no to MAKE_ARGS in /usr/local/etc/pkgtools.conf for '*'.