Kbuild compiles all the $(obj-y) files.  It then calls
        "$(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.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.
+       This is a thin archive without a symbol table. It will be later
+       linked into vmlinux by scripts/link-vmlinux.sh
 
        The order of files in $(obj-y) is significant.  Duplicates in
        the lists are allowed: the first instance will be linked into
 
 $(sort $(subdir-obj-y)): $(subdir-ym) ;
 
 #
-# Rule to compile a set of .o files into one .o file
+# Rule to compile a set of .o files into one .a file (without symbol table)
 #
 ifdef builtin-target
 
-# 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.a with a symbol
-# table and index.
 quiet_cmd_ar_builtin = AR      $@
       cmd_ar_builtin = rm -f $@; \
                      $(AR) rcSTP$(KBUILD_ARFLAGS) $@ $(filter $(real-obj-y), $^)
        $(Q)(cat /dev/null; $(modorder-cmds)) > $@
 
 #
-# Rule to compile a set of .o files into one .a file
+# Rule to compile a set of .o files into one .a file (with symbol table)
 #
 ifdef lib-target
 quiet_cmd_link_l_target = AR      $@
 
        fi
 }
 
-# Thin archive build here makes a final archive with symbol table and indexes
-# from vmlinux objects INIT and MAIN, which can be used as input to linker.
-# KBUILD_VMLINUX_LIBS archives should already have symbol table and indexes
-# added.
-#
-# Traditional incremental style of link does not require this step
-#
-# built-in.a output file
-#
-archive_builtin()
-{
-       info AR built-in.a
-       rm -f built-in.a;
-       ${AR} rcsTP${KBUILD_ARFLAGS} built-in.a                 \
-                               ${KBUILD_VMLINUX_INIT}          \
-                               ${KBUILD_VMLINUX_MAIN}
-}
-
 # Link of vmlinux.o used for section mismatch analysis
 # ${1} output file
 modpost_link()
        local objects
 
        objects="--whole-archive                                \
-               built-in.a                                      \
+               ${KBUILD_VMLINUX_INIT}                          \
+               ${KBUILD_VMLINUX_MAIN}                          \
                --no-whole-archive                              \
                --start-group                                   \
                ${KBUILD_VMLINUX_LIBS}                          \
 
        if [ "${SRCARCH}" != "um" ]; then
                objects="--whole-archive                        \
-                       built-in.a                              \
+                       ${KBUILD_VMLINUX_INIT}                  \
+                       ${KBUILD_VMLINUX_MAIN}                  \
                        --no-whole-archive                      \
                        --start-group                           \
                        ${KBUILD_VMLINUX_LIBS}                  \
                        -T ${lds} ${objects}
        else
                objects="-Wl,--whole-archive                    \
-                       built-in.a                              \
+                       ${KBUILD_VMLINUX_INIT}                  \
+                       ${KBUILD_VMLINUX_MAIN}                  \
                        -Wl,--no-whole-archive                  \
                        -Wl,--start-group                       \
                        ${KBUILD_VMLINUX_LIBS}                  \
        rm -f .tmp_System.map
        rm -f .tmp_kallsyms*
        rm -f .tmp_vmlinux*
-       rm -f built-in.a
        rm -f System.map
        rm -f vmlinux
        rm -f vmlinux.o
 # final build of init/
 ${MAKE} -f "${srctree}/scripts/Makefile.build" obj=init
 
-archive_builtin
-
 #link vmlinux.o
 info LD vmlinux.o
 modpost_link vmlinux.o