https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105487
--- Comment #6 from Paul Smith <psmith at gnu dot org> --- If it is really required, then the GCC configure script or makefile or something should detect this situation and fail. There's nothing in the current build system or documentation that says this is needed and I don't see how any reasonable person would be expected to guess this. My personal opinion is that it's not correct to require unwanted and unnecessary directories to exist, just so that relative pathname lookups to completely unrelated directories can succeed. Here's how to reproduce: * Create an empty directory. * Obtain the necessary 64bit library packages (for example, the 64bit versions of glibc / glibc-common / glibc-devel / glibc-headers / libgcc RPMs from a CentOS repository--you might need kernel-headers too). * Unpack them into the empty directory (for example, using rpm2cpio). * Build GCC with that directory as the sysroot. * Witness failure. The 64bit library RPMs do not (as they shouldn't!) create or put any content into the /usr/lib directory, so it won't exist in your sysroot. In order to have <sysroot>/usr/lib show up, you have to either install the 32bit library packages, which we don't want or need, or else understand enough about what's going on to create that directory by hand (and dump a ".keep" file or something in it to be sure that empty directory pruning doesn't delete it again).