I'm trying to build glibc 2.42 on a SLES 15 SP 6 machine (yeah, sorry about that, not my choice).
When configuring glibc, I am told:
These critical programs are missing or too old: "GNU ld compiler"
I'm not sure what the GNU ld compiler is. My version of ld is: GNU ld version 2.35.2-43.0.1.el9. Is that the problem? And - what should I do to satisfy glibc's requirements here?
Note:
I think that message is meant to be read with GNU ld and compiler as two separate critical programs that are both too old. The configure script uses those specific strings in different places to build the error message: GNU ld, compiler. (Maybe they'd accept a patch to add a comma.)
Build requirements for glibc are clearly stated in the INSTALL file, which you are meant to read before attempting to build:
So yes, GNU ld 2.35.x is too old.
If you want to try to use it anyway, you can try to hack out the check in the configure script, and see what goes wrong after that. But you're on your own.
Otherwise, install newer binutils. If you can't upgrade the system-installed binutils, you can build or unpack a newer version somewhere else and use --with-binutils to point to it.
You didn't say what compiler version you are using, but the same file says that GCC 12.1 or newer is required. So very likely yours is older than that, and you'll likewise need to upgrade or start hacking.