qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v6 05/11] rules.mak: Add base-arch() rule


From: Alex Bennée
Subject: Re: [PATCH v6 05/11] rules.mak: Add base-arch() rule
Date: Mon, 08 Jun 2020 11:10:28 +0100
User-agent: mu4e 1.5.2; emacs 28.0.50

Philippe Mathieu-Daudé <philmd@redhat.com> writes:

> Add a rule to return the base architecture for a QEMU target.
>
> The current list of TARGET_BASE_ARCH is:
>
>   $ git grep  TARGET_BASE_ARCH configure
>   configure:7785:TARGET_BASE_ARCH=""
>   configure:7795:    TARGET_BASE_ARCH=i386
>   configure:7813:    TARGET_BASE_ARCH=arm
>   configure:7846:    TARGET_BASE_ARCH=mips
>   configure:7854:    TARGET_BASE_ARCH=mips
>   configure:7864:    TARGET_BASE_ARCH=openrisc
>   configure:7871:    TARGET_BASE_ARCH=ppc
>   configure:7879:    TARGET_BASE_ARCH=ppc
>   configure:7887:    TARGET_BASE_ARCH=ppc
>   configure:7894:    TARGET_BASE_ARCH=riscv
>   configure:7900:    TARGET_BASE_ARCH=riscv
>   configure:7920:    TARGET_BASE_ARCH=sparc
>   configure:7925:    TARGET_BASE_ARCH=sparc

This seems backwards. We encode the base architecture in configure.sh
because this is where we can make such distinctions. We then:

  echo "TARGET_BASE_ARCH=$TARGET_BASE_ARCH" >> $config_target_mak

Precisely so the make system can know what it is for any given target.
So:

> +# base-arch
> +# Usage: $(call base-arch, target)
> +#
> +# @target: the target architecture.
> +#
> +# This macro will return the base architecture for a target.
> +#
> +# As example, $(call base-arch, aarch64) returns 'arm'.
> +base-arch = $(strip \
> +             $(if $(call startwith,aarch64,$1),arm,\
> +               $(if $(call startwith,arm,$1),arm,\
> +                 $(if $(call startwith,microblaze,$1),microblaze,\
> +                   $(if $(call startwith,mips,$1),mips,\
> +                     $(if $(call startwith,ppc,$1),ppc,\
> +                       $(if $(call startwith,riscv,$1),riscv,\
> +                         $(if $(call startwith,sh4,$1),sh4,\
> +                           $(if $(call startwith,sparc,$1),sparc,\
> +                             $(if $(call startwith,xtensa,$1),xtensa,\
> +                               $(if $(call strequal,x86_64,$1),i386,\
> +                                 $1\
> +                                )\
> +                              )\
> +                            )\
> +                          )\
> +                        )\
> +                      )\
> +                    )\
> +                  )\
> +                )\
> +              )\
> +             )

Seems like a replication of information already calculated in configure
and prone to breakage if we add a new one (or come up with some franken
architecture at a later date).

-- 
Alex Bennée



reply via email to

[Prev in Thread] Current Thread [Next in Thread]