... the advice of the GLIBC developers 
If I remember correctly, when you asked the GLIBC developers, their advice for fpc was to use the signed symbol table (2.2.5) for the declaration of each GLIBC method because if you don't, the linker will do it for you using the latest table installed on the build system.
And it could be that this table is not compatible with the table that fpc (2.2.5) has been using since the beginning. Also link with 'libdl.so.2' (like Delphi, gcc, clang and others can do).
it was quite a while back! as i recall, some of the GLIBC developers thought that without any version numbers specified, the linker
should default to the earliest version available for each symbol, but then this proved to not be the case. they then went on to say that FPC should use the
earliest version numbers available for each symbol. these numbers are available from an examination of
libc.so.6 on the running system, which is what my
MakeBase program in the first posting of the thread (
https://forum.lazarus.freepascal.org/index.php/topic,64731.0.html) does. as i recall, this just happens to be
2.2.5 for all(?) of the libc calls that FPC currently uses. the GLIBC developers also
promised that for the life of the x86_64 platform none of the existing versioned GLIBC symbols would be depreciated - that is if
some_symbol@GLIBC_2.x.y exists in the x86_64 GLIBC today, the exact same symbol
and version will
always exist in every future x86_64 GLIBC released.
cheers,
rob :-)
addendum: attached .zip file containing a list of x86_64 GLIBC symbols with their version numbers