Difference between MULTISUBDIR and "-print-multi-os-directory"

CHIGOT, CLEMENT clement.chigot@atos.net
Tue Sep 21 11:25:17 GMT 2021


Hi everyone, 

I'm wondering what is the real difference between the Makefile
variable MULTISUBDIR which is set as the "installed subdirectory name"
and the result of "-print-multi-os-directory" which is the
"the relative path to OS libraries".                
Especially, some GCC libraries' configure are setting the multilib
installed directory named "toolexeclibdir" with "MUTLISUBDIR" when 
"--enable-version-specific-runtime-libs" is enabled and with
"-print-multi-os-directory" without. This is the case for
at least libgfortran and libstdc++.

FYI, the background of this question is that we are trying to enable
a 64bit-built gcc on AIX. We, however, want the library searched 
path generated by GCC to be similar to the 32bit version. This 
means we can't rely on "ppc32" directory which doesn't exist with
the 32bit version.
Thus, we are setting "MULTILIB_MATCH= .=-maix32" to force gcc64 with
-maix32 to use the libraries under ".". They have been adapted to
contain both 32bit and 64bit shared objects. (That's the usual format
of libraries on AIX).
However, this creates a difference between MULTISUBDIR and  
"-print-multi-os-directory". MULTISUBDIR will be set as if 
"MULTILIB_MATCH" wasn't there, for "-maix32" it is "ppc32". 
Whereas "-print-multi-os-directory" with "-maix32" shows ".".       
Thus, regarding if "--enable-version-specific-runtime-libs" is set or
not, the installation directory will be different for us.

Thansk, 
Clément



More information about the Gcc mailing list