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.h...@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.