Message ID | 20240614171428.968174-2-kris.van.hees@oracle.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Generate address range data for built-in modules | expand |
On Fri, 14 Jun 2024 13:14:26 -0400 Kris Van Hees <kris.van.hees@oracle.com> wrote: > Module objects compiled from C source can be identified by the presence > of -DKBUILD_MODFILE and -DKBUILD_MODNAME on their compile command lines. > However, module objects from assembler source do not have this defines. > > Add $(modfile_flags) to modkern_aflags (similar to modkern_cflahs), and > add $(modname_flags) to a_flags (similar to c_flags). You explain what this does but not why it does it. -- Steve
On Fri, Jun 14, 2024 at 01:46:51PM -0400, Steven Rostedt wrote: > On Fri, 14 Jun 2024 13:14:26 -0400 > Kris Van Hees <kris.van.hees@oracle.com> wrote: > > > Module objects compiled from C source can be identified by the presence > > of -DKBUILD_MODFILE and -DKBUILD_MODNAME on their compile command lines. > > However, module objects from assembler source do not have this defines. > > > > Add $(modfile_flags) to modkern_aflags (similar to modkern_cflahs), and > > add $(modname_flags) to a_flags (similar to c_flags). > > You explain what this does but not why it does it. The first paragraph is meant to estabish the "why" (being able to identify what objects are module objects, even if they are compiled from assembler source). As I mention, for objects compiled from C source code, those defines being present identifies those objects as belonging to a module. For objects compiled from assembler source code, those defines are not present. Passing them on the compile command line for assembler source code files for objects that are part of one or more modules allows us to identify all objects that are part of modules with a single consistent mechanism. Kris
On Fri, 14 Jun 2024 14:10:58 -0400 Kris Van Hees <kris.van.hees@oracle.com> wrote: > On Fri, Jun 14, 2024 at 01:46:51PM -0400, Steven Rostedt wrote: > > On Fri, 14 Jun 2024 13:14:26 -0400 > > Kris Van Hees <kris.van.hees@oracle.com> wrote: > > > > > Module objects compiled from C source can be identified by the presence > > > of -DKBUILD_MODFILE and -DKBUILD_MODNAME on their compile command lines. > > > However, module objects from assembler source do not have this defines. > > > > > > Add $(modfile_flags) to modkern_aflags (similar to modkern_cflahs), and > > > add $(modname_flags) to a_flags (similar to c_flags). > > > > You explain what this does but not why it does it. > > The first paragraph is meant to estabish the "why" (being able to identify > what objects are module objects, even if they are compiled from assembler > source). Perhaps there's a lack of context. Sure, the cover letter can help in this regard, but I always look at each commit as a stand alone. > > As I mention, for objects compiled from C source code, those defines being > present identifies those objects as belonging to a module. For objects > compiled from assembler source code, those defines are not present. Passing > them on the compile command line for assembler source code files for objects > that are part of one or more modules allows us to identify all objects that > are part of modules with a single consistent mechanism. Sure, but why do we care? Again, if this was the only patch you sent, it should explain why it is being done. Perhaps something like: "In order to be able to identify what code is from a module, even if it is built in, ..." But what you are saying is just "C code has these flags, make assembly have them too". Which is meaningless. The other patches could use some more explanation too. -- Steve
On Fri, Jun 14, 2024 at 02:26:21PM -0400, Steven Rostedt wrote: > On Fri, 14 Jun 2024 14:10:58 -0400 > Kris Van Hees <kris.van.hees@oracle.com> wrote: > > > On Fri, Jun 14, 2024 at 01:46:51PM -0400, Steven Rostedt wrote: > > > On Fri, 14 Jun 2024 13:14:26 -0400 > > > Kris Van Hees <kris.van.hees@oracle.com> wrote: > > > > > > > Module objects compiled from C source can be identified by the presence > > > > of -DKBUILD_MODFILE and -DKBUILD_MODNAME on their compile command lines. > > > > However, module objects from assembler source do not have this defines. > > > > > > > > Add $(modfile_flags) to modkern_aflags (similar to modkern_cflahs), and > > > > add $(modname_flags) to a_flags (similar to c_flags). > > > > > > You explain what this does but not why it does it. > > > > The first paragraph is meant to estabish the "why" (being able to identify > > what objects are module objects, even if they are compiled from assembler > > source). > > Perhaps there's a lack of context. Sure, the cover letter can help in > this regard, but I always look at each commit as a stand alone. > > > > > As I mention, for objects compiled from C source code, those defines being > > present identifies those objects as belonging to a module. For objects > > compiled from assembler source code, those defines are not present. Passing > > them on the compile command line for assembler source code files for objects > > that are part of one or more modules allows us to identify all objects that > > are part of modules with a single consistent mechanism. > > Sure, but why do we care? Again, if this was the only patch you sent, > it should explain why it is being done. > > Perhaps something like: "In order to be able to identify what code is > from a module, even if it is built in, ..." > > But what you are saying is just "C code has these flags, make > assembly have them too". Which is meaningless. > > The other patches could use some more explanation too. Hi Steve, Thank you for your feedback. I hope that my new patch series [0] addresses your questions. Kris
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 3179747cbd2c..a2524ffd046f 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -234,7 +234,7 @@ modkern_rustflags = \ modkern_aflags = $(if $(part-of-module), \ $(KBUILD_AFLAGS_MODULE) $(AFLAGS_MODULE), \ - $(KBUILD_AFLAGS_KERNEL) $(AFLAGS_KERNEL)) + $(KBUILD_AFLAGS_KERNEL) $(AFLAGS_KERNEL) $(modfile_flags)) c_flags = -Wp,-MMD,$(depfile) $(NOSTDINC_FLAGS) $(LINUXINCLUDE) \ -include $(srctree)/include/linux/compiler_types.h \ @@ -244,7 +244,7 @@ c_flags = -Wp,-MMD,$(depfile) $(NOSTDINC_FLAGS) $(LINUXINCLUDE) \ rust_flags = $(_rust_flags) $(modkern_rustflags) @$(objtree)/include/generated/rustc_cfg a_flags = -Wp,-MMD,$(depfile) $(NOSTDINC_FLAGS) $(LINUXINCLUDE) \ - $(_a_flags) $(modkern_aflags) + $(_a_flags) $(modkern_aflags) $(modname_flags) cpp_flags = -Wp,-MMD,$(depfile) $(NOSTDINC_FLAGS) $(LINUXINCLUDE) \ $(_cpp_flags)
Module objects compiled from C source can be identified by the presence of -DKBUILD_MODFILE and -DKBUILD_MODNAME on their compile command lines. However, module objects from assembler source do not have this defines. Add $(modfile_flags) to modkern_aflags (similar to modkern_cflahs), and add $(modname_flags) to a_flags (similar to c_flags). Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com> --- scripts/Makefile.lib | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)