[dpdk-dev,v3] mk: fix make defconfig on FreeBSD
Checks
Commit Message
On FreeBSD, make defconfig generates the config as
"defconfig_x86_64-bsdapp-", which does not resolve to any known
config file.
On FreeBSD, we get amd64 out of "uname -m", which was not handled by
the list of checks, but which now resolves to x86_64-native.
Then we run '$CC --version', and use grep -o with the list of known
compilers, and set to either gcc, icc or clang. Grep's '-o' option
returns the matched word rather than the whole line, making the
result easier to use.
The remaining code in the patch then takes ${compiler}, the "uname -m"
output and assembles them all together into a valid freebsd config name,
i.e. "defconfig_x86_64-native-bsdapp-clang".
v3 fixes:
Removed the call to $CC outside of the defconfig rule.
No longer breaks the 'make -R showversion'.
Simplified working out the compiler name using grep -o.
Fixes: bce6c42c4ad5 ("mk: add sensible default target with defconfig")
Tested-by: Anatoly Burakov <anatoly.burakov@intel.com>
Signed-off-by: David Hunt <david.hunt@intel.com>
---
mk/rte.sdkconfig.mk | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
Comments
23/04/2018 15:09, David Hunt:
> On FreeBSD, make defconfig generates the config as
> "defconfig_x86_64-bsdapp-", which does not resolve to any known
> config file.
>
> On FreeBSD, we get amd64 out of "uname -m", which was not handled by
> the list of checks, but which now resolves to x86_64-native.
>
> Then we run '$CC --version', and use grep -o with the list of known
> compilers, and set to either gcc, icc or clang. Grep's '-o' option
> returns the matched word rather than the whole line, making the
> result easier to use.
>
> The remaining code in the patch then takes ${compiler}, the "uname -m"
> output and assembles them all together into a valid freebsd config name,
> i.e. "defconfig_x86_64-native-bsdapp-clang".
>
> v3 fixes:
> Removed the call to $CC outside of the defconfig rule.
> No longer breaks the 'make -R showversion'.
> Simplified working out the compiler name using grep -o.
>
> Fixes: bce6c42c4ad5 ("mk: add sensible default target with defconfig")
>
> Tested-by: Anatoly Burakov <anatoly.burakov@intel.com>
> Signed-off-by: David Hunt <david.hunt@intel.com>
Applied, thanks
@@ -36,7 +36,6 @@ notemplate:
@echo "use T=template from the following list:"
@$(MAKE) -rR showconfigs | sed 's,^, ,'
-
.PHONY: defconfig
defconfig:
@$(MAKE) config T=$(shell \
@@ -47,15 +46,25 @@ defconfig:
print "arm-armv7a"} \
else if ($$0 == "ppc64") { \
print "ppc_64-power8"} \
+ else if ($$0 == "amd64") { \
+ print "x86_64-native"} \
else { \
- printf "%s-native", $$0} }')-$(shell \
+ 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)
+ print "bsdapp"} }' \
+ )-$(shell \
+ ${CC} --version | grep -o 'cc\|gcc\|icc\|clang' | awk \
+ '{ \
+ if ($$1 == "cc") { \
+ print "gcc" } \
+ else { \
+ print $$1 } \
+ }' \
+ )
.PHONY: config
ifeq ($(RTE_CONFIG_TEMPLATE),)