All of lore.kernel.org
 help / color / mirror / Atom feed
* Compiling with old gcc breaks when CONFIG_RETPOLINE is off
@ 2018-12-04  9:58 Meelis Roos
  2018-12-04 13:57 ` Zhenzhong Duan
  2018-12-05  1:30 ` Zhenzhong Duan
  0 siblings, 2 replies; 4+ messages in thread
From: Meelis Roos @ 2018-12-04  9:58 UTC (permalink / raw)
  To: Zhenzhong Duan, Thomas Gleixner, David Woodhouse; +Cc: LKML

Just tried 4.20-rc5 on an old K6-2 PC with gcc 5.3.1, got an error about non-retpoline compiler,
turned CONFIG_RETPOLINE off and retried.

To my surprise, compilation still breaks with
arch/x86/Makefile:224: *** You are building kernel with non-retpoline compiler, please update your compiler..  Stop.

As I read the Makefile, it should error only when CONFIG_RETPOLINE is enabled, but it still breaks.

$ grep -r CONFIG_RETPOLINE .config
# CONFIG_RETPOLINE is not set

$ grep -r CONFIG_RETPOLINE include/
include/generated/autoconf.h:#define CONFIG_RETPOLINE 1
include/config/auto.conf:CONFIG_RETPOLINE=y

So the headers have not been updated yet, maybe?

-- 
Meelis Roos <mroos@linux.ee>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Compiling with old gcc breaks when CONFIG_RETPOLINE is off
  2018-12-04  9:58 Compiling with old gcc breaks when CONFIG_RETPOLINE is off Meelis Roos
@ 2018-12-04 13:57 ` Zhenzhong Duan
  2018-12-05  1:30 ` Zhenzhong Duan
  1 sibling, 0 replies; 4+ messages in thread
From: Zhenzhong Duan @ 2018-12-04 13:57 UTC (permalink / raw)
  To: Meelis Roos, Thomas Gleixner, David Woodhouse; +Cc: LKML, yamada.masahiro

Since commit '315bab4e972d kbuild: fix endless syncconfig in case arch 
Makefile sets CROSS_COMPILE',

arch/$(SRCARCH)/Makefile is moved ahead of include/config/%.conf 
synchonization in root Makefile.

So all the CONFIG_* option used in arch/$(SRCARCH)/Makefile may have 
stale value if they were just updated in .config.

This looks like an issue. I'm not familiar with kbuild. Ccing Yamada for 
help.


Thanks

Zhenzhong

On 2018/12/4 17:58, Meelis Roos wrote:
> Just tried 4.20-rc5 on an old K6-2 PC with gcc 5.3.1, got an error 
> about non-retpoline compiler,
> turned CONFIG_RETPOLINE off and retried.
>
> To my surprise, compilation still breaks with
> arch/x86/Makefile:224: *** You are building kernel with non-retpoline 
> compiler, please update your compiler..  Stop.
>
> As I read the Makefile, it should error only when CONFIG_RETPOLINE is 
> enabled, but it still breaks.
>
> $ grep -r CONFIG_RETPOLINE .config
> # CONFIG_RETPOLINE is not set
>
> $ grep -r CONFIG_RETPOLINE include/
> include/generated/autoconf.h:#define CONFIG_RETPOLINE 1
> include/config/auto.conf:CONFIG_RETPOLINE=y
>
> So the headers have not been updated yet, maybe?
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Compiling with old gcc breaks when CONFIG_RETPOLINE is off
  2018-12-04  9:58 Compiling with old gcc breaks when CONFIG_RETPOLINE is off Meelis Roos
  2018-12-04 13:57 ` Zhenzhong Duan
@ 2018-12-05  1:30 ` Zhenzhong Duan
  2018-12-05  3:00   ` Masahiro Yamada
  1 sibling, 1 reply; 4+ messages in thread
From: Zhenzhong Duan @ 2018-12-05  1:30 UTC (permalink / raw)
  To: Meelis Roos, Thomas Gleixner, David Woodhouse; +Cc: LKML, yamada.masahiro

Hi Meelis,

Could you try below change? It force syncconfig for  any 'make *config"

so that autoconf.h and auto.conf are always updated.

diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
index 98e0c7a..802875b 100644
--- a/scripts/kconfig/conf.c
+++ b/scripts/kconfig/conf.c
@@ -38,7 +38,7 @@ enum input_mode {

  static int indent = 1;
  static int tty_stdio;
-static int sync_kconfig;
+static int sync_kconfig = 1;
  static int conf_cnt;
  static char line[PATH_MAX];
  static struct menu *rootEntry;
@@ -506,11 +506,11 @@ int main(int ac, char **av)
                          * Suppress distracting "configuration written 
to ..."
                          */
                         conf_set_message_callback(NULL);
-                       sync_kconfig = 1;
                         break;
                 case defconfig:
                 case savedefconfig:
                         defconfig_file = optarg;
+                       sync_kconfig = 0;
                         break;
                 case randconfig:
                 {
@@ -537,13 +537,15 @@ int main(int ac, char **av)
                         srand(seed);
                         break;
                 }
+               case listnewconfig:
+                       sync_kconfig = 0;
+                       /* fall through */
                 case oldaskconfig:
                 case oldconfig:
                 case allnoconfig:
                 case allyesconfig:
                 case allmodconfig:
                 case alldefconfig:
-               case listnewconfig:
                 case olddefconfig:
                         break;
                 case '?':

Thanks

Zhenzhong

On 2018/12/4 17:58, Meelis Roos wrote:
> Just tried 4.20-rc5 on an old K6-2 PC with gcc 5.3.1, got an error 
> about non-retpoline compiler,
> turned CONFIG_RETPOLINE off and retried.
>
> To my surprise, compilation still breaks with
> arch/x86/Makefile:224: *** You are building kernel with non-retpoline 
> compiler, please update your compiler..  Stop.
>
> As I read the Makefile, it should error only when CONFIG_RETPOLINE is 
> enabled, but it still breaks.
>
> $ grep -r CONFIG_RETPOLINE .config
> # CONFIG_RETPOLINE is not set
>
> $ grep -r CONFIG_RETPOLINE include/
> include/generated/autoconf.h:#define CONFIG_RETPOLINE 1
> include/config/auto.conf:CONFIG_RETPOLINE=y
>
> So the headers have not been updated yet, maybe?
>

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: Compiling with old gcc breaks when CONFIG_RETPOLINE is off
  2018-12-05  1:30 ` Zhenzhong Duan
@ 2018-12-05  3:00   ` Masahiro Yamada
  0 siblings, 0 replies; 4+ messages in thread
From: Masahiro Yamada @ 2018-12-05  3:00 UTC (permalink / raw)
  To: zhenzhong.duan
  Cc: Meelis Roos, Thomas Gleixner, David Woodhouse, Linux Kernel Mailing List

On Wed, Dec 5, 2018 at 10:31 AM Zhenzhong Duan
<zhenzhong.duan@oracle.com> wrote:
>
> Hi Meelis,
>
> Could you try below change? It force syncconfig for  any 'make *config"
>
> so that autoconf.h and auto.conf are always updated.


NACK.

syncconfig should happen only when you are about to build something.

This patch let "make *config" touch include/config/* around
unnecessarily.




> diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
> index 98e0c7a..802875b 100644
> --- a/scripts/kconfig/conf.c
> +++ b/scripts/kconfig/conf.c
> @@ -38,7 +38,7 @@ enum input_mode {
>
>   static int indent = 1;
>   static int tty_stdio;
> -static int sync_kconfig;
> +static int sync_kconfig = 1;
>   static int conf_cnt;
>   static char line[PATH_MAX];
>   static struct menu *rootEntry;
> @@ -506,11 +506,11 @@ int main(int ac, char **av)
>                           * Suppress distracting "configuration written
> to ..."
>                           */
>                          conf_set_message_callback(NULL);
> -                       sync_kconfig = 1;
>                          break;
>                  case defconfig:
>                  case savedefconfig:
>                          defconfig_file = optarg;
> +                       sync_kconfig = 0;
>                          break;
>                  case randconfig:
>                  {
> @@ -537,13 +537,15 @@ int main(int ac, char **av)
>                          srand(seed);
>                          break;
>                  }
> +               case listnewconfig:
> +                       sync_kconfig = 0;
> +                       /* fall through */
>                  case oldaskconfig:
>                  case oldconfig:
>                  case allnoconfig:
>                  case allyesconfig:
>                  case allmodconfig:
>                  case alldefconfig:
> -               case listnewconfig:
>                  case olddefconfig:
>                          break;
>                  case '?':
>
> Thanks
>
> Zhenzhong
>
> On 2018/12/4 17:58, Meelis Roos wrote:
> > Just tried 4.20-rc5 on an old K6-2 PC with gcc 5.3.1, got an error
> > about non-retpoline compiler,
> > turned CONFIG_RETPOLINE off and retried.
> >
> > To my surprise, compilation still breaks with
> > arch/x86/Makefile:224: *** You are building kernel with non-retpoline
> > compiler, please update your compiler..  Stop.
> >
> > As I read the Makefile, it should error only when CONFIG_RETPOLINE is
> > enabled, but it still breaks.
> >
> > $ grep -r CONFIG_RETPOLINE .config
> > # CONFIG_RETPOLINE is not set
> >
> > $ grep -r CONFIG_RETPOLINE include/
> > include/generated/autoconf.h:#define CONFIG_RETPOLINE 1
> > include/config/auto.conf:CONFIG_RETPOLINE=y
> >
> > So the headers have not been updated yet, maybe?
> >



-- 
Best Regards
Masahiro Yamada

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-12-05  3:01 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-04  9:58 Compiling with old gcc breaks when CONFIG_RETPOLINE is off Meelis Roos
2018-12-04 13:57 ` Zhenzhong Duan
2018-12-05  1:30 ` Zhenzhong Duan
2018-12-05  3:00   ` Masahiro Yamada

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.