Re: [PATCH] MIPS: Allow R6 compact branch policy to be left unspecified
On Wed, 11 May 2016, Ralf Baechle wrote: > I was wondering if we should simply probe for the availability of the > GCC option and not use it, if using an older GCC, then change the > help text for the option accordingly. This approach would allow > make randconfig or similar to work as expected with older compilers. Well, if the default is `optimal' anyway, then I think we can simply omit the option unless someone has requested an override. In which case I think the compilation should fail if the option is not supported, under the principle of the least surprise -- if someone has requested a feature, then they ought to be informed that it is absent rather than silently fooled into thinking it has been enabled while in fact it has not. I agree probing for the presence of the option requested and then failing gracefully (e.g. "Toolchain feature FOO not available, please upgrade or reconfigure without BAR" or suchlike) is a better idea than just aborting midway through, and I think `randconfig' and similar validators should be prepared for it and handle gracefully as well (i.e. not a kernel bug). FWIW, Maciej
Re: [PATCH] MIPS: Allow R6 compact branch policy to be left unspecified
On Wed, 11 May 2016, Ralf Baechle wrote: > I was wondering if we should simply probe for the availability of the > GCC option and not use it, if using an older GCC, then change the > help text for the option accordingly. This approach would allow > make randconfig or similar to work as expected with older compilers. Well, if the default is `optimal' anyway, then I think we can simply omit the option unless someone has requested an override. In which case I think the compilation should fail if the option is not supported, under the principle of the least surprise -- if someone has requested a feature, then they ought to be informed that it is absent rather than silently fooled into thinking it has been enabled while in fact it has not. I agree probing for the presence of the option requested and then failing gracefully (e.g. "Toolchain feature FOO not available, please upgrade or reconfigure without BAR" or suchlike) is a better idea than just aborting midway through, and I think `randconfig' and similar validators should be prepared for it and handle gracefully as well (i.e. not a kernel bug). FWIW, Maciej
Re: [PATCH] MIPS: Allow R6 compact branch policy to be left unspecified
I was wondering if we should simply probe for the availability of the GCC option and not use it, if using an older GCC, then change the help text for the option accordingly. This approach would allow make randconfig or similar to work as expected with older compilers. Ralf
Re: [PATCH] MIPS: Allow R6 compact branch policy to be left unspecified
I was wondering if we should simply probe for the availability of the GCC option and not use it, if using an older GCC, then change the help text for the option accordingly. This approach would allow make randconfig or similar to work as expected with older compilers. Ralf
Re: [PATCH] MIPS: Allow R6 compact branch policy to be left unspecified
On Fri, Apr 22, 2016 at 04:56:02PM +0100, Maciej W. Rozycki wrote: > On Fri, 22 Apr 2016, Paul Burton wrote: > > > It turns out that some toolchains which support MIPS R6 don't support > > the -mcompact-branches flag to specify compact branch behaviour. Default > > to not providing the -mcompact-branch option to the compiler such that > > we can build with such toolchains. > > Good idea overall, one further suggestion below. > > > diff --git a/arch/mips/Kconfig.debug b/arch/mips/Kconfig.debug > > index f0e314c..e91b3d1 100644 > > --- a/arch/mips/Kconfig.debug > > +++ b/arch/mips/Kconfig.debug > > @@ -117,7 +117,15 @@ if CPU_MIPSR6 > > > > choice > > prompt "Compact branch policy" > > - default MIPS_COMPACT_BRANCHES_OPTIMAL > > + default MIPS_COMPACT_BRANCHES_DEFAULT > > + > > +config MIPS_COMPACT_BRANCHES_DEFAULT > > + bool "Toolchain Default (don't specify)" > > + help > > + Don't pass the -mcompact-branches flag to the compiler, allowing it > > + to use its default (generally "optimal"). This is particularly > > + useful for early R6-supporting toolchains which don't support the > > + -mcompact-branches flag. > > > > config MIPS_COMPACT_BRANCHES_NEVER > > bool "Never (force delay slot branches)" > > How about making the option depend on DEBUG_KERNEL and maybe making it an > umbrella setting to hide details from users who do not want to be > bothered, i.e. something like: > > config MIPS_COMPACT_BRANCHES_OVERRIDE > bool "Override the toolchain default for compact branch policy" > depends on DEBUG_KERNEL > default n Although note that "default n" is redundant. Cheers James > [...] > if MIPS_COMPACT_BRANCHES_OVERRIDE > choice > prompt "Compact branch policy" > default MIPS_COMPACT_BRANCHES_OPTIMAL > [...] > endif # MIPS_COMPACT_BRANCHES_OVERRIDE > > ? > > Maciej > signature.asc Description: Digital signature
Re: [PATCH] MIPS: Allow R6 compact branch policy to be left unspecified
On Fri, Apr 22, 2016 at 04:56:02PM +0100, Maciej W. Rozycki wrote: > On Fri, 22 Apr 2016, Paul Burton wrote: > > > It turns out that some toolchains which support MIPS R6 don't support > > the -mcompact-branches flag to specify compact branch behaviour. Default > > to not providing the -mcompact-branch option to the compiler such that > > we can build with such toolchains. > > Good idea overall, one further suggestion below. > > > diff --git a/arch/mips/Kconfig.debug b/arch/mips/Kconfig.debug > > index f0e314c..e91b3d1 100644 > > --- a/arch/mips/Kconfig.debug > > +++ b/arch/mips/Kconfig.debug > > @@ -117,7 +117,15 @@ if CPU_MIPSR6 > > > > choice > > prompt "Compact branch policy" > > - default MIPS_COMPACT_BRANCHES_OPTIMAL > > + default MIPS_COMPACT_BRANCHES_DEFAULT > > + > > +config MIPS_COMPACT_BRANCHES_DEFAULT > > + bool "Toolchain Default (don't specify)" > > + help > > + Don't pass the -mcompact-branches flag to the compiler, allowing it > > + to use its default (generally "optimal"). This is particularly > > + useful for early R6-supporting toolchains which don't support the > > + -mcompact-branches flag. > > > > config MIPS_COMPACT_BRANCHES_NEVER > > bool "Never (force delay slot branches)" > > How about making the option depend on DEBUG_KERNEL and maybe making it an > umbrella setting to hide details from users who do not want to be > bothered, i.e. something like: > > config MIPS_COMPACT_BRANCHES_OVERRIDE > bool "Override the toolchain default for compact branch policy" > depends on DEBUG_KERNEL > default n Although note that "default n" is redundant. Cheers James > [...] > if MIPS_COMPACT_BRANCHES_OVERRIDE > choice > prompt "Compact branch policy" > default MIPS_COMPACT_BRANCHES_OPTIMAL > [...] > endif # MIPS_COMPACT_BRANCHES_OVERRIDE > > ? > > Maciej > signature.asc Description: Digital signature
Re: [PATCH] MIPS: Allow R6 compact branch policy to be left unspecified
On Fri, 22 Apr 2016, Paul Burton wrote: > It turns out that some toolchains which support MIPS R6 don't support > the -mcompact-branches flag to specify compact branch behaviour. Default > to not providing the -mcompact-branch option to the compiler such that > we can build with such toolchains. Good idea overall, one further suggestion below. > diff --git a/arch/mips/Kconfig.debug b/arch/mips/Kconfig.debug > index f0e314c..e91b3d1 100644 > --- a/arch/mips/Kconfig.debug > +++ b/arch/mips/Kconfig.debug > @@ -117,7 +117,15 @@ if CPU_MIPSR6 > > choice > prompt "Compact branch policy" > - default MIPS_COMPACT_BRANCHES_OPTIMAL > + default MIPS_COMPACT_BRANCHES_DEFAULT > + > +config MIPS_COMPACT_BRANCHES_DEFAULT > + bool "Toolchain Default (don't specify)" > + help > + Don't pass the -mcompact-branches flag to the compiler, allowing it > + to use its default (generally "optimal"). This is particularly > + useful for early R6-supporting toolchains which don't support the > + -mcompact-branches flag. > > config MIPS_COMPACT_BRANCHES_NEVER > bool "Never (force delay slot branches)" How about making the option depend on DEBUG_KERNEL and maybe making it an umbrella setting to hide details from users who do not want to be bothered, i.e. something like: config MIPS_COMPACT_BRANCHES_OVERRIDE bool "Override the toolchain default for compact branch policy" depends on DEBUG_KERNEL default n [...] if MIPS_COMPACT_BRANCHES_OVERRIDE choice prompt "Compact branch policy" default MIPS_COMPACT_BRANCHES_OPTIMAL [...] endif # MIPS_COMPACT_BRANCHES_OVERRIDE ? Maciej
Re: [PATCH] MIPS: Allow R6 compact branch policy to be left unspecified
On Fri, 22 Apr 2016, Paul Burton wrote: > It turns out that some toolchains which support MIPS R6 don't support > the -mcompact-branches flag to specify compact branch behaviour. Default > to not providing the -mcompact-branch option to the compiler such that > we can build with such toolchains. Good idea overall, one further suggestion below. > diff --git a/arch/mips/Kconfig.debug b/arch/mips/Kconfig.debug > index f0e314c..e91b3d1 100644 > --- a/arch/mips/Kconfig.debug > +++ b/arch/mips/Kconfig.debug > @@ -117,7 +117,15 @@ if CPU_MIPSR6 > > choice > prompt "Compact branch policy" > - default MIPS_COMPACT_BRANCHES_OPTIMAL > + default MIPS_COMPACT_BRANCHES_DEFAULT > + > +config MIPS_COMPACT_BRANCHES_DEFAULT > + bool "Toolchain Default (don't specify)" > + help > + Don't pass the -mcompact-branches flag to the compiler, allowing it > + to use its default (generally "optimal"). This is particularly > + useful for early R6-supporting toolchains which don't support the > + -mcompact-branches flag. > > config MIPS_COMPACT_BRANCHES_NEVER > bool "Never (force delay slot branches)" How about making the option depend on DEBUG_KERNEL and maybe making it an umbrella setting to hide details from users who do not want to be bothered, i.e. something like: config MIPS_COMPACT_BRANCHES_OVERRIDE bool "Override the toolchain default for compact branch policy" depends on DEBUG_KERNEL default n [...] if MIPS_COMPACT_BRANCHES_OVERRIDE choice prompt "Compact branch policy" default MIPS_COMPACT_BRANCHES_OPTIMAL [...] endif # MIPS_COMPACT_BRANCHES_OVERRIDE ? Maciej
[PATCH] MIPS: Allow R6 compact branch policy to be left unspecified
It turns out that some toolchains which support MIPS R6 don't support the -mcompact-branches flag to specify compact branch behaviour. Default to not providing the -mcompact-branch option to the compiler such that we can build with such toolchains. Signed-off-by: Paul BurtonReported-by: kbuild test robot Fixes: c1a0e9bc885d ("MIPS: Allow compact branch policy to be changed") Cc: stable # v4.4+ --- arch/mips/Kconfig.debug | 10 +- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/arch/mips/Kconfig.debug b/arch/mips/Kconfig.debug index f0e314c..e91b3d1 100644 --- a/arch/mips/Kconfig.debug +++ b/arch/mips/Kconfig.debug @@ -117,7 +117,15 @@ if CPU_MIPSR6 choice prompt "Compact branch policy" - default MIPS_COMPACT_BRANCHES_OPTIMAL + default MIPS_COMPACT_BRANCHES_DEFAULT + +config MIPS_COMPACT_BRANCHES_DEFAULT + bool "Toolchain Default (don't specify)" + help + Don't pass the -mcompact-branches flag to the compiler, allowing it + to use its default (generally "optimal"). This is particularly + useful for early R6-supporting toolchains which don't support the + -mcompact-branches flag. config MIPS_COMPACT_BRANCHES_NEVER bool "Never (force delay slot branches)" -- 2.8.0
[PATCH] MIPS: Allow R6 compact branch policy to be left unspecified
It turns out that some toolchains which support MIPS R6 don't support the -mcompact-branches flag to specify compact branch behaviour. Default to not providing the -mcompact-branch option to the compiler such that we can build with such toolchains. Signed-off-by: Paul Burton Reported-by: kbuild test robot Fixes: c1a0e9bc885d ("MIPS: Allow compact branch policy to be changed") Cc: stable # v4.4+ --- arch/mips/Kconfig.debug | 10 +- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/arch/mips/Kconfig.debug b/arch/mips/Kconfig.debug index f0e314c..e91b3d1 100644 --- a/arch/mips/Kconfig.debug +++ b/arch/mips/Kconfig.debug @@ -117,7 +117,15 @@ if CPU_MIPSR6 choice prompt "Compact branch policy" - default MIPS_COMPACT_BRANCHES_OPTIMAL + default MIPS_COMPACT_BRANCHES_DEFAULT + +config MIPS_COMPACT_BRANCHES_DEFAULT + bool "Toolchain Default (don't specify)" + help + Don't pass the -mcompact-branches flag to the compiler, allowing it + to use its default (generally "optimal"). This is particularly + useful for early R6-supporting toolchains which don't support the + -mcompact-branches flag. config MIPS_COMPACT_BRANCHES_NEVER bool "Never (force delay slot branches)" -- 2.8.0