Message ID | 4962954C-5270-4192-A024-8DD212453BE5@me.com |
---|---|
State | New |
Headers | show |
Series | build: Implement --with-multilib-list for avr target | expand |
> On Jun 7, 2021, at 3:30 AM, Matt Jacobson <mhjacobson@me.com> wrote: > > The AVR target builds a lot of multilib variants of target libraries by default, > and I found myself wanting to use the --with-multilib-list argument to limit > what I was building, to shorten build times. This patch implements that option > for the AVR target. > > Tested by configuring and building an AVR compiler and target libs on macOS. > > I don't have commit access, so if this patch is suitable, I'd need someone else > to commit it for me. Thanks. Ping. (Please let me know if I’ve made some process error here; this is my first change to GCC.) Original mail: <https://gcc.gnu.org/pipermail/gcc-patches/2021-June/572041.html> Thanks.
> On Jul 5, 2021, at 7:09 PM, Matt Jacobson <mhjacobson@me.com> wrote: > >> On Jun 7, 2021, at 3:30 AM, Matt Jacobson <mhjacobson@me.com> wrote: >> >> The AVR target builds a lot of multilib variants of target libraries by default, >> and I found myself wanting to use the --with-multilib-list argument to limit >> what I was building, to shorten build times. This patch implements that option >> for the AVR target. >> >> Tested by configuring and building an AVR compiler and target libs on macOS. >> >> I don't have commit access, so if this patch is suitable, I'd need someone else >> to commit it for me. Thanks. > > Ping. (Please let me know if I’ve made some process error here; this is my > first change to GCC.) Ping again. Thanks! Original mail: <https://gcc.gnu.org/pipermail/gcc-patches/2021-June/572041.html> Matt
On 6/7/2021 1:30 AM, Matt Jacobson via Gcc-patches wrote: > gcc/ChangeLog: > > 2020-06-07 Matt Jacobson<mhjacobson@me.com> > > * config.gcc: For the AVR target, populate TM_MULTILIB_CONFIG. > * config/avr/genmultilib.awk: Add ability to filter generated multilib > list. > * config/avr/t-avr: Pass TM_MULTILIB_CONFIG to genmultilib.awk. > * configure.ac: Update help string for --with-multilib-list. > * configure: Regenerate. > THanks. I've pushed this to the trunk. Sorry about the long wait. jeff
diff --git a/gcc/config.gcc b/gcc/config.gcc index 6a349965c..fd83996a4 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -4201,6 +4201,13 @@ case "${target}" in fi ;; + avr-*-*) + # Handle --with-multilib-list. + if test "x${with_multilib_list}" != xdefault; then + TM_MULTILIB_CONFIG="${with_multilib_list}" + fi + ;; + csky-*-*) supported_defaults="cpu endian float" ;; diff --git a/gcc/config/avr/genmultilib.awk b/gcc/config/avr/genmultilib.awk index 2d07c0e53..ad8814602 100644 --- a/gcc/config/avr/genmultilib.awk +++ b/gcc/config/avr/genmultilib.awk @@ -67,6 +67,16 @@ BEGIN { dir_long_double = "long-double" (96 - with_long_double) opt_long_double = "mlong-double=" (96 - with_long_double) + + if (with_multilib_list != "") + { + split(with_multilib_list, multilib_list, ",") + + for (i in multilib_list) + { + multilibs[multilib_list[i]] = 1 + } + } } ################################################################## @@ -137,6 +147,9 @@ BEGIN { if (core == "avr1") next + if (with_multilib_list != "" && !(core in multilibs)) + next + option[core] = "mmcu=" core m_options = m_options m_sep option[core] @@ -150,6 +163,9 @@ BEGIN { if (core == "avr1") next + if (with_multilib_list != "" && !(core in multilibs)) + next + opts = option[core] # split device specific feature list diff --git a/gcc/config/avr/t-avr b/gcc/config/avr/t-avr index 3e1a1ba68..7d20c6107 100644 --- a/gcc/config/avr/t-avr +++ b/gcc/config/avr/t-avr @@ -127,6 +127,7 @@ t-multilib-avr: $(srcdir)/config/avr/genmultilib.awk \ -v HAVE_LONG_DOUBLE64=$(HAVE_LONG_DOUBLE64) \ -v with_double=$(WITH_DOUBLE) \ -v with_long_double=$(WITH_LONG_DOUBLE) \ + -v with_multilib_list=$(TM_MULTILIB_CONFIG) \ -f $< $< $(AVR_MCUS) > $@ include t-multilib-avr diff --git a/gcc/configure.ac b/gcc/configure.ac index 715fcba04..c3ed65df7 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -1106,7 +1106,7 @@ if test x"$enable_hsa" = x1 ; then fi AC_ARG_WITH(multilib-list, -[AS_HELP_STRING([--with-multilib-list], [select multilibs (AArch64, SH and x86-64 only)])], +[AS_HELP_STRING([--with-multilib-list], [select multilibs (AArch64, AVR, i386, or1k, RISC-V, SH, and x86-64 only)])], :, with_multilib_list=default)