Message ID | d93cbf5d-bbc5-4e4c-8655-a80be16287b1@BAMAIL02.ba.imgtec.org |
---|---|
State | New |
Headers | show |
Hi Steve, Having worked on the new layout I of course am happy with it. I think it makes the cross compiled sysroots much easier to use for installing on a target as well as making the library paths match for cross compiled and native. A couple of minor things... > diff --git a/gcc/config/mips/mti-linux.h b/gcc/config/mips/mti-linux.h > index 80d5925..32b84d1 100644 > --- a/gcc/config/mips/mti-linux.h > +++ b/gcc/config/mips/mti-linux.h > @@ -18,16 +18,20 @@ along with GCC; see the file COPYING3. If not see > <http://www.gnu.org/licenses/>. */ > > /* This target is a multilib target, specify the sysroot paths. */ > +#define MIPS_SYSVERSION_SPEC \ > + "%{mips32:r1}%{mips64:r1}%{mips32r2:r2}%{mips64r2:r2}%{mips32r6:r6}%{mips64r6:r6}%{mips16:-mips16}" > + I know we had long lines before in this file but can't we split this line safely like: "%{mips32:r1}%{mips64:r1}%{mips32r2:r2}%{mips64r2:r2}%{mips32r6:r6}" \ "%{mips64r6:r6}%{mips16:-mips16}" > #undef SYSROOT_SUFFIX_SPEC > -#if MIPS_ISA_DEFAULT == 33 /* mips32r2 is the default */ > -#define SYSROOT_SUFFIX_SPEC \ > - "%{mips32:/mips32}%{mips64:/mips64}%{mips64r2:/mips64r2}%{mips32r6:/mips32r6}%{mips64r6:/mips64r6}%{mips16:/mips16}%{mmicromips:/micromips}%{mabi=64:/64}%{mel|EL:/el}%{msoft-float:/sof}%{!mips32r6:%{!mips64r6:%{mnan=2008:/nan2008}}}" > -#elif MIPS_ISA_DEFAULT == 37 /* mips32r6 is the default */ > #define SYSROOT_SUFFIX_SPEC \ > - "%{mips32:/mips32}%{mips64:/mips64}%{mips32r2:/mips32r2}%{mips64r2:/mips64r2}%{mips64r6:/mips64r6}%{mips16:/mips16}%{mmicromips:/micromips}%{mabi=64:/64}%{mel|EL:/el}%{msoft-float:/sof}%{!mips32r6:%{!mips64r6:%{mnan=2008:/nan2008}}}" > -#else /* Unexpected default ISA. */ > -#error No SYSROOT_SUFFIX_SPEC exists for this default ISA > -#endif > + "/%{mmicromips:micro}mips%{mel|EL:el}-"MIPS_SYSVERSION_SPEC"%{msoft-float:-soft;:-hard}%{!mips32r6:%{!mips64r6:%{mnan=2008:-nan2008}}}%{muclibc:-uclibc}" > + Similarly here. > +#define SYSROOT_HEADERS_SUFFIX_SPEC SYSROOT_SUFFIX_SPEC > + > +#undef STARTFILE_PREFIX_SPEC > +#define STARTFILE_PREFIX_SPEC \ > + "%{mabi=32: /usr/local/lib/ /lib/ /usr/lib/} \ > + %{mabi=n32: /usr/local/lib32/ /lib32/ /usr/lib32/} \ > + %{mabi=64: /usr/local/lib64/ /lib64/ /usr/lib64/}" > > #undef DRIVER_SELF_SPECS > #define DRIVER_SELF_SPECS \ > diff --git a/gcc/config/mips/t-img-linux b/gcc/config/mips/t-img-linux > index 86b0a26..93d81920 100644 > --- a/gcc/config/mips/t-img-linux > +++ b/gcc/config/mips/t-img-linux > @@ -23,8 +23,16 @@ MULTILIB_OPTIONS = mips64r6 mabi=64 EL > MULTILIB_DIRNAMES = mips64r6 64 el > MULTILIB_MATCHES = EL=mel EB=meb > > -# The 64 bit ABI is not supported on the mips32r6 architecture. > -# Because mips32r6 is the default we can't use that flag to trigger > -# the exception so we check for mabi=64 with no specific mips > -# architecture flag instead. > -MULTILIB_EXCEPTIONS += mabi=64* > +MULTILIB_REQUIRED = > +MULTILIB_OSDIRNAMES = .=mips-r6-hard/lib Why no exclamation (!) here? I understand the ! is supposed to prevent the tools from searching any other directory. Is it redundant on the default multilib? > +MULTILIB_REQUIRED += mips64r6 > +MULTILIB_OSDIRNAMES += mips64r6=!mips-r6-hard/lib32 > +MULTILIB_REQUIRED += mips64r6/mabi=64 > +MULTILIB_OSDIRNAMES += mips64r6/mabi.64=!mips-r6-hard/lib64 > + > +MULTILIB_REQUIRED += EL > +MULTILIB_OSDIRNAMES += EL=!mipsel-r6-hard/lib > +MULTILIB_REQUIRED += mips64r6/EL > +MULTILIB_OSDIRNAMES += mips64r6/EL=!mipsel-r6-hard/lib32 > +MULTILIB_REQUIRED += mips64r6/mabi=64/EL > +MULTILIB_OSDIRNAMES += mips64r6/mabi.64/EL=!mipsel-r6-hard/lib64 > diff --git a/gcc/config/mips/t-mti-linux b/gcc/config/mips/t-mti-linux > index c0dcbf0..2404c4ca 100644 > --- a/gcc/config/mips/t-mti-linux > +++ b/gcc/config/mips/t-mti-linux > @@ -23,26 +23,136 @@ MULTILIB_OPTIONS = mips32/mips64/mips64r2 mips16/mmicromips mabi=64 EL msoft-flo > MULTILIB_DIRNAMES = mips32 mips64 mips64r2 mips16 micromips 64 el sof nan2008 > MULTILIB_MATCHES = EL=mel EB=meb mips32r2=mips32r3 mips32r2=mips32r5 mips64r2=mips64r3 mips64r2=mips64r5 > > -# The 64 bit ABI is not supported on the mips32 architecture. > -MULTILIB_EXCEPTIONS += *mips32*/*mabi=64* > - > -# The 64 bit ABI is not supported on the mips32r2 architecture. > -# Because mips32r2 is the default we can't use that flag to trigger > -# the exception so we check for mabi=64 with no specific mips > -# architecture flag instead. > -MULTILIB_EXCEPTIONS += mabi=64* > - > -# We do not want to build mips16 versions of mips64* architectures. > -MULTILIB_EXCEPTIONS += *mips64*/*mips16* > -MULTILIB_EXCEPTIONS += *mips16/mabi=64* > - > -# We only want micromips for mips32r2 architecture. > -MULTILIB_EXCEPTIONS += *mips32/mmicromips* > -MULTILIB_EXCEPTIONS += *mips64*/mmicromips* > -MULTILIB_EXCEPTIONS += *mmicromips/mabi=64* > - > -# We do not want nan2008 libraries for soft-float, > -# mips32[r1], or mips64[r1]. > -MULTILIB_EXCEPTIONS += *msoft-float*/*mnan=2008* > -MULTILIB_EXCEPTIONS += *mips32/*mnan=2008* > -MULTILIB_EXCEPTIONS += *mips64/*mnan=2008* > +MULTILIB_REQUIRED = > +MULTILIB_OSDIRNAMES = .=mips-r2-hard/lib Likewise. > +MULTILIB_REQUIRED += mips64r2 > +MULTILIB_OSDIRNAMES += mips64r2=!mips-r2-hard/lib32 > +MULTILIB_REQUIRED += mips64r2/mabi=64 > +MULTILIB_OSDIRNAMES += mips64r2/mabi.64=!mips-r2-hard/lib64 > + > +MULTILIB_REQUIRED += mnan=2008 > +MULTILIB_OSDIRNAMES += mnan.2008=mips-r2-hard-nan2008/lib Doesn't this case need the '!'? > +MULTILIB_REQUIRED += mips64r2/mnan=2008 > +MULTILIB_OSDIRNAMES += mips64r2/mnan.2008=!mips-r2-hard-nan2008/lib32 > +MULTILIB_REQUIRED += mips64r2/mabi=64/mnan=2008 > +MULTILIB_OSDIRNAMES += mips64r2/mabi.64/mnan.2008=!mips-r2-hard-nan2008/lib64 > + > +MULTILIB_REQUIRED += msoft-float > +MULTILIB_OSDIRNAMES += msoft-float=mips-r2-soft/lib Likewise. > +MULTILIB_REQUIRED += mips64r2/msoft-float > +MULTILIB_OSDIRNAMES += mips64r2/msoft-float=!mips-r2-soft/lib32 > +MULTILIB_REQUIRED += mips64r2/mabi=64/msoft-float > +MULTILIB_OSDIRNAMES += mips64r2/mabi.64/msoft-float=!mips-r2-soft/lib64 > + > +#MULTILIB_REQUIRED += msoft-float/mnan=2008 > +#MULTILIB_OSDIRNAMES += msoft-float/mnan.2008=mips-r2-soft-nan2008/lib Likewise. > +#MULTILIB_REQUIRED += mips64r2/msoft-float/mnan=2008 > +#MULTILIB_OSDIRNAMES += mips64r2/msoft-float/mnan.2008=!mips-r2-soft-nan2008/lib32 > +#MULTILIB_REQUIRED += mips64r2/mabi=64/msoft-float/mnan=2008 > +#MULTILIB_OSDIRNAMES += mips64r2/mabi.64/msoft-float/mnan.2008=!mips-r2-soft-nan2008/lib64 > + > +MULTILIB_REQUIRED += EL > +MULTILIB_OSDIRNAMES += EL=!mipsel-r2-hard/lib > +MULTILIB_REQUIRED += mips64r2/EL > +MULTILIB_OSDIRNAMES += mips64r2/EL=!mipsel-r2-hard/lib32 > +MULTILIB_REQUIRED += mips64r2/mabi=64/EL > +MULTILIB_OSDIRNAMES += mips64r2/mabi.64/EL=!mipsel-r2-hard/lib64 > + > +MULTILIB_REQUIRED += EL/mnan=2008 > +MULTILIB_OSDIRNAMES += EL/mnan.2008=!mipsel-r2-hard-nan2008/lib > +MULTILIB_REQUIRED += mips64r2/EL/mnan=2008 > +MULTILIB_OSDIRNAMES += mips64r2/EL/mnan.2008=!mipsel-r2-hard-nan2008/lib32 > +MULTILIB_REQUIRED += mips64r2/mabi=64/EL/mnan=2008 > +MULTILIB_OSDIRNAMES += mips64r2/mabi.64/EL/mnan.2008=!mipsel-r2-hard-nan2008/lib64 > + > +MULTILIB_REQUIRED += EL/msoft-float > +MULTILIB_OSDIRNAMES += EL/msoft-float=!mipsel-r2-soft/lib > +MULTILIB_REQUIRED += mips64r2/EL/msoft-float > +MULTILIB_OSDIRNAMES += mips64r2/EL/msoft-float=!mipsel-r2-soft/lib32 > +MULTILIB_REQUIRED += mips64r2/mabi=64/EL/msoft-float > +MULTILIB_OSDIRNAMES += mips64r2/mabi.64/EL/msoft-float=!mipsel-r2-soft/lib64 > + > +#MULTILIB_REQUIRED += EL/msoft-float/mnan=2008 > +#MULTILIB_OSDIRNAMES += EL/msoft-float/mnan.2008=!mipsel-r2-soft-nan2008/lib > +#MULTILIB_REQUIRED += mips64r2/EL/msoft-float/mnan=2008 > +#MULTILIB_OSDIRNAMES += mips64r2/EL/msoft-float/mnan.2008=!mipsel-r2-soft-nan2008/lib32 > +#MULTILIB_REQUIRED += mips64r2/mabi=64/EL/msoft-float/mnan=2008 > +#MULTILIB_OSDIRNAMES += mips64r2/mabi.64/EL/msoft-float/mnan.2008=!mipsel-r2-soft-nan2008/lib64 > + > +# We will not include any 64 bit mips16 combinations. > +MULTILIB_REQUIRED += mips16 > +MULTILIB_OSDIRNAMES += mips16=!mips-r2-mips16-hard/lib > +MULTILIB_REQUIRED += mips16/mnan=2008 > +MULTILIB_OSDIRNAMES += mips16/mnan.2008=!mips-r2-mips16-hard-nan2008/lib > +MULTILIB_REQUIRED += mips16/msoft-float > +MULTILIB_OSDIRNAMES += mips16/msoft-float=!mips-r2-mips16-soft/lib > +#MULTILIB_REQUIRED += mips16/msoft-float/mnan=2008 > +#MULTILIB_OSDIRNAMES += mips16/msoft-float/mnan.2008=!mips-r2-mips16-soft-nan2008/lib > + > +MULTILIB_REQUIRED += mips16/EL > +MULTILIB_OSDIRNAMES += mips16/EL=!mipsel-r2-mips16-hard/lib > +MULTILIB_REQUIRED += mips16/EL/mnan=2008 > +MULTILIB_OSDIRNAMES += mips16/EL/mnan.2008=!mipsel-r2-mips16-hard-nan2008/lib > +MULTILIB_REQUIRED += mips16/EL/msoft-float > +MULTILIB_OSDIRNAMES += mips16/EL/msoft-float=!mipsel-r2-mips16-soft/lib > +#MULTILIB_REQUIRED += mips16/EL/msoft-float/mnan=2008 > +#MULTILIB_OSDIRNAMES += mips16/EL/msoft-float/mnan.2008=!mipsel-r2-mips16-soft-nan2008/lib > + > +MULTILIB_REQUIRED += mmicromips > +MULTILIB_OSDIRNAMES += mmicromips=!micromips-r2-hard/lib > +MULTILIB_REQUIRED += mmicromips/mnan=2008 > +MULTILIB_OSDIRNAMES += mmicromips/mnan.2008=!micromips-r2-hard-nan2008/lib > +MULTILIB_REQUIRED += mmicromips/msoft-float > +MULTILIB_OSDIRNAMES += mmicromips/msoft-float=!micromips-r2-soft/lib > +#MULTILIB_REQUIRED += mmicromips/msoft-float/mnan=2008 > +#MULTILIB_OSDIRNAMES += mmicromips/msoft-float/mnan.2008=!micromips-r2-soft-nan2008/lib > + > +MULTILIB_REQUIRED += mmicromips/EL > +MULTILIB_OSDIRNAMES += mmicromips/EL=!micromipsel-r2-hard/lib > +MULTILIB_REQUIRED += mmicromips/EL/mnan=2008 > +MULTILIB_OSDIRNAMES += mmicromips/EL/mnan.2008=!micromipsel-r2-hard-nan2008/lib > +MULTILIB_REQUIRED += mmicromips/EL/msoft-float > +MULTILIB_OSDIRNAMES += mmicromips/EL/msoft-float=!micromipsel-r2-soft/lib > +#MULTILIB_REQUIRED += mmicromips/EL/msoft-float/mnan=2008 > +#MULTILIB_OSDIRNAMES += mmicromips/EL/msoft-float/mnan.2008=!micromipsel-r2-soft-nan2008/lib > + > +# Version 1 multilibs > + > +MULTILIB_REQUIRED += mips32 > +MULTILIB_OSDIRNAMES += mips32=mips-r1-hard/lib Likewise. > +MULTILIB_REQUIRED += mips64 > +MULTILIB_OSDIRNAMES += mips64=!mips-r1-hard/lib32 > +MULTILIB_REQUIRED += mips64/mabi=64 > +MULTILIB_OSDIRNAMES += mips64/mabi.64=!mips-r1-hard/lib64 > + > +MULTILIB_REQUIRED += mips32/msoft-float > +MULTILIB_OSDIRNAMES += mips32/msoft-float=mips-r1-soft/lib Likewise. > +MULTILIB_REQUIRED += mips64/msoft-float > +MULTILIB_OSDIRNAMES += mips64/msoft-float=!mips-r1-soft/lib32 > +MULTILIB_REQUIRED += mips64/mabi=64/msoft-float > +MULTILIB_OSDIRNAMES += mips64/mabi.64/msoft-float=!mips-r1-soft/lib64 > + > +MULTILIB_REQUIRED += mips32/EL > +MULTILIB_OSDIRNAMES += mips32/EL=!mipsel-r1-hard/lib > +MULTILIB_REQUIRED += mips64/EL > +MULTILIB_OSDIRNAMES += mips64/EL=!mipsel-r1-hard/lib32 > +MULTILIB_REQUIRED += mips64/mabi=64/EL > +MULTILIB_OSDIRNAMES += mips64/mabi.64/EL=!mipsel-r1-hard/lib64 > + > +MULTILIB_REQUIRED += mips32/EL/msoft-float > +MULTILIB_OSDIRNAMES += mips32/EL/msoft-float=!mipsel-r1-soft/lib > +MULTILIB_REQUIRED += mips64/EL/msoft-float > +MULTILIB_OSDIRNAMES += mips64/EL/msoft-float=!mipsel-r1-soft/lib32 > +MULTILIB_REQUIRED += mips64/mabi=64/EL/msoft-float > +MULTILIB_OSDIRNAMES += mips64/mabi.64/EL/msoft-float=!mipsel-r1-soft/lib64 > + > +# We will not include any 64 bit mips16 combinations. > +MULTILIB_REQUIRED += mips32/mips16 > +MULTILIB_OSDIRNAMES += mips32/mips16=!mips-r1-mips16-hard/lib > +MULTILIB_REQUIRED += mips32/mips16/msoft-float > +MULTILIB_OSDIRNAMES += mips32/mips16/msoft-float=!mips-r1-mips16-soft/lib > + > +MULTILIB_REQUIRED += mips32/mips16/EL > +MULTILIB_OSDIRNAMES += mips32/mips16/EL=!mipsel-r1-mips16-hard/lib > +MULTILIB_REQUIRED += mips32/mips16/EL/msoft-float > +MULTILIB_OSDIRNAMES += mips32/mips16/EL/msoft-float=!mipsel-r1-mips16-soft/lib Apart from wanting to understand the need/lack of ! in various places, this is otherwise OK. Matthew
> Apart from wanting to understand the need/lack of ! in various places, this is > otherwise OK. > > Matthew Ok, I split the long lines and added the missing '!' characters to all the MULTILIB_OSDIRNAMES except for the default ones. Using the '!' on the default MULTILIB_OSDIRNAMES like: MULTILIB_OSDIRNAMES = .=mips-r6-hard/lib in t-img-linux causes the '--print-multi-os-directory' option to include the '!' character in the output when using the default options and that causes all sorts of problems when building. Without a '!' on the default case: % inst*/bin/*-gcc --print-multi-os-directory mips-r6-hard/lib With a '!' on the default case: % inst*/bin/*-gcc --print-multi-os-directory !mips-r6-hard/lib This is probably a bug in the scripts that parse the t-* files and setting up the various multi-lib lists but I didn't dig into exactly where or what the problem was, I just left the '!' off the default case. The non-default cases should all have a '!' and I have added it to the ones that were missing it. I will check this patch in after I have done one more round of testing to make sure that my latest changes didn't break anything. Steve Ellcey sellcey@imgtec.com
diff --git a/gcc/config/mips/mti-linux.h b/gcc/config/mips/mti-linux.h index 80d5925..32b84d1 100644 --- a/gcc/config/mips/mti-linux.h +++ b/gcc/config/mips/mti-linux.h @@ -18,16 +18,20 @@ along with GCC; see the file COPYING3. If not see <http://www.gnu.org/licenses/>. */ /* This target is a multilib target, specify the sysroot paths. */ +#define MIPS_SYSVERSION_SPEC \ + "%{mips32:r1}%{mips64:r1}%{mips32r2:r2}%{mips64r2:r2}%{mips32r6:r6}%{mips64r6:r6}%{mips16:-mips16}" + #undef SYSROOT_SUFFIX_SPEC -#if MIPS_ISA_DEFAULT == 33 /* mips32r2 is the default */ -#define SYSROOT_SUFFIX_SPEC \ - "%{mips32:/mips32}%{mips64:/mips64}%{mips64r2:/mips64r2}%{mips32r6:/mips32r6}%{mips64r6:/mips64r6}%{mips16:/mips16}%{mmicromips:/micromips}%{mabi=64:/64}%{mel|EL:/el}%{msoft-float:/sof}%{!mips32r6:%{!mips64r6:%{mnan=2008:/nan2008}}}" -#elif MIPS_ISA_DEFAULT == 37 /* mips32r6 is the default */ #define SYSROOT_SUFFIX_SPEC \ - "%{mips32:/mips32}%{mips64:/mips64}%{mips32r2:/mips32r2}%{mips64r2:/mips64r2}%{mips64r6:/mips64r6}%{mips16:/mips16}%{mmicromips:/micromips}%{mabi=64:/64}%{mel|EL:/el}%{msoft-float:/sof}%{!mips32r6:%{!mips64r6:%{mnan=2008:/nan2008}}}" -#else /* Unexpected default ISA. */ -#error No SYSROOT_SUFFIX_SPEC exists for this default ISA -#endif + "/%{mmicromips:micro}mips%{mel|EL:el}-"MIPS_SYSVERSION_SPEC"%{msoft-float:-soft;:-hard}%{!mips32r6:%{!mips64r6:%{mnan=2008:-nan2008}}}%{muclibc:-uclibc}" + +#define SYSROOT_HEADERS_SUFFIX_SPEC SYSROOT_SUFFIX_SPEC + +#undef STARTFILE_PREFIX_SPEC +#define STARTFILE_PREFIX_SPEC \ + "%{mabi=32: /usr/local/lib/ /lib/ /usr/lib/} \ + %{mabi=n32: /usr/local/lib32/ /lib32/ /usr/lib32/} \ + %{mabi=64: /usr/local/lib64/ /lib64/ /usr/lib64/}" #undef DRIVER_SELF_SPECS #define DRIVER_SELF_SPECS \ diff --git a/gcc/config/mips/t-img-linux b/gcc/config/mips/t-img-linux index 86b0a26..93d81920 100644 --- a/gcc/config/mips/t-img-linux +++ b/gcc/config/mips/t-img-linux @@ -23,8 +23,16 @@ MULTILIB_OPTIONS = mips64r6 mabi=64 EL MULTILIB_DIRNAMES = mips64r6 64 el MULTILIB_MATCHES = EL=mel EB=meb -# The 64 bit ABI is not supported on the mips32r6 architecture. -# Because mips32r6 is the default we can't use that flag to trigger -# the exception so we check for mabi=64 with no specific mips -# architecture flag instead. -MULTILIB_EXCEPTIONS += mabi=64* +MULTILIB_REQUIRED = +MULTILIB_OSDIRNAMES = .=mips-r6-hard/lib +MULTILIB_REQUIRED += mips64r6 +MULTILIB_OSDIRNAMES += mips64r6=!mips-r6-hard/lib32 +MULTILIB_REQUIRED += mips64r6/mabi=64 +MULTILIB_OSDIRNAMES += mips64r6/mabi.64=!mips-r6-hard/lib64 + +MULTILIB_REQUIRED += EL +MULTILIB_OSDIRNAMES += EL=!mipsel-r6-hard/lib +MULTILIB_REQUIRED += mips64r6/EL +MULTILIB_OSDIRNAMES += mips64r6/EL=!mipsel-r6-hard/lib32 +MULTILIB_REQUIRED += mips64r6/mabi=64/EL +MULTILIB_OSDIRNAMES += mips64r6/mabi.64/EL=!mipsel-r6-hard/lib64 diff --git a/gcc/config/mips/t-mti-linux b/gcc/config/mips/t-mti-linux index c0dcbf0..2404c4ca 100644 --- a/gcc/config/mips/t-mti-linux +++ b/gcc/config/mips/t-mti-linux @@ -23,26 +23,136 @@ MULTILIB_OPTIONS = mips32/mips64/mips64r2 mips16/mmicromips mabi=64 EL msoft-flo MULTILIB_DIRNAMES = mips32 mips64 mips64r2 mips16 micromips 64 el sof nan2008 MULTILIB_MATCHES = EL=mel EB=meb mips32r2=mips32r3 mips32r2=mips32r5 mips64r2=mips64r3 mips64r2=mips64r5 -# The 64 bit ABI is not supported on the mips32 architecture. -MULTILIB_EXCEPTIONS += *mips32*/*mabi=64* - -# The 64 bit ABI is not supported on the mips32r2 architecture. -# Because mips32r2 is the default we can't use that flag to trigger -# the exception so we check for mabi=64 with no specific mips -# architecture flag instead. -MULTILIB_EXCEPTIONS += mabi=64* - -# We do not want to build mips16 versions of mips64* architectures. -MULTILIB_EXCEPTIONS += *mips64*/*mips16* -MULTILIB_EXCEPTIONS += *mips16/mabi=64* - -# We only want micromips for mips32r2 architecture. -MULTILIB_EXCEPTIONS += *mips32/mmicromips* -MULTILIB_EXCEPTIONS += *mips64*/mmicromips* -MULTILIB_EXCEPTIONS += *mmicromips/mabi=64* - -# We do not want nan2008 libraries for soft-float, -# mips32[r1], or mips64[r1]. -MULTILIB_EXCEPTIONS += *msoft-float*/*mnan=2008* -MULTILIB_EXCEPTIONS += *mips32/*mnan=2008* -MULTILIB_EXCEPTIONS += *mips64/*mnan=2008* +MULTILIB_REQUIRED = +MULTILIB_OSDIRNAMES = .=mips-r2-hard/lib +MULTILIB_REQUIRED += mips64r2 +MULTILIB_OSDIRNAMES += mips64r2=!mips-r2-hard/lib32 +MULTILIB_REQUIRED += mips64r2/mabi=64 +MULTILIB_OSDIRNAMES += mips64r2/mabi.64=!mips-r2-hard/lib64 + +MULTILIB_REQUIRED += mnan=2008 +MULTILIB_OSDIRNAMES += mnan.2008=mips-r2-hard-nan2008/lib +MULTILIB_REQUIRED += mips64r2/mnan=2008 +MULTILIB_OSDIRNAMES += mips64r2/mnan.2008=!mips-r2-hard-nan2008/lib32 +MULTILIB_REQUIRED += mips64r2/mabi=64/mnan=2008 +MULTILIB_OSDIRNAMES += mips64r2/mabi.64/mnan.2008=!mips-r2-hard-nan2008/lib64 + +MULTILIB_REQUIRED += msoft-float +MULTILIB_OSDIRNAMES += msoft-float=mips-r2-soft/lib +MULTILIB_REQUIRED += mips64r2/msoft-float +MULTILIB_OSDIRNAMES += mips64r2/msoft-float=!mips-r2-soft/lib32 +MULTILIB_REQUIRED += mips64r2/mabi=64/msoft-float +MULTILIB_OSDIRNAMES += mips64r2/mabi.64/msoft-float=!mips-r2-soft/lib64 + +#MULTILIB_REQUIRED += msoft-float/mnan=2008 +#MULTILIB_OSDIRNAMES += msoft-float/mnan.2008=mips-r2-soft-nan2008/lib +#MULTILIB_REQUIRED += mips64r2/msoft-float/mnan=2008 +#MULTILIB_OSDIRNAMES += mips64r2/msoft-float/mnan.2008=!mips-r2-soft-nan2008/lib32 +#MULTILIB_REQUIRED += mips64r2/mabi=64/msoft-float/mnan=2008 +#MULTILIB_OSDIRNAMES += mips64r2/mabi.64/msoft-float/mnan.2008=!mips-r2-soft-nan2008/lib64 + +MULTILIB_REQUIRED += EL +MULTILIB_OSDIRNAMES += EL=!mipsel-r2-hard/lib +MULTILIB_REQUIRED += mips64r2/EL +MULTILIB_OSDIRNAMES += mips64r2/EL=!mipsel-r2-hard/lib32 +MULTILIB_REQUIRED += mips64r2/mabi=64/EL +MULTILIB_OSDIRNAMES += mips64r2/mabi.64/EL=!mipsel-r2-hard/lib64 + +MULTILIB_REQUIRED += EL/mnan=2008 +MULTILIB_OSDIRNAMES += EL/mnan.2008=!mipsel-r2-hard-nan2008/lib +MULTILIB_REQUIRED += mips64r2/EL/mnan=2008 +MULTILIB_OSDIRNAMES += mips64r2/EL/mnan.2008=!mipsel-r2-hard-nan2008/lib32 +MULTILIB_REQUIRED += mips64r2/mabi=64/EL/mnan=2008 +MULTILIB_OSDIRNAMES += mips64r2/mabi.64/EL/mnan.2008=!mipsel-r2-hard-nan2008/lib64 + +MULTILIB_REQUIRED += EL/msoft-float +MULTILIB_OSDIRNAMES += EL/msoft-float=!mipsel-r2-soft/lib +MULTILIB_REQUIRED += mips64r2/EL/msoft-float +MULTILIB_OSDIRNAMES += mips64r2/EL/msoft-float=!mipsel-r2-soft/lib32 +MULTILIB_REQUIRED += mips64r2/mabi=64/EL/msoft-float +MULTILIB_OSDIRNAMES += mips64r2/mabi.64/EL/msoft-float=!mipsel-r2-soft/lib64 + +#MULTILIB_REQUIRED += EL/msoft-float/mnan=2008 +#MULTILIB_OSDIRNAMES += EL/msoft-float/mnan.2008=!mipsel-r2-soft-nan2008/lib +#MULTILIB_REQUIRED += mips64r2/EL/msoft-float/mnan=2008 +#MULTILIB_OSDIRNAMES += mips64r2/EL/msoft-float/mnan.2008=!mipsel-r2-soft-nan2008/lib32 +#MULTILIB_REQUIRED += mips64r2/mabi=64/EL/msoft-float/mnan=2008 +#MULTILIB_OSDIRNAMES += mips64r2/mabi.64/EL/msoft-float/mnan.2008=!mipsel-r2-soft-nan2008/lib64 + +# We will not include any 64 bit mips16 combinations. +MULTILIB_REQUIRED += mips16 +MULTILIB_OSDIRNAMES += mips16=!mips-r2-mips16-hard/lib +MULTILIB_REQUIRED += mips16/mnan=2008 +MULTILIB_OSDIRNAMES += mips16/mnan.2008=!mips-r2-mips16-hard-nan2008/lib +MULTILIB_REQUIRED += mips16/msoft-float +MULTILIB_OSDIRNAMES += mips16/msoft-float=!mips-r2-mips16-soft/lib +#MULTILIB_REQUIRED += mips16/msoft-float/mnan=2008 +#MULTILIB_OSDIRNAMES += mips16/msoft-float/mnan.2008=!mips-r2-mips16-soft-nan2008/lib + +MULTILIB_REQUIRED += mips16/EL +MULTILIB_OSDIRNAMES += mips16/EL=!mipsel-r2-mips16-hard/lib +MULTILIB_REQUIRED += mips16/EL/mnan=2008 +MULTILIB_OSDIRNAMES += mips16/EL/mnan.2008=!mipsel-r2-mips16-hard-nan2008/lib +MULTILIB_REQUIRED += mips16/EL/msoft-float +MULTILIB_OSDIRNAMES += mips16/EL/msoft-float=!mipsel-r2-mips16-soft/lib +#MULTILIB_REQUIRED += mips16/EL/msoft-float/mnan=2008 +#MULTILIB_OSDIRNAMES += mips16/EL/msoft-float/mnan.2008=!mipsel-r2-mips16-soft-nan2008/lib + +MULTILIB_REQUIRED += mmicromips +MULTILIB_OSDIRNAMES += mmicromips=!micromips-r2-hard/lib +MULTILIB_REQUIRED += mmicromips/mnan=2008 +MULTILIB_OSDIRNAMES += mmicromips/mnan.2008=!micromips-r2-hard-nan2008/lib +MULTILIB_REQUIRED += mmicromips/msoft-float +MULTILIB_OSDIRNAMES += mmicromips/msoft-float=!micromips-r2-soft/lib +#MULTILIB_REQUIRED += mmicromips/msoft-float/mnan=2008 +#MULTILIB_OSDIRNAMES += mmicromips/msoft-float/mnan.2008=!micromips-r2-soft-nan2008/lib + +MULTILIB_REQUIRED += mmicromips/EL +MULTILIB_OSDIRNAMES += mmicromips/EL=!micromipsel-r2-hard/lib +MULTILIB_REQUIRED += mmicromips/EL/mnan=2008 +MULTILIB_OSDIRNAMES += mmicromips/EL/mnan.2008=!micromipsel-r2-hard-nan2008/lib +MULTILIB_REQUIRED += mmicromips/EL/msoft-float +MULTILIB_OSDIRNAMES += mmicromips/EL/msoft-float=!micromipsel-r2-soft/lib +#MULTILIB_REQUIRED += mmicromips/EL/msoft-float/mnan=2008 +#MULTILIB_OSDIRNAMES += mmicromips/EL/msoft-float/mnan.2008=!micromipsel-r2-soft-nan2008/lib + +# Version 1 multilibs + +MULTILIB_REQUIRED += mips32 +MULTILIB_OSDIRNAMES += mips32=mips-r1-hard/lib +MULTILIB_REQUIRED += mips64 +MULTILIB_OSDIRNAMES += mips64=!mips-r1-hard/lib32 +MULTILIB_REQUIRED += mips64/mabi=64 +MULTILIB_OSDIRNAMES += mips64/mabi.64=!mips-r1-hard/lib64 + +MULTILIB_REQUIRED += mips32/msoft-float +MULTILIB_OSDIRNAMES += mips32/msoft-float=mips-r1-soft/lib +MULTILIB_REQUIRED += mips64/msoft-float +MULTILIB_OSDIRNAMES += mips64/msoft-float=!mips-r1-soft/lib32 +MULTILIB_REQUIRED += mips64/mabi=64/msoft-float +MULTILIB_OSDIRNAMES += mips64/mabi.64/msoft-float=!mips-r1-soft/lib64 + +MULTILIB_REQUIRED += mips32/EL +MULTILIB_OSDIRNAMES += mips32/EL=!mipsel-r1-hard/lib +MULTILIB_REQUIRED += mips64/EL +MULTILIB_OSDIRNAMES += mips64/EL=!mipsel-r1-hard/lib32 +MULTILIB_REQUIRED += mips64/mabi=64/EL +MULTILIB_OSDIRNAMES += mips64/mabi.64/EL=!mipsel-r1-hard/lib64 + +MULTILIB_REQUIRED += mips32/EL/msoft-float +MULTILIB_OSDIRNAMES += mips32/EL/msoft-float=!mipsel-r1-soft/lib +MULTILIB_REQUIRED += mips64/EL/msoft-float +MULTILIB_OSDIRNAMES += mips64/EL/msoft-float=!mipsel-r1-soft/lib32 +MULTILIB_REQUIRED += mips64/mabi=64/EL/msoft-float +MULTILIB_OSDIRNAMES += mips64/mabi.64/EL/msoft-float=!mipsel-r1-soft/lib64 + +# We will not include any 64 bit mips16 combinations. +MULTILIB_REQUIRED += mips32/mips16 +MULTILIB_OSDIRNAMES += mips32/mips16=!mips-r1-mips16-hard/lib +MULTILIB_REQUIRED += mips32/mips16/msoft-float +MULTILIB_OSDIRNAMES += mips32/mips16/msoft-float=!mips-r1-mips16-soft/lib + +MULTILIB_REQUIRED += mips32/mips16/EL +MULTILIB_OSDIRNAMES += mips32/mips16/EL=!mipsel-r1-mips16-hard/lib +MULTILIB_REQUIRED += mips32/mips16/EL/msoft-float +MULTILIB_OSDIRNAMES += mips32/mips16/EL/msoft-float=!mipsel-r1-mips16-soft/lib