diff options
author | Matt Jacobson <mhjacobson@me.com> | 2021-12-02 21:51:28 -0500 |
---|---|---|
committer | Jeff Law <jeffreyalaw@gmail.com> | 2021-12-02 21:53:13 -0500 |
commit | 711084c9450c49b372e177d94ae99fc642e1cc73 (patch) | |
tree | 7a41f2716580c89e35cca4acf0db0573640fb1d2 /gcc | |
parent | ea6ef320b0d7e6a9335691af8c8d1daae396d2a7 (diff) | |
download | gcc-711084c9450c49b372e177d94ae99fc642e1cc73.zip gcc-711084c9450c49b372e177d94ae99fc642e1cc73.tar.gz gcc-711084c9450c49b372e177d94ae99fc642e1cc73.tar.bz2 |
build: Implement --with-multilib-list for avr target
gcc
* 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.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config.gcc | 7 | ||||
-rw-r--r-- | gcc/config/avr/genmultilib.awk | 16 | ||||
-rw-r--r-- | gcc/config/avr/t-avr | 1 | ||||
-rwxr-xr-x | gcc/configure | 4 | ||||
-rw-r--r-- | gcc/configure.ac | 2 |
5 files changed, 27 insertions, 3 deletions
diff --git a/gcc/config.gcc b/gcc/config.gcc index edd1265..1ca9d36 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -4315,6 +4315,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 efe41dd..c5f6ed0 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 06a0a3a..3120b19 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 b/gcc/configure index 665a0fc..de20e5d 100755 --- a/gcc/configure +++ b/gcc/configure @@ -1831,8 +1831,8 @@ Optional Packages: Root for documentation URLs --with-changes-root-url=URL Root for GCC changes URLs - --with-multilib-list select multilibs (AArch64, ARM, OR1K, RISC-V, SH and - x86-64 only) + --with-multilib-list select multilibs (AArch64, ARM, AVR, OR1K, RISC-V, + SH and x86-64 only) --with-multilib-generator Multi-libs configuration string (RISC-V only) --with-zstd=PATH specify prefix directory for installed zstd library. diff --git a/gcc/configure.ac b/gcc/configure.ac index 51f9022..2b4914b 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -1171,7 +1171,7 @@ if test "x$enable_offload_defaulted" = xyes; then fi AC_ARG_WITH(multilib-list, -[AS_HELP_STRING([--with-multilib-list], [select multilibs (AArch64, ARM, OR1K, RISC-V, SH and x86-64 only)])], +[AS_HELP_STRING([--with-multilib-list], [select multilibs (AArch64, ARM, AVR, OR1K, RISC-V, SH and x86-64 only)])], :, with_multilib_list=default) |