mk: fix shell errors when building with clang

On my system, the version of the compiler is not properly retrieved,
resulting in strange logs when building the dpdk:
  /bin/sh: line 0: test: too many arguments

This happens when mk/toolchain/clang/rte.toolchain-compat.mk is included
from a directory that use gcc to build (ex: kernel modules). In that
case, the CLANG_VERSION variable contains spaces that breaks some shell
calls to the test program.

The error is because the output of "gcc -v" on my system contains 2 lines
that matches the "version" string:

  Configured with: ../src/configure -v \
    --with-pkgversion='Debian 6.3.0-6' [...]
  gcc version 6.3.0 20170205 (Debian 6.3.0-6)

This may be specific to Debian. Fix it by specializing the grep.

Fixes: 2ef6eea891 ("mk: add clang toolchain")
Cc: stable@dpdk.org

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
This commit is contained in:
Olivier Matz 2017-04-06 16:12:41 +02:00 committed by Thomas Monjalon
parent 75206638ef
commit e629b8dbd9

View File

@ -38,7 +38,8 @@
# find out CLANG version
CLANG_VERSION := $(shell $(CC) -v 2>&1 | grep version | sed "s/.*version \([0-9]*\.[0-9]*\).*/\1/")
CLANG_VERSION := $(shell $(CC) -v 2>&1 | \
sed -n "s/.*version \([0-9]*\.[0-9]*\).*/\1/p")
CLANG_MAJOR_VERSION := $(shell echo $(CLANG_VERSION) | cut -f1 -d.)