[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v9 04/10] configure: Generate rule to calculate the base arch
From: |
Claudio Fontana |
Subject: |
Re: [PATCH v9 04/10] configure: Generate rule to calculate the base architecture of a target |
Date: |
Thu, 25 Jun 2020 10:45:31 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 |
On 6/23/20 3:17 PM, Philippe Mathieu-Daudé wrote:
> On 6/23/20 10:45 AM, Philippe Mathieu-Daudé wrote:
>> On 6/23/20 10:01 AM, Claudio Fontana wrote:
>>> Hi Philippe, Alex,
>>>
>>> On 6/18/20 2:33 PM, Philippe Mathieu-Daudé wrote:
>>>> From: Alex Bennée <alex.bennee@linaro.org>
>>>>
>>>> As we encode the base architecture in configure.sh, we can emit
>>>> the base-arch() function into config-host.mak.
>>>>
>>>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>>>> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
>>>
>>> I found this change a bit strange, but maybe I am missing some context.
>>
>> This is used in patch 9:
>> "Makefile: Allow target-specific optional Kconfig"
>> https://www.mail-archive.com/qemu-devel@nongnu.org/msg713823.html
>>
>>>
>>> Would it not be easier to read the information from the
>>> config-target.mak files as it is already emitted there?
>>
>> So you are suggesting moving the SUBDIR_DEVICES_MAK creation code
>> to Makefile.target, before until now it is target-agnostic but we
>> are making it target-specific. Yes, it could work...
>>
>> I keep respining this series since the semihosting rework. Frankly
>> I don't remember why it became so complicated, I need to jump into
>> the code again.
>>
>> I guess when Paolo introduced Kconfig, the accelerator configs were
>> almost static, so SUBDIR_DEVICES_MAK was only dependent of host
>> config.
>>
>> The semihosting "device" depends of accelerator and target configs.
>>
>> Maybe the problem is to see minikconf generating device selectors,
>> as kconfig is also used for generic features (such accelerator,
>> not really "device").
I think you are right, some of the features are not devices. Maybe another
variable could
hold the target-specific features, getting the input from the target makefile?
hmm...
>
> This might be solved easily using Meson... Maybe better wait for it?
Not sure about this one, should be possible to solve with makefiles also,
but I didn't try; I'll try to set things up to get a better understanding.
Ciao,
Claudio
>
>>
>>>
>>>> ---
>>>> configure | 19 +++++++++++++++++++
>>>> 1 file changed, 19 insertions(+)
>>>>
>>>> diff --git a/configure b/configure
>>>> index ba88fd1824..c0d7fbc30e 100755
>>>> --- a/configure
>>>> +++ b/configure
>>>> @@ -7927,6 +7927,8 @@ if test "$linux" = "yes" ; then
>>>> fi
>>>> fi
>>>>
>>>> +target_to_base_map=""
>>>> +
>>>> for target in $target_list; do
>>>> target_dir="$target"
>>>> config_target_mak=$target_dir/config-target.mak
>>>> @@ -8155,6 +8157,7 @@ target_arch_name="$(upper $TARGET_ARCH)"
>>>> echo "TARGET_$target_arch_name=y" >> $config_target_mak
>>>> echo "TARGET_NAME=$target_name" >> $config_target_mak
>>>> echo "TARGET_BASE_ARCH=$TARGET_BASE_ARCH" >> $config_target_mak
>>>> +target_to_base_map="$target_dir,$TARGET_BASE_ARCH $target_to_base_map"
>>>> if [ "$TARGET_ABI_DIR" = "" ]; then
>>>> TARGET_ABI_DIR=$TARGET_ARCH
>>>> fi
>>>> @@ -8370,6 +8373,22 @@ if test "$ccache_cpp2" = "yes"; then
>>>> echo "export CCACHE_CPP2=y" >> $config_host_mak
>>>> fi
>>>>
>>>> +# Export a rule for calculating base arch from target_dir for use by
>>>> +# the Kconfig generator
>>>> +echo "# Usage: \$(call base-arch, target-dir)" >> $config_host_mak
>>>> +echo "# Return the base architecture for a target." >> $config_host_mak
>>>> +echo "# e.g \$(call base-arch, aarch64-linux-user) returns 'arm'" >>
>>>> $config_host_mak
>>>> +echo "base-arch = \$(strip \\" >> $config_host_mak
>>>> +close_braces=""
>>>> +for pairs in $target_to_base_map
>>>> +do
>>>> + dir="${pairs%%,*}"
>>>> + base="${pairs#*,}"
>>>> + echo "\$(if \$(findstring $dir,\$1),$base, \\" >> $config_host_mak
>>>> + close_braces="$close_braces )"
>>>> +done
>>>> +echo "$close_braces )" >> $config_host_mak
>>>> +
>>>> # If we're using a separate build tree, set it up now.
>>>> # DIRS are directories which we simply mkdir in the build tree;
>>>> # LINKS are things to symlink back into the source tree
>>>>
>>>
>>
>
[PATCH v9 05/10] Makefile: Remove dangerous EOL trailing backslash, Philippe Mathieu-Daudé, 2020/06/18
[PATCH v9 06/10] Makefile: Write MINIKCONF variables as one entry per line, Philippe Mathieu-Daudé, 2020/06/18
[PATCH v9 07/10] accel/Kconfig: Extract accel selectors into their own config, Philippe Mathieu-Daudé, 2020/06/18
[PATCH v9 08/10] accel/Kconfig: Add the TCG selector, Philippe Mathieu-Daudé, 2020/06/18
[PATCH v9 09/10] Makefile: Allow target-specific optional Kconfig, Philippe Mathieu-Daudé, 2020/06/18
[PATCH v9 10/10] accel/tcg: Add stub for probe_access(), Philippe Mathieu-Daudé, 2020/06/18
Re: [PATCH v9 00/10] accel: Allow targets to use Kconfig, no-reply, 2020/06/18
Re: [PATCH v9 00/10] accel: Allow targets to use Kconfig, Philippe Mathieu-Daudé, 2020/06/22