[v2,13/21] kconfig: add CC_IS_GCC and GCC_VERSION

Message ID 1522128575-5326-14-git-send-email-yamada.masahiro@socionext.com
State New
Headers show
Series
  • kconfig: move compiler capability tests to Kconfig
Related show

Commit Message

Masahiro Yamada March 27, 2018, 5:29 a.m.
This will be useful to specify the required compiler version,
like this:

config FOO
        bool "Use Foo"
        depends on GCC_VERSION >= 408000
        help
          This feature requires GCC 4.8 or newer.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

---

Changes in v2: None

 init/Kconfig | 8 ++++++++
 1 file changed, 8 insertions(+)

-- 
2.7.4

Comments

Kees Cook March 28, 2018, 11:19 a.m. | #1
On Mon, Mar 26, 2018 at 10:29 PM, Masahiro Yamada
<yamada.masahiro@socionext.com> wrote:
> This will be useful to specify the required compiler version,

> like this:

>

> config FOO

>         bool "Use Foo"

>         depends on GCC_VERSION >= 408000

>         help

>           This feature requires GCC 4.8 or newer.

>

> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>


Reviewed-by: Kees Cook <keescook@chromium.org>


-Kees

-- 
Kees Cook
Pixel Security

Patch

diff --git a/init/Kconfig b/init/Kconfig
index c456030..923cab5 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -14,6 +14,14 @@  macro success $(shell ($(1) && echo y) || echo n)
 # expanded to y if the given compiler flag is supported, n otherwise
 macro cc-option $(success $CC -Werror $(1) -c -x c /dev/null -o /dev/null)
 
+config CC_IS_GCC
+	def_bool $(success $CC --version | grep -q gcc)
+
+config GCC_VERSION
+	int
+	default $(shell $srctree/scripts/gcc-version.sh -p $CC | sed 's/^0*//') if CC_IS_GCC
+	default 0
+
 config CONSTRUCTORS
 	bool
 	depends on !UML