Earlier you wrote something which really doesn't fit in your scheme : >>> On GNU/Linux crti.o comes from glibc, not gcc. It is normally found >>> in /usr/lib. >> On my system that file resides in /usr/lib64/crti.o. So, where is this file, in the "native old root system" or in your new chroot'ed self-made system? Of course in your self-made system the '$LFS/usr/lib64/crti.o' would be the component, from the self-made glibc and the new chroot'ed GCC should find and use it, not the Gentoo one in '/usr/lib64'.
When I'm chrooted, the file in in /usr/lib64/crti.o (which corresponds to $LFS/usr/lib64/crti.o outside of the chroot).
In the Gentoo Linux system, that file is in /usr/lib64/crti.o too, but I have a /usr/lib symlink pointing to /usr/lib64 so it can also be accessed as /usr/lib/crti.o.