From 6b465e150d1a1a2001430af684a7e2f28eebc683 Mon Sep 17 00:00:00 2001 From: spaun2002 Date: Fri, 30 Apr 2021 19:54:23 -0700 Subject: [PATCH] Remove m1 from multilibs for GCC11 on SH arch. GCC11 somehow has different set of multilibs on SH arch than what GCC10 had. In particular: $ gcc10 -print-multi-lib | sed -r -e 's/@/ -/g;' .; mb; -mb m2; -m2 m2e; -m2e m4; -m4 m4-single; -m4-single m4-single-only; -m4-single-only mb/m2; -mb -m2 mb/m2e; -mb -m2e mb/m4; -mb -m4 mb/m4-single; -mb -m4-single mb/m4-single-only; -mb -m4-single-only mb/m2a; -mb -m2a mb/m2a-single; -mb -m2a-single $ gcc11 -print-multi-lib | sed -r -e 's/@/ -/g;' .; mb; -mb m2; -m2 m2e; -m2e m4; -m4 m4-single; -m4-single m4-single-only; -m4-single-only mb/m1; -mb -m1 mb/m2; -mb -m2 mb/m2e; -mb -m2e mb/m4; -mb -m4 mb/m4-single; -mb -m4-single mb/m4-single-only; -mb -m4-single-only mb/m2a; -mb -m2a mb/m2a-single; -mb -m2a-single mb/m1 fails to build libgcc as libgcc uses opcodes that were not available in SH-1: libgcc/config/sh/lib1funcs.S uses 'bt/s' and 'dt' instructions that, according to https://antime.kapsi.fi/sega/files/h12p0.pdf become available in the SH-2 only. So I removed mb/m1 from the multilibs fog GCC11 and SH arch. Another option would be to try not to build libgcc for this combination of the gcc version and archichecture, but I thought this fix would be more robust. Signed-off-by: Nik Konyuchenko --- config/cc/gcc.in | 1 + 1 file changed, 1 insertion(+) diff --git a/config/cc/gcc.in b/config/cc/gcc.in index c3918e8a..01d72536 100644 --- a/config/cc/gcc.in +++ b/config/cc/gcc.in @@ -84,6 +84,7 @@ config CC_GCC_EXTRA_CONFIG_ARRAY config CC_GCC_MULTILIB_LIST string "List of multilib variants" depends on MULTILIB + default "m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single" if GCC_V_11 && ARCH_SH help Architecture-specific option of expanding or restricting the list of the multilib variants to be built. Refer to GCC installation manual