diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/5705-kbuild-rename-built-in.o-to-built-in.a.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/5705-kbuild-rename-built-in.o-to-built-in.a.patch | 387 |
1 files changed, 387 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/5705-kbuild-rename-built-in.o-to-built-in.a.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/5705-kbuild-rename-built-in.o-to-built-in.a.patch new file mode 100644 index 00000000..e29bc186 --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/5705-kbuild-rename-built-in.o-to-built-in.a.patch @@ -0,0 +1,387 @@ +From 4c22123ac68afac89aeb11697c9483dd4201a9d3 Mon Sep 17 00:00:00 2001 +From: Nicholas Piggin <npiggin@gmail.com> +Date: Sun, 11 Feb 2018 00:25:04 +1000 +Subject: [PATCH 5705/5725] kbuild: rename built-in.o to built-in.a + +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 | 16 ++++++++-------- + Documentation/process/changes.rst | 2 +- + Makefile | 14 +++++++------- + arch/blackfin/kernel/bfin_ksyms.c | 2 +- + arch/powerpc/kernel/Makefile | 2 +- + drivers/s390/Makefile | 2 +- + lib/Kconfig.debug | 4 ++-- + scripts/Makefile.build | 10 +++++----- + scripts/Makefile.lib | 6 +++--- + scripts/link-vmlinux.sh | 20 ++++++++++---------- + scripts/namespace.pl | 2 +- + usr/initramfs_data.S | 2 +- + 12 files changed, 41 insertions(+), 41 deletions(-) + mode change 100644 => 100755 scripts/Makefile.build + +diff --git a/Documentation/kbuild/makefiles.txt b/Documentation/kbuild/makefiles.txt +index a933c71..cb95620 100644 +--- a/Documentation/kbuild/makefiles.txt ++++ b/Documentation/kbuild/makefiles.txt +@@ -153,18 +153,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 +@@ -228,7 +228,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 + +@@ -238,7 +238,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 +@@ -250,7 +250,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 +@@ -992,7 +992,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). +@@ -1077,7 +1077,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 +diff --git a/Documentation/process/changes.rst b/Documentation/process/changes.rst +index 73fcdcd..ceeeda8 100644 +--- a/Documentation/process/changes.rst ++++ b/Documentation/process/changes.rst +@@ -76,7 +76,7 @@ Binutils + -------- + + The build system has, as of 4.13, switched to using thin archives (`ar T`) +-rather than incremental linking (`ld -r`) for built-in.o intermediate steps. ++rather than incremental linking (`ld -r`) for built-in.a intermediate steps. + This requires binutils 2.20 or newer. + + Perl +diff --git a/Makefile b/Makefile +index 2dc724e..abba7b3 100644 +--- a/Makefile ++++ b/Makefile +@@ -35,7 +35,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. +@@ -970,13 +970,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) +diff --git a/arch/blackfin/kernel/bfin_ksyms.c b/arch/blackfin/kernel/bfin_ksyms.c +index 68096e8..c0038ee 100644 +--- a/arch/blackfin/kernel/bfin_ksyms.c ++++ b/arch/blackfin/kernel/bfin_ksyms.c +@@ -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. + */ +diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile +index 21bd995..bf191e6 100644 +--- a/arch/powerpc/kernel/Makefile ++++ b/arch/powerpc/kernel/Makefile +@@ -167,7 +167,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" +diff --git a/drivers/s390/Makefile b/drivers/s390/Makefile +index e5225ad..f6df691 100644 +--- a/drivers/s390/Makefile ++++ b/drivers/s390/Makefile +@@ -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 + +diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug +index 62d0e25..62a59ee 100644 +--- a/lib/Kconfig.debug ++++ b/lib/Kconfig.debug +@@ -325,11 +325,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 valuable 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. +diff --git a/scripts/Makefile.build b/scripts/Makefile.build +old mode 100644 +new mode 100755 +index e1bd7c2..4a2529f +--- a/scripts/Makefile.build ++++ b/scripts/Makefile.build +@@ -86,7 +86,7 @@ obj-y += $(obj)/lib-ksyms.o + endif + + ifneq ($(strip $(obj-y) $(need-builtin)),) +-builtin-target := $(obj)/built-in.o ++builtin-target := $(obj)/built-in.a + endif + + modorder-target := $(obj)/modules.order +@@ -109,7 +109,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 +@@ -462,15 +462,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),\ +diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib +index aac94d9..3219687 100644 +--- a/scripts/Makefile.lib ++++ b/scripts/Makefile.lib +@@ -26,7 +26,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) +@@ -40,7 +40,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 +@@ -61,7 +61,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)) +diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh +index 50ede7b..6fba5ab 100755 +--- a/scripts/link-vmlinux.sh ++++ b/scripts/link-vmlinux.sh +@@ -4,7 +4,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 +@@ -18,7 +18,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 +@@ -51,13 +51,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} + } +@@ -69,7 +69,7 @@ modpost_link() + local objects + + objects="--whole-archive \ +- built-in.o \ ++ built-in.a \ + --no-whole-archive \ + --start-group \ + ${KBUILD_VMLINUX_LIBS} \ +@@ -88,7 +88,7 @@ vmlinux_link() + + if [ "${SRCARCH}" != "um" ]; then + objects="--whole-archive \ +- built-in.o \ ++ built-in.a \ + --no-whole-archive \ + --start-group \ + ${KBUILD_VMLINUX_LIBS} \ +@@ -99,7 +99,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} \ +@@ -166,7 +166,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 +diff --git a/scripts/namespace.pl b/scripts/namespace.pl +index 729c547..6135574 100755 +--- a/scripts/namespace.pl ++++ b/scripts/namespace.pl +@@ -164,7 +164,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$: +diff --git a/usr/initramfs_data.S b/usr/initramfs_data.S +index 10d325e..b28da79 100644 +--- a/usr/initramfs_data.S ++++ b/usr/initramfs_data.S +@@ -10,7 +10,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. + +-- +2.7.4 + |