[dpdk-dev] [PATCH v1 2/2] mk: add sensible default target with defconfig

Hunt, David david.hunt at intel.com
Thu May 25 15:04:27 CEST 2017


Hi Shreyansh,

Thanks for your comments. More thoughts below.

On 24/5/2017 7:10 AM, Shreyansh Jain wrote:
> Hello David,
>
> On Tuesday 23 May 2017 03:58 PM, David Hunt wrote:
>> Users can now use 'make defconfig' to generate a configuration using
>> the most appropriate defaults for the current machine.
>>
>> <arch-machine-execenv-toolchain>
>>   arch taken from uname -m
>>   machine defaults to native
>>   execenv is taken from uname, Linux=linuxapp, otherwise bsdapp
>>   toolchain is taken from $CC -v to see which compiler to use
>>
>> Signed-off-by: David Hunt <david.hunt at intel.com>
>> ---
>>  mk/rte.sdkconfig.mk | 15 ++++++++++++---
>>  mk/rte.sdkroot.mk   |  4 ++--
>>  2 files changed, 14 insertions(+), 5 deletions(-)
>>
>> diff --git a/mk/rte.sdkconfig.mk b/mk/rte.sdkconfig.mk
>> index 1f2d6bd..4f30d56 100644
>> --- a/mk/rte.sdkconfig.mk
>> +++ b/mk/rte.sdkconfig.mk
>> @@ -60,16 +60,25 @@ showconfigs:
>>
>>  .PHONY: notemplate
>>  notemplate:
>> -    @printf "No template specified. "
>> -    @echo "Use T=template among the following list:"
>> +    @printf "No template specified. Use 'make defconfig' or "
>> +    @echo "use T=template from the following list:"
>>      @$(MAKE) -rR showconfigs | sed 's,^,  ,'
>>
>> +
>> +.PHONY: defconfig
>> +defconfig:
>> +    @$(MAKE) config T=$(shell uname -m)-native-$(shell uname | \
>
> The idea to have 'make defconfig' do the works looks great to me.
> I am just worried about the above line - it wouldn't allow
> configurations like
> arm64-dpaa2-linuxapp-gcc or arm64-armv8a-linuxapp-gcc
> Basically, having the MACHINE default to 'native' would not be right 
> in all cases.
>
> But, I don't have a better idea about how to detect this automatically.
> Or, we might use RTE_MACHINE someway.
>

Might I suggest that we default to armv8a for the defconfig in this 
case? Would that be good enough? If you need something more specific, 
then use the normal make config T=
Also, if you're using an unknown variant, you can always set your 
RTE_TARGET, as per the other changes in the patch.

A possible proposal for a v2 patch could be:

uname -m  Output Target
--------  ------------------
aarch64   arm64-armv8a-...
armv7l    arm-armv7a-...
ppc64     ppc_64-power8-... (from wikipedia uname page, could ppc user 
confirm this for me?)
x86_64    x86_64-native-...
i686      i686-native-...

Something along the lines of:

.PHONY: defconfig
defconfig:
         @$(MAKE) config T=$(shell \
                 uname -m | awk '{ \
                 if ($$0 == "aarch64") { \
                         print "arm64-armv8a"} \
                 else if ($$0 == "armv7l") { \
                         print "arm-armv7a"} \
                 else if ($$0 == "ppc64") { \
                         print "ppc_64-power8"} \
                 else { \
                         printf "%s-native", $$0} }')-$(shell \
                 uname | awk '{ \
                 if ($$0 == "Linux") { \
                         print "linuxapp"} \
                 else { \
                         print "bsdapp"} }')-$(shell \
                 ${CC} -v 2>&1 | \
                 grep " version " | cut -d ' ' -f 1)

That might make a reasonable start in the absence of a reliable method 
of detecting Xgene/ThunderX/DPAA2 variants.

Regards,
Dave.






More information about the dev mailing list