So there are multiple ld binaries. /usr/local/bin/ld and /usr/local/bin/ld.bfd are same binaries.
Hum, in my FreeBSD 12.0 there are also /usr/local/bin/ld and /usr/local/bin/ld.bfd, with exactly same size.
But using /usr/local/bin/ld for link with fpc crash the program, using /usr/local/bin/ld.bfd is ok.
So it is obvious that the 2 binaries are not the same.
So maybe that in the new binutils, /usr/local/bin/ld and /usr/local/bin/ld.bfd are in fact the same now.
If somebody knows the logical of the FreeBSD package, I am interested to have some explanation.