-1

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'm interested in a 32-bit-supporting glibc, and have read this answer.
asked Sep 22, 2025 at 21:47
4
  • Have you considered using one of the many available stacks that puts together a full dependency chain entirely independent of distro-provided tools? Nix (which is what I'd use for most purposes), buildroot (specialized in cross-compilation targeting embedded systems), linuxbrew, etc? Commented Sep 22, 2025 at 22:38
  • 2
    Mind, the config.log file from the directory where you ran configure when your build failed should tell you how ld was tested, which would be valuable information if we're to determine how it was determined not to be suitable (without installing the SLES version at hand ourselves to repro). Commented Sep 22, 2025 at 22:42
  • ...but really, I'd start by using a toolchain that doesn't depend at all on distro-provided tools; that way any problems you hit (other than those linked to kernel version by way of syscall compatibility requirements) can be repro'd by people who don't have SuSE at hand. Commented Sep 22, 2025 at 22:46
  • @CharlesDuffy: I probably should, although every time I build something it's "oh, I just need package X, not a whole system". Commented Sep 23, 2025 at 9:08

1 Answer 1

0

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:

GNU 'binutils' 2.39 or later

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.

answered Sep 23, 2025 at 0:44
Sign up to request clarification or add additional context in comments.

1 Comment

tl;dr: It's "GNU ld, compiler" rather than "GNU ld compiler".

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.