This BSD use the gold linker as the default linker. I tried to get FPC + Laz running on it using the last version of Fpcupdeluxe for it (Don no longer build for it). I don't know why despite ld.bfd already there, even after I replace /usr/bin/ld with ld.bfd, fpc still try to call ld.gold instead, it's unreasonable. I could workaround the linker issue with this script:
#!/usr/local/bin/bash
mv /usr/bin/ld /usr/bin/ld.old
cp /usr/bin/ld.bfd /usr/bin/ld
mv /usr/libexec/binutils227/elf/ld.gold /usr/libexec/binutils227/elf/ld.gold.old
cp /usr/libexec/binutils227/elf/ld.bfd /usr/libexec/binutils227/elf/ld.gold
Now fpc picks the new ld.gold (which indeed is ld.bfd) and the linker issue was resolved. The new problem is it failed because missing of unit lnet or something like that as I recall. Both stable or trunk have the same error.