OSDN Git Service

kbuild: refactor cc-cross-prefix implementation
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Wed, 20 Feb 2019 04:23:56 +0000 (13:23 +0900)
committerMasahiro Yamada <yamada.masahiro@socionext.com>
Wed, 27 Feb 2019 12:41:27 +0000 (21:41 +0900)
commitbd55f96fa9fc29702ec30d75a4290bdadb00209d
tree8848f6aab1d11366e62a767e3e36dd4cf021c240
parent88110713ca9dfbb0b6cb8bbb46ef6ecb313d6681
kbuild: refactor cc-cross-prefix implementation

- $(word 1, <text>) is equivalent to $(firstword <text>)

 - hardcode "gcc" instead of $(CC)

 - minimize the shell script part

A little more notes in case $(filter-out -%, ...) is not clear.

arch/mips/Makefile passes prefixes depending on the configuration.

CROSS_COMPILE := $(call cc-cross-prefix, $(tool-archpref)-linux- \
    $(tool-archpref)-linux-gnu- $(tool-archpref)-unknown-linux-gnu-)

In the Kconfig stage (e.g. when you run 'make defconfig'), neither
CONFIG_32BIT nor CONFIG_64BIT is defined. So, $(tool-archpref) is
empty. As a result, "-linux -linux-gnu- -unknown-linux-gnu" is passed
into cc-cross-prefix. The command 'which' assumes arguments starting
with a hyphen as command options, then emits the following messages:

  Illegal option -l
  Illegal option -l
  Illegal option -u

I think it is strange to define CROSS_COMPILE depending on the CONFIG
options since you need to feed $(CC) to Kconfig, but it is how MIPS
Makefile currently works. Anyway, it would not hurt to filter-out
invalid strings beforehand.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
scripts/Kbuild.include