[v2,18/21] gcc-plugins: move GCC version check for PowerPC to Kconfig

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

Commit Message

Masahiro Yamada March 27, 2018, 5:29 a.m.
For PowerPC, GCC 5.2 is the requirement for GCC plugins.  Move the
version check to Kconfig so that the GCC plugin menus will be hidden
if an older compiler is in use.

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

Acked-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>

---

Changes in v2: None

 arch/powerpc/Kconfig         | 2 +-
 scripts/Makefile.gcc-plugins | 8 --------
 2 files changed, 1 insertion(+), 9 deletions(-)

-- 
2.7.4

Comments

Kees Cook March 28, 2018, 11:30 a.m. | #1
On Mon, Mar 26, 2018 at 10:29 PM, Masahiro Yamada
<yamada.masahiro@socionext.com> wrote:
> For PowerPC, GCC 5.2 is the requirement for GCC plugins.  Move the

> version check to Kconfig so that the GCC plugin menus will be hidden

> if an older compiler is in use.

>

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

> Acked-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>

> ---

>

> Changes in v2: None

>

>  arch/powerpc/Kconfig         | 2 +-

>  scripts/Makefile.gcc-plugins | 8 --------

>  2 files changed, 1 insertion(+), 9 deletions(-)

>

> diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig

> index 73ce5dd..b8474c2 100644

> --- a/arch/powerpc/Kconfig

> +++ b/arch/powerpc/Kconfig

> @@ -195,7 +195,7 @@ config PPC

>         select HAVE_FTRACE_MCOUNT_RECORD

>         select HAVE_FUNCTION_GRAPH_TRACER

>         select HAVE_FUNCTION_TRACER

> -       select HAVE_GCC_PLUGINS

> +       select HAVE_GCC_PLUGINS                 if GCC_VERSION >= 50200

>         select HAVE_GENERIC_GUP

>         select HAVE_HW_BREAKPOINT               if PERF_EVENTS && (PPC_BOOK3S || PPC_8xx)

>         select HAVE_IDE

> diff --git a/scripts/Makefile.gcc-plugins b/scripts/Makefile.gcc-plugins

> index b0f9108..25da4c0 100644

> --- a/scripts/Makefile.gcc-plugins

> +++ b/scripts/Makefile.gcc-plugins

> @@ -56,14 +56,6 @@ gcc-plugins-check: FORCE

>  ifdef CONFIG_GCC_PLUGINS

>    ifeq ($(PLUGINCC),)

>      ifneq ($(GCC_PLUGINS_CFLAGS),)

> -      # Various gccs between 4.5 and 5.1 have bugs on powerpc due to missing

> -      # header files. gcc <= 4.6 doesn't work at all, gccs from 4.8 to 5.1 have

> -      # issues with 64-bit targets.

> -      ifeq ($(ARCH),powerpc)

> -        ifeq ($(call cc-ifversion, -le, 0501, y), y)

> -         @echo "Cannot use CONFIG_GCC_PLUGINS: plugin support on gcc <= 5.1 is buggy on powerpc, please upgrade to gcc 5.2 or newer" >&2 && exit 1


I think we should retain the "buggy" note as a comment in Kconfig
since that knowledge isn't obvious just from the GCC_VERSION test.

> -        endif

> -      endif

>        $(Q)$(srctree)/scripts/gcc-plugin.sh --show-error $(HOSTCXX) $(CC) || true

>        @echo "Cannot use CONFIG_GCC_PLUGINS: your gcc installation does not support plugins, perhaps the necessary headers are missing?" >&2 && exit 1

>      endif

> --

> 2.7.4

>


-Kees

-- 
Kees Cook
Pixel Security

Patch

diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 73ce5dd..b8474c2 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -195,7 +195,7 @@  config PPC
 	select HAVE_FTRACE_MCOUNT_RECORD
 	select HAVE_FUNCTION_GRAPH_TRACER
 	select HAVE_FUNCTION_TRACER
-	select HAVE_GCC_PLUGINS
+	select HAVE_GCC_PLUGINS			if GCC_VERSION >= 50200
 	select HAVE_GENERIC_GUP
 	select HAVE_HW_BREAKPOINT		if PERF_EVENTS && (PPC_BOOK3S || PPC_8xx)
 	select HAVE_IDE
diff --git a/scripts/Makefile.gcc-plugins b/scripts/Makefile.gcc-plugins
index b0f9108..25da4c0 100644
--- a/scripts/Makefile.gcc-plugins
+++ b/scripts/Makefile.gcc-plugins
@@ -56,14 +56,6 @@  gcc-plugins-check: FORCE
 ifdef CONFIG_GCC_PLUGINS
   ifeq ($(PLUGINCC),)
     ifneq ($(GCC_PLUGINS_CFLAGS),)
-      # Various gccs between 4.5 and 5.1 have bugs on powerpc due to missing
-      # header files. gcc <= 4.6 doesn't work at all, gccs from 4.8 to 5.1 have
-      # issues with 64-bit targets.
-      ifeq ($(ARCH),powerpc)
-        ifeq ($(call cc-ifversion, -le, 0501, y), y)
-	  @echo "Cannot use CONFIG_GCC_PLUGINS: plugin support on gcc <= 5.1 is buggy on powerpc, please upgrade to gcc 5.2 or newer" >&2 && exit 1
-        endif
-      endif
       $(Q)$(srctree)/scripts/gcc-plugin.sh --show-error $(HOSTCXX) $(CC) || true
       @echo "Cannot use CONFIG_GCC_PLUGINS: your gcc installation does not support plugins, perhaps the necessary headers are missing?" >&2 && exit 1
     endif