OSDN Git Service

kbuild: rename built-in.o to built-in.a
authorNicholas Piggin <npiggin@gmail.com>
Sat, 10 Feb 2018 14:25:04 +0000 (00:25 +1000)
committer0ranko0P <ranko0p@outlook.com>
Sat, 7 Dec 2019 08:32:46 +0000 (16:32 +0800)
Incremental linking is gone, so rename built-in.o to built-in.a, which
is the usual extension for archive files.

This patch does two things, first is a simple search/replace:

git grep -l 'built-in\.o' | xargs sed -i 's/built-in\.o/built-in\.a/g'

The second is to invert nesting of nested text manipulations to avoid
filtering built-in.a out from libs-y2:

-libs-y2 := $(filter-out %.a, $(patsubst %/, %/built-in.a, $(libs-y)))
+libs-y2 := $(patsubst %/, %/built-in.a, $(filter-out %.a, $(libs-y)))

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Documentation/kbuild/makefiles.txt
Makefile
arch/blackfin/kernel/bfin_ksyms.c
arch/powerpc/kernel/Makefile
drivers/s390/Makefile
lib/Kconfig.debug
scripts/Makefile.build
scripts/Makefile.lib
scripts/link-vmlinux.sh
scripts/namespace.pl
usr/initramfs_data.S

index bc3e380..2d251d7 100644 (file)
@@ -152,18 +152,18 @@ more details, with real examples.
        configuration.
 
        Kbuild compiles all the $(obj-y) files.  It then calls
-       "$(AR) rcSTP" to merge these files into one built-in.o file.
+       "$(AR) rcSTP" to merge these files into one built-in.a file.
        This is a thin archive without a symbol table, which makes it
        unsuitable as a linker input.
 
        The scripts/link-vmlinux.sh script later makes an aggregate
-       built-in.o with "${AR} rcsTP", which creates the thin archive
+       built-in.a with "${AR} rcsTP", which creates the thin archive
        with a symbol table and an index, making it a valid input for
        the final vmlinux link passes.
 
        The order of files in $(obj-y) is significant.  Duplicates in
        the lists are allowed: the first instance will be linked into
-       built-in.o and succeeding instances will be ignored.
+       built-in.a and succeeding instances will be ignored.
 
        Link order is significant, because certain functions
        (module_init() / __initcall) will be called during boot in the
@@ -227,7 +227,7 @@ more details, with real examples.
        Note: Of course, when you are building objects into the kernel,
        the syntax above will also work. So, if you have CONFIG_EXT2_FS=y,
        kbuild will build an ext2.o file for you out of the individual
-       parts and then link this into built-in.o, as you would expect.
+       parts and then link this into built-in.a, as you would expect.
 
 --- 3.4 Objects which export symbols
 
@@ -237,7 +237,7 @@ more details, with real examples.
 --- 3.5 Library file goals - lib-y
 
        Objects listed with obj-* are used for modules, or
-       combined in a built-in.o for that specific directory.
+       combined in a built-in.a for that specific directory.
        There is also the possibility to list objects that will
        be included in a library, lib.a.
        All objects listed with lib-y are combined in a single
@@ -249,7 +249,7 @@ more details, with real examples.
 
        Note that the same kbuild makefile may list files to be built-in
        and to be part of a library. Therefore the same directory
-       may contain both a built-in.o and a lib.a file.
+       may contain both a built-in.a and a lib.a file.
 
        Example:
                #arch/x86/lib/Makefile
@@ -1007,7 +1007,7 @@ When kbuild executes, the following steps are followed (roughly):
 
        $(head-y) lists objects to be linked first in vmlinux.
        $(libs-y) lists directories where a lib.a archive can be located.
-       The rest list directories where a built-in.o object file can be
+       The rest list directories where a built-in.a object file can be
        located.
 
        $(init-y) objects will be located after $(head-y).
@@ -1092,7 +1092,7 @@ When kbuild executes, the following steps are followed (roughly):
                extra-y := head.o init_task.o
 
        In this example, extra-y is used to list object files that
-       shall be built, but shall not be linked as part of built-in.o.
+       shall be built, but shall not be linked as part of built-in.a.
 
 
 --- 6.7 Commands useful for building a boot image
index 314d321..07abd54 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -30,7 +30,7 @@ unexport GREP_OPTIONS
 # Most importantly: sub-Makefiles should only ever modify files in
 # their own directory. If in some directory we have a dependency on
 # a file in another dir (which doesn't happen often, but it's often
-# unavoidable when linking the built-in.o targets which finally
+# unavoidable when linking the built-in.a targets which finally
 # turn into vmlinux), we will call a sub make in that other dir, and
 # after that we are sure that everything which is in that other dir
 # is now up to date.
@@ -972,13 +972,13 @@ vmlinux-dirs      := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \
 vmlinux-alldirs        := $(sort $(vmlinux-dirs) $(patsubst %/,%,$(filter %/, \
                     $(init-) $(core-) $(drivers-) $(net-) $(libs-) $(virt-))))
 
-init-y         := $(patsubst %/, %/built-in.o, $(init-y))
-core-y         := $(patsubst %/, %/built-in.o, $(core-y))
-drivers-y      := $(patsubst %/, %/built-in.o, $(drivers-y))
-net-y          := $(patsubst %/, %/built-in.o, $(net-y))
+init-y         := $(patsubst %/, %/built-in.a, $(init-y))
+core-y         := $(patsubst %/, %/built-in.a, $(core-y))
+drivers-y      := $(patsubst %/, %/built-in.a, $(drivers-y))
+net-y          := $(patsubst %/, %/built-in.a, $(net-y))
 libs-y1                := $(patsubst %/, %/lib.a, $(libs-y))
-libs-y2                := $(filter-out %.a, $(patsubst %/, %/built-in.o, $(libs-y)))
-virt-y         := $(patsubst %/, %/built-in.o, $(virt-y))
+libs-y2                := $(patsubst %/, %/built-in.a, $(filter-out %.a, $(libs-y)))
+virt-y         := $(patsubst %/, %/built-in.a, $(virt-y))
 
 # Externally visible symbols (used by link-vmlinux.sh)
 export KBUILD_VMLINUX_INIT := $(head-y) $(init-y)
index a401c27..2a73bab 100644 (file)
@@ -36,7 +36,7 @@ EXPORT_SYMBOL(memchr);
 /*
  * Because string functions are both inline and exported functions and
  * folder arch/blackfin/lib is configured as a library path in Makefile,
- * symbols exported in folder lib  is not linked into built-in.o but
+ * symbols exported in folder lib  is not linked into built-in.a but
  * inlined only. In order to export string symbols to kernel module
  * properly, they should be exported here.
  */
index 22ed3c3..de933b1 100644 (file)
@@ -160,7 +160,7 @@ systbl_chk: $(src)/systbl_chk.sh $(obj)/systbl_chk.i
        $(call cmd,systbl_chk)
 
 ifeq ($(CONFIG_PPC_OF_BOOT_TRAMPOLINE),y)
-$(obj)/built-in.o:             prom_init_check
+$(obj)/built-in.a:             prom_init_check
 
 quiet_cmd_prom_init_check = CALL    $<
       cmd_prom_init_check = $(CONFIG_SHELL) $< "$(NM)" "$(obj)/prom_init.o"
index e5225ad..f6df691 100644 (file)
@@ -4,5 +4,5 @@
 
 obj-y += cio/ block/ char/ crypto/ net/ scsi/ virtio/
 
-drivers-y += drivers/s390/built-in.o
+drivers-y += drivers/s390/built-in.a
 
index 535b49d..54c82f7 100644 (file)
@@ -309,11 +309,11 @@ config DEBUG_SECTION_MISMATCH
            the analysis would not catch the illegal reference.
            This option tells gcc to inline less (but it does result in
            a larger kernel).
-         - Run the section mismatch analysis for each module/built-in.o file.
+         - Run the section mismatch analysis for each module/built-in.a file.
            When we run the section mismatch analysis on vmlinux.o, we
            lose valueble information about where the mismatch was
            introduced.
-           Running the analysis for each module/built-in.o file
+           Running the analysis for each module/built-in.a file
            tells where the mismatch happens much closer to the
            source. The drawback is that the same mismatch is
            reported at least twice.
index a896265..c5504ed 100644 (file)
@@ -89,7 +89,7 @@ lib-target := $(obj)/lib.a
 endif
 
 ifneq ($(strip $(obj-y) $(obj-m) $(obj-) $(subdir-m) $(lib-target)),)
-builtin-target := $(obj)/built-in.o
+builtin-target := $(obj)/built-in.a
 endif
 
 modorder-target := $(obj)/modules.order
@@ -112,7 +112,7 @@ ifneq ($(KBUILD_CHECKSRC),0)
   endif
 endif
 
-# Do section mismatch analysis for each module/built-in.o
+# Do section mismatch analysis for each module/built-in.a
 ifdef CONFIG_DEBUG_SECTION_MISMATCH
   cmd_secanalysis = ; scripts/mod/modpost $@
 endif
@@ -413,15 +413,15 @@ $(sort $(subdir-obj-y)): $(subdir-ym) ;
 #
 ifdef builtin-target
 
-# built-in.o archives are made with no symbol table or index which
+# built-in.a archives are made with no symbol table or index which
 # makes them small and fast, but unable to be used by the linker.
-# scripts/link-vmlinux.sh builds an aggregate built-in.o with a symbol
+# scripts/link-vmlinux.sh builds an aggregate built-in.a with a symbol
 # table and index.
 cmd_make_builtin = rm -f $@; $(AR) rcSTP$(KBUILD_ARFLAGS)
 cmd_make_empty_builtin = rm -f $@; $(AR) rcSTP$(KBUILD_ARFLAGS)
 quiet_cmd_link_o_target = AR      $@
 
-# If the list of objects to link is empty, just create an empty built-in.o
+# If the list of objects to link is empty, just create an empty built-in.a
 cmd_link_o_target = $(if $(strip $(obj-y)),\
                      $(cmd_make_builtin) $@ $(filter $(obj-y), $^) \
                      $(cmd_secanalysis),\
index 5a93712..3c894ad 100644 (file)
@@ -25,7 +25,7 @@ lib-y := $(filter-out $(obj-y), $(sort $(lib-y) $(lib-m)))
 
 # Handle objects in subdirs
 # ---------------------------------------------------------------------------
-# o if we encounter foo/ in $(obj-y), replace it by foo/built-in.o
+# o if we encounter foo/ in $(obj-y), replace it by foo/built-in.a
 #   and add the directory to the list of dirs to descend into: $(subdir-y)
 # o if we encounter foo/ in $(obj-m), remove it from $(obj-m)
 #   and add the directory to the list of dirs to descend into: $(subdir-m)
@@ -39,7 +39,7 @@ __subdir-y    := $(patsubst %/,%,$(filter %/, $(obj-y)))
 subdir-y       += $(__subdir-y)
 __subdir-m     := $(patsubst %/,%,$(filter %/, $(obj-m)))
 subdir-m       += $(__subdir-m)
-obj-y          := $(patsubst %/, %/built-in.o, $(obj-y))
+obj-y          := $(patsubst %/, %/built-in.a, $(obj-y))
 obj-m          := $(filter-out %/, $(obj-m))
 
 # Subdirectories we need to descend into
@@ -60,7 +60,7 @@ multi-objs   := $(multi-objs-y) $(multi-objs-m)
 
 # $(subdir-obj-y) is the list of objects in $(obj-y) which uses dir/ to
 # tell kbuild to descend
-subdir-obj-y := $(filter %/built-in.o, $(obj-y))
+subdir-obj-y := $(filter %/built-in.a, $(obj-y))
 
 # $(obj-dirs) is a list of directories that contain object files
 obj-dirs := $(dir $(multi-objs) $(obj-y))
index eeaf06a..c41d7c5 100755 (executable)
@@ -3,7 +3,7 @@
 # link vmlinux
 #
 # vmlinux is linked from the objects selected by $(KBUILD_VMLINUX_INIT) and
-# $(KBUILD_VMLINUX_MAIN) and $(KBUILD_VMLINUX_LIBS). Most are built-in.o files
+# $(KBUILD_VMLINUX_MAIN) and $(KBUILD_VMLINUX_LIBS). Most are built-in.a files
 # from top-level directories in the kernel tree, others are specified in
 # arch/$(ARCH)/Makefile. Ordering when linking is important, and
 # $(KBUILD_VMLINUX_INIT) must be first. $(KBUILD_VMLINUX_LIBS) are archives
@@ -17,7 +17,7 @@
 #   |   +--< init/version.o + more
 #   |
 #   +--< $(KBUILD_VMLINUX_MAIN)
-#   |    +--< drivers/built-in.o mm/built-in.o + more
+#   |    +--< drivers/built-in.a mm/built-in.a + more
 #   |
 #   +--< $(KBUILD_VMLINUX_LIBS)
 #   |    +--< lib/lib.a + more
@@ -50,13 +50,13 @@ info()
 #
 # Traditional incremental style of link does not require this step
 #
-# built-in.o output file
+# built-in.a output file
 #
 archive_builtin()
 {
-       info AR built-in.o
-       rm -f built-in.o;
-       ${AR} rcsTP${KBUILD_ARFLAGS} built-in.o                 \
+       info AR built-in.a
+       rm -f built-in.a;
+       ${AR} rcsTP${KBUILD_ARFLAGS} built-in.a                 \
                                ${KBUILD_VMLINUX_INIT}          \
                                ${KBUILD_VMLINUX_MAIN}
 }
@@ -68,7 +68,7 @@ modpost_link()
        local objects
 
        objects="--whole-archive                                \
-               built-in.o                                      \
+               built-in.a                                      \
                --no-whole-archive                              \
                --start-group                                   \
                ${KBUILD_VMLINUX_LIBS}                          \
@@ -87,7 +87,7 @@ vmlinux_link()
 
        if [ "${SRCARCH}" != "um" ]; then
                objects="--whole-archive                        \
-                       built-in.o                              \
+                       built-in.a                              \
                        --no-whole-archive                      \
                        --start-group                           \
                        ${KBUILD_VMLINUX_LIBS}                  \
@@ -98,7 +98,7 @@ vmlinux_link()
                        -T ${lds} ${objects}
        else
                objects="-Wl,--whole-archive                    \
-                       built-in.o                              \
+                       built-in.a                              \
                        -Wl,--no-whole-archive                  \
                        -Wl,--start-group                       \
                        ${KBUILD_VMLINUX_LIBS}                  \
@@ -164,7 +164,7 @@ cleanup()
        rm -f .tmp_kallsyms*
        rm -f .tmp_version
        rm -f .tmp_vmlinux*
-       rm -f built-in.o
+       rm -f built-in.a
        rm -f System.map
        rm -f vmlinux
        rm -f vmlinux.o
index 9a2a32c..6967810 100755 (executable)
@@ -163,7 +163,7 @@ sub linux_objects
        s:^\./::;
        if (/.*\.o$/ &&
                ! (
-               m:/built-in.o$:
+               m:/built-in.a$:
                || m:arch/x86/vdso/:
                || m:arch/x86/boot/:
                || m:arch/ia64/ia32/ia32.o$:
index c14322d..7bd3796 100644 (file)
@@ -9,7 +9,7 @@
 
   ld -m elf_i386  --format binary --oformat elf32-i386 -r \
   -T initramfs_data.scr initramfs_data.cpio.gz -o initramfs_data.o
-   ld -m elf_i386  -r -o built-in.o initramfs_data.o
+   ld -m elf_i386  -r -o built-in.a initramfs_data.o
 
   For including the .init.ramfs sections, see include/asm-generic/vmlinux.lds.