Message ID | alpine.DEB.2.21.1907262245320.1791@nanos.tec.linutronix.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Kbuild: Handle PREEMPT_RT for version string and magic | expand |
Hi Thomas, On Sat, Jul 27, 2019 at 5:49 AM Thomas Gleixner <tglx@linutronix.de> wrote: > > Update the build scripts and the version magic to reflect when > CONFIG_PREEMPT_RT is enabled in the same way as CONFIG_PREEMPT is treated. > > The resulting version strings: > > Linux m 5.3.0-rc1+ #100 SMP Fri Jul 26 ... > Linux m 5.3.0-rc1+ #101 SMP PREEMPT Fri Jul 26 ... > Linux m 5.3.0-rc1+ #102 SMP PREEMPT_RT Fri Jul 26 ... > > The module vermagic: > > 5.3.0-rc1+ SMP mod_unload modversions > 5.3.0-rc1+ SMP preempt mod_unload modversions > 5.3.0-rc1+ SMP preempt_rt mod_unload modversions > > Signed-off-by: Thomas Gleixner <tglx@linutronix.de> > Cc: Masahiro Yamada <yamada.masahiro@socionext.com> > Cc: Michal Marek <michal.lkml@markovi.net> > Cc: linux-kbuild@vger.kernel.org Since CONFIG_PREEMPTION was introduced after -rc1, I think this should be queued on top of -rc2. Just a nit below. > --- > include/linux/vermagic.h | 10 +++++++--- > init/Makefile | 5 +++-- > scripts/Makefile.modpost | 2 +- > scripts/mkcompile_h | 4 +++- > 4 files changed, 14 insertions(+), 7 deletions(-) > > --- a/include/linux/vermagic.h > +++ b/include/linux/vermagic.h > @@ -7,10 +7,14 @@ > #else > #define MODULE_VERMAGIC_SMP "" > #endif > -#ifdef CONFIG_PREEMPT > -#define MODULE_VERMAGIC_PREEMPT "preempt " > +#ifdef CONFIG_PREEMPTION > +# ifdef CONFIG_PREEMPT > +# define MODULE_VERMAGIC_PREEMPT "preempt " > +# else > +# define MODULE_VERMAGIC_PREEMPT "preempt_rt " > +# endif > #else > -#define MODULE_VERMAGIC_PREEMPT "" > +# define MODULE_VERMAGIC_PREEMPT "" Maybe, is the following more readable? #if defined(CONFIG_PREEMPT_RT) #define MODULE_VERMAGIC_PREEMPT "preempt_rt " #elif defined(CONFIG_PREEMPT) #define MODULE_VERMAGIC_PREEMPT "preempt " #else #define MODULE_VERMAGIC_PREEMPT "" #endif Thanks.
Masahiro, On Sun, 28 Jul 2019, Masahiro Yamada wrote: > > Since CONFIG_PREEMPTION was introduced after -rc1, > I think this should be queued on top of -rc2. Right. Are you picking it up? > > -#ifdef CONFIG_PREEMPT > > -#define MODULE_VERMAGIC_PREEMPT "preempt " > > +#ifdef CONFIG_PREEMPTION > > +# ifdef CONFIG_PREEMPT > > +# define MODULE_VERMAGIC_PREEMPT "preempt " > > +# else > > +# define MODULE_VERMAGIC_PREEMPT "preempt_rt " > > +# endif > > #else > > -#define MODULE_VERMAGIC_PREEMPT "" > > +# define MODULE_VERMAGIC_PREEMPT "" > > Maybe, is the following more readable? > > #if defined(CONFIG_PREEMPT_RT) > #define MODULE_VERMAGIC_PREEMPT "preempt_rt " > #elif defined(CONFIG_PREEMPT) > #define MODULE_VERMAGIC_PREEMPT "preempt " > #else > #define MODULE_VERMAGIC_PREEMPT "" > #endif Doh. That's obvious. Must be a result of the heat wave we had. Will send a V2. Thanks, tglx
--- a/include/linux/vermagic.h +++ b/include/linux/vermagic.h @@ -7,10 +7,14 @@ #else #define MODULE_VERMAGIC_SMP "" #endif -#ifdef CONFIG_PREEMPT -#define MODULE_VERMAGIC_PREEMPT "preempt " +#ifdef CONFIG_PREEMPTION +# ifdef CONFIG_PREEMPT +# define MODULE_VERMAGIC_PREEMPT "preempt " +# else +# define MODULE_VERMAGIC_PREEMPT "preempt_rt " +# endif #else -#define MODULE_VERMAGIC_PREEMPT "" +# define MODULE_VERMAGIC_PREEMPT "" #endif #ifdef CONFIG_MODULE_UNLOAD #define MODULE_VERMAGIC_MODULE_UNLOAD "mod_unload " --- a/init/Makefile +++ b/init/Makefile @@ -33,5 +33,6 @@ mounts-$(CONFIG_BLK_DEV_MD) += do_mounts silent_chk_compile.h = : include/generated/compile.h: FORCE @$($(quiet)chk_compile.h) - $(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkcompile_h $@ \ - "$(UTS_MACHINE)" "$(CONFIG_SMP)" "$(CONFIG_PREEMPT)" "$(CC) $(KBUILD_CFLAGS)" + $(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkcompile_h $@ \ + "$(UTS_MACHINE)" "$(CONFIG_SMP)" "$(CONFIG_PREEMPT)" \ + "$(CONFIG_PREEMPT_RT)" "$(CC) $(KBUILD_CFLAGS)" --- a/scripts/Makefile.modpost +++ b/scripts/Makefile.modpost @@ -23,7 +23,7 @@ # Version magic (see include/linux/vermagic.h for full details) # - Kernel release # - SMP is CONFIG_SMP -# - PREEMPT is CONFIG_PREEMPT +# - PREEMPT is CONFIG_PREEMPT[_RT] # - GCC Version # Module info # - Module version (MODULE_VERSION) --- a/scripts/mkcompile_h +++ b/scripts/mkcompile_h @@ -5,7 +5,8 @@ TARGET=$1 ARCH=$2 SMP=$3 PREEMPT=$4 -CC=$5 +PREEMPT_RT=$5 +CC=$6 vecho() { [ "${quiet}" = "silent_" ] || echo "$@" ; } @@ -53,6 +54,7 @@ UTS_VERSION="#$VERSION" CONFIG_FLAGS="" if [ -n "$SMP" ] ; then CONFIG_FLAGS="SMP"; fi if [ -n "$PREEMPT" ] ; then CONFIG_FLAGS="$CONFIG_FLAGS PREEMPT"; fi +if [ -n "$PREEMPT_RT" ] ; then CONFIG_FLAGS="$CONFIG_FLAGS PREEMPT_RT"; fi UTS_VERSION="$UTS_VERSION $CONFIG_FLAGS $TIMESTAMP" # Truncate to maximum length
Update the build scripts and the version magic to reflect when CONFIG_PREEMPT_RT is enabled in the same way as CONFIG_PREEMPT is treated. The resulting version strings: Linux m 5.3.0-rc1+ #100 SMP Fri Jul 26 ... Linux m 5.3.0-rc1+ #101 SMP PREEMPT Fri Jul 26 ... Linux m 5.3.0-rc1+ #102 SMP PREEMPT_RT Fri Jul 26 ... The module vermagic: 5.3.0-rc1+ SMP mod_unload modversions 5.3.0-rc1+ SMP preempt mod_unload modversions 5.3.0-rc1+ SMP preempt_rt mod_unload modversions Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Masahiro Yamada <yamada.masahiro@socionext.com> Cc: Michal Marek <michal.lkml@markovi.net> Cc: linux-kbuild@vger.kernel.org --- include/linux/vermagic.h | 10 +++++++--- init/Makefile | 5 +++-- scripts/Makefile.modpost | 2 +- scripts/mkcompile_h | 4 +++- 4 files changed, 14 insertions(+), 7 deletions(-)