• Kris Van Hees's avatar
    kbuild: add mod(name,file)_flags to assembler flags for module objects · 23d93aa4
    Kris Van Hees authored
    In order to create the file at build time, modules.builtin.ranges, that
    contains the range of addresses for all built-in modules, there needs to
    be a way to identify what code is compiled into modules.
    
    To identify what code is compiled into modules during a kernel build,
    one can look for the presence of the -DKBUILD_MODFILE and -DKBUILD_MODNAME
    options in the compile command lines.  A simple grep in .*.cmd files for
    those options is sufficient for this.
    
    Unfortunately, these options are only passed when compiling C source files.
    Various modules also include objects built from assembler source, and these
    options are not passed in that case.
    
    Adding $(modfile_flags) to modkern_aflags (similar to modkern_cflags), and
    adding $(modname_flags) to a_flags (similar to c_flags) makes it possible
    to identify which objects are compiled into modules for both C and
    assembler source files.  While KBUILD_MODFILE is sufficient to generate
    the modules ranges data, KBUILD_MODNAME is passed as well for consistency
    with the C source code case.
    Signed-off-by: default avatarKris Van Hees <kris.van.hees@oracle.com>
    Reviewed-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
    Tested-by: default avatarSam James <sam@gentoo.org>
    Reviewed-by: default avatarSami Tolvanen <samitolvanen@google.com>
    Tested-by: default avatarSami Tolvanen <samitolvanen@google.com>
    Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
    23d93aa4
Makefile.lib 18.6 KB