lkml.org 
[lkml]   [2022]   [Dec]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    Subject[PATCH v8 9/9] build: Add modules.builtin.alias
    From
    Generate modules.builtin.alias using modpost and install it with the
    modules.

    Signed-off-by: Allen Webb <allenwebb@google.com>
    ---
    .gitignore | 1 +
    Makefile | 1 +
    scripts/Makefile.modpost | 17 ++++++++++++++++-
    3 files changed, 18 insertions(+), 1 deletion(-)

    diff --git a/.gitignore b/.gitignore
    index 47229f98b327b..40a90bca89641 100644
    --- a/.gitignore
    +++ b/.gitignore
    @@ -67,6 +67,7 @@ modules.order
    /System.map
    /Module.markers
    /modules.builtin
    +/modules.builtin.alias
    /modules.builtin.modinfo
    /modules.nsdeps

    diff --git a/Makefile b/Makefile
    index 78525ebea8762..572f364f40538 100644
    --- a/Makefile
    +++ b/Makefile
    @@ -1558,6 +1558,7 @@ __modinst_pre:
    fi
    @sed 's:^:kernel/:' modules.order > $(MODLIB)/modules.order
    @cp -f modules.builtin $(MODLIB)/
    + @cp -f modules.builtin.alias $(MODLIB)/
    @cp -f $(objtree)/modules.builtin.modinfo $(MODLIB)/

    endif # CONFIG_MODULES
    diff --git a/scripts/Makefile.modpost b/scripts/Makefile.modpost
    index e41dee64d429c..94c1d66c7769a 100644
    --- a/scripts/Makefile.modpost
    +++ b/scripts/Makefile.modpost
    @@ -15,6 +15,7 @@
    # 2) modpost is then used to
    # 3) create one <module>.mod.c file per module
    # 4) create one Module.symvers file with CRC for all exported symbols
    +# 5) create modules.builtin.alias the aliases for built-in modules

    # Step 3 is used to place certain information in the module's ELF
    # section, including information such as:
    @@ -51,6 +52,21 @@ ifneq ($(findstring i,$(filter-out --%,$(MAKEFLAGS))),)
    modpost-args += -n
    endif

    +vmlinux.o-if-present := $(wildcard vmlinux.o)
    +ifneq ($(vmlinux.o-if-present),)
    +output-builtin.alias := modules.builtin.alias
    +modpost-args += -b .modules.builtin.alias.in
    +.modules.builtin.alias.in: $(output-symdump)
    + @# Building $(output-symdump) generates .modules.builtin.alias.in as a
    + @# side effect.
    + @[ -e $@ ] || $(MODPOST) -b .modules.builtin.alias.in $(vmlinux.o-if-present)
    +
    +$(output-builtin.alias): .modules.builtin.alias.in
    + sort -o $@ $^
    +
    +__modpost: $(output-builtin.alias)
    +endif
    +
    ifeq ($(KBUILD_EXTMOD),)

    # Generate the list of in-tree objects in vmlinux
    @@ -78,7 +94,6 @@ targets += .vmlinux.objs
    .vmlinux.objs: vmlinux.a $(KBUILD_VMLINUX_LIBS) FORCE
    $(call if_changed,vmlinux_objs)

    -vmlinux.o-if-present := $(wildcard vmlinux.o)
    output-symdump := vmlinux.symvers

    ifdef KBUILD_MODULES
    --
    2.37.3
    \
     
     \ /
      Last update: 2023-03-26 23:15    [W:4.536 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site