| From 55fe6da9efba102866e2fb5b40b04b6a4b26c19e Mon Sep 17 00:00:00 2001 |
| From: James Hogan <jhogan@kernel.org> |
| Date: Thu, 8 Mar 2018 11:02:46 +0000 |
| Subject: kbuild: Handle builtin dtb file names containing hyphens |
| |
| From: James Hogan <jhogan@kernel.org> |
| |
| commit 55fe6da9efba102866e2fb5b40b04b6a4b26c19e upstream. |
| |
| cmd_dt_S_dtb constructs the assembly source to incorporate a devicetree |
| FDT (that is, the .dtb file) as binary data in the kernel image. This |
| assembly source contains labels before and after the binary data. The |
| label names incorporate the file name of the corresponding .dtb file. |
| Hyphens are not legal characters in labels, so .dtb files built into the |
| kernel with hyphens in the file name result in errors like the |
| following: |
| |
| bcm3368-netgear-cvg834g.dtb.S: Assembler messages: |
| bcm3368-netgear-cvg834g.dtb.S:5: Error: : no such section |
| bcm3368-netgear-cvg834g.dtb.S:5: Error: junk at end of line, first unrecognized character is `-' |
| bcm3368-netgear-cvg834g.dtb.S:6: Error: unrecognized opcode `__dtb_bcm3368-netgear-cvg834g_begin:' |
| bcm3368-netgear-cvg834g.dtb.S:8: Error: unrecognized opcode `__dtb_bcm3368-netgear-cvg834g_end:' |
| bcm3368-netgear-cvg834g.dtb.S:9: Error: : no such section |
| bcm3368-netgear-cvg834g.dtb.S:9: Error: junk at end of line, first unrecognized character is `-' |
| |
| Fix this by updating cmd_dt_S_dtb to transform all hyphens from the file |
| name to underscores when constructing the labels. |
| |
| As of v4.16-rc2, 1139 .dts files across ARM64, ARM, MIPS and PowerPC |
| contain hyphens in their names, but the issue only currently manifests |
| on Broadcom MIPS platforms, as that is the only place where such files |
| are built into the kernel. For example when CONFIG_DT_NETGEAR_CVG834G=y, |
| or on BMIPS kernels when the dtbs target is used (in the latter case it |
| admittedly shouldn't really build all the dtb.o files, but thats a |
| separate issue). |
| |
| Fixes: 695835511f96 ("MIPS: BMIPS: rename bcm96358nb4ser to bcm6358-neufbox4-sercom") |
| Signed-off-by: James Hogan <jhogan@kernel.org> |
| Reviewed-by: Frank Rowand <frowand.list@gmail.com> |
| Cc: Rob Herring <robh+dt@kernel.org> |
| Cc: Michal Marek <michal.lkml@markovi.net> |
| Cc: Ralf Baechle <ralf@linux-mips.org> |
| Cc: Florian Fainelli <f.fainelli@gmail.com> |
| Cc: Kevin Cernekee <cernekee@gmail.com> |
| Cc: <stable@vger.kernel.org> # 4.9+ |
| Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| scripts/Makefile.lib | 8 ++++---- |
| 1 file changed, 4 insertions(+), 4 deletions(-) |
| |
| --- a/scripts/Makefile.lib |
| +++ b/scripts/Makefile.lib |
| @@ -294,11 +294,11 @@ cmd_dt_S_dtb= \ |
| echo '\#include <asm-generic/vmlinux.lds.h>'; \ |
| echo '.section .dtb.init.rodata,"a"'; \ |
| echo '.balign STRUCT_ALIGNMENT'; \ |
| - echo '.global __dtb_$(*F)_begin'; \ |
| - echo '__dtb_$(*F)_begin:'; \ |
| + echo '.global __dtb_$(subst -,_,$(*F))_begin'; \ |
| + echo '__dtb_$(subst -,_,$(*F))_begin:'; \ |
| echo '.incbin "$<" '; \ |
| - echo '__dtb_$(*F)_end:'; \ |
| - echo '.global __dtb_$(*F)_end'; \ |
| + echo '__dtb_$(subst -,_,$(*F))_end:'; \ |
| + echo '.global __dtb_$(subst -,_,$(*F))_end'; \ |
| echo '.balign STRUCT_ALIGNMENT'; \ |
| ) > $@ |
| |