diff --git a/board/batocera/rockchip/odroidgoa/linux_patches/0001-scripts-dtc-Remove-redundant-YYLOC-global-declaratio.patch b/board/batocera/rockchip/odroidgoa/linux_patches/0001-scripts-dtc-Remove-redundant-YYLOC-global-declaratio.patch new file mode 100644 index 00000000000..2e9ee71b13b --- /dev/null +++ b/board/batocera/rockchip/odroidgoa/linux_patches/0001-scripts-dtc-Remove-redundant-YYLOC-global-declaratio.patch @@ -0,0 +1,68 @@ +From 11647f99b4de6bc460e106e876f72fc7af3e54a6 Mon Sep 17 00:00:00 2001 +From: Dirk Mueller +Date: Tue, 14 Jan 2020 18:53:41 +0100 +Subject: [PATCH] scripts/dtc: Remove redundant YYLOC global declaration + +commit e33a814e772cdc36436c8c188d8c42d019fda639 upstream. + +gcc 10 will default to -fno-common, which causes this error at link +time: + + (.text+0x0): multiple definition of `yylloc'; dtc-lexer.lex.o (symbol from plugin):(.text+0x0): first defined here + +This is because both dtc-lexer as well as dtc-parser define the same +global symbol yyloc. Before with -fcommon those were merged into one +defintion. The proper solution would be to to mark this as "extern", +however that leads to: + + dtc-lexer.l:26:16: error: redundant redeclaration of 'yylloc' [-Werror=redundant-decls] + 26 | extern YYLTYPE yylloc; + | ^~~~~~ +In file included from dtc-lexer.l:24: +dtc-parser.tab.h:127:16: note: previous declaration of 'yylloc' was here + 127 | extern YYLTYPE yylloc; + | ^~~~~~ +cc1: all warnings being treated as errors + +which means the declaration is completely redundant and can just be +dropped. + +Signed-off-by: Dirk Mueller +Signed-off-by: David Gibson +[robh: cherry-pick from upstream] +Cc: stable@vger.kernel.org +Signed-off-by: Rob Herring +[nc: Also apply to dtc-lexer.lex.c_shipped due to a lack of + e039139be8c2, where dtc-lexer.l started being used] +Signed-off-by: Nathan Chancellor +Signed-off-by: Greg Kroah-Hartman +Change-Id: I7f299451e99aab09375883546e47505ec0937c26 +--- + scripts/dtc/dtc-lexer.l | 1 - + scripts/dtc/dtc-lexer.lex.c_shipped | 1 - + 2 files changed, 2 deletions(-) + +diff --git a/scripts/dtc/dtc-lexer.l b/scripts/dtc/dtc-lexer.l +index c600603044f..cf7707be43a 100644 +--- a/scripts/dtc/dtc-lexer.l ++++ b/scripts/dtc/dtc-lexer.l +@@ -38,7 +38,6 @@ LINECOMMENT "//".*\n + #include "srcpos.h" + #include "dtc-parser.tab.h" + +-YYLTYPE yylloc; + extern bool treesource_error; + + /* CAUTION: this will stop working if we ever use yyless() or yyunput() */ +diff --git a/scripts/dtc/dtc-lexer.lex.c_shipped b/scripts/dtc/dtc-lexer.lex.c_shipped +index 2c862bc86ad..e3663ce1af5 100644 +--- a/scripts/dtc/dtc-lexer.lex.c_shipped ++++ b/scripts/dtc/dtc-lexer.lex.c_shipped +@@ -631,7 +631,6 @@ char *yytext; + #include "srcpos.h" + #include "dtc-parser.tab.h" + +-YYLTYPE yylloc; + extern bool treesource_error; + + /* CAUTION: this will stop working if we ever use yyless() or yyunput() */ diff --git a/board/batocera/rockchip/odroidgoa/patches/uboot-odroid-goa/0001-Kbuild-fix-escaping-in-.cmd-files-for-future-Make.patch b/board/batocera/rockchip/odroidgoa/patches/uboot-odroid-goa/0001-Kbuild-fix-escaping-in-.cmd-files-for-future-Make.patch new file mode 100644 index 00000000000..811ae8020df --- /dev/null +++ b/board/batocera/rockchip/odroidgoa/patches/uboot-odroid-goa/0001-Kbuild-fix-escaping-in-.cmd-files-for-future-Make.patch @@ -0,0 +1,80 @@ +From e5e701c2b8470de044c5c71d2a54ecfc72680d59 Mon Sep 17 00:00:00 2001 +From: Rasmus Villemoes +Date: Wed, 19 Sep 2018 11:35:56 +0900 +Subject: [PATCH] Kbuild: fix # escaping in .cmd files for future Make +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +[ commit 9564a8cf422d7b58f6e857e3546d346fa970191e in Linux ] + +I tried building using a freshly built Make (4.2.1-69-g8a731d1), but +already the objtool build broke with + +orc_dump.c: In function ‘orc_dump’: +orc_dump.c:106:2: error: ‘elf_getshnum’ is deprecated [-Werror=deprecated-declarations] + if (elf_getshdrnum(elf, &nr_sections)) { + +Turns out that with that new Make, the backslash was not removed, so cpp +didn't see a #include directive, grep found nothing, and +-DLIBELF_USE_DEPRECATED was wrongly put in CFLAGS. + +Now, that new Make behaviour is documented in their NEWS file: + + * WARNING: Backward-incompatibility! + Number signs (#) appearing inside a macro reference or function invocation + no longer introduce comments and should not be escaped with backslashes: + thus a call such as: + foo := $(shell echo '#') + is legal. Previously the number sign needed to be escaped, for example: + foo := $(shell echo '\#') + Now this latter will resolve to "\#". If you want to write makefiles + portable to both versions, assign the number sign to a variable: + C := \# + foo := $(shell echo '$C') + This was claimed to be fixed in 3.81, but wasn't, for some reason. + To detect this change search for 'nocomment' in the .FEATURES variable. + +This also fixes up the two make-cmd instances to replace # with $(pound) +rather than with \#. There might very well be other places that need +similar fixup in preparation for whatever future Make release contains +the above change, but at least this builds an x86_64 defconfig with the +new make. + +Link: https://bugzilla.kernel.org/show_bug.cgi?id=197847 +Cc: Randy Dunlap +Signed-off-by: Rasmus Villemoes +Signed-off-by: Masahiro Yamada +--- + scripts/Kbuild.include | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include +index 2c7918ad37..13ebddda65 100644 +--- a/scripts/Kbuild.include ++++ b/scripts/Kbuild.include +@@ -7,6 +7,7 @@ quote := " + squote := ' + empty := + space := $(empty) $(empty) ++pound := \# + + ### + # Name of target with a '.' as filename prefix. foo/bar.o => foo/.bar.o +@@ -242,11 +243,11 @@ endif + + # Replace >$< with >$$< to preserve $ when reloading the .cmd file + # (needed for make) +-# Replace >#< with >\#< to avoid starting a comment in the .cmd file ++# Replace >#< with >$(pound)< to avoid starting a comment in the .cmd file + # (needed for make) + # Replace >'< with >'\''< to be able to enclose the whole string in '...' + # (needed for the shell) +-make-cmd = $(call escsq,$(subst \#,\\\#,$(subst $$,$$$$,$(cmd_$(1))))) ++make-cmd = $(call escsq,$(subst $(pound),$$(pound),$(subst $$,$$$$,$(cmd_$(1))))) + + # Find any prerequisites that is newer than target or that does not exist. + # PHONY targets skipped in both cases. +-- +2.27.0 + diff --git a/board/batocera/rockchip/odroidgoa/patches/uboot-odroid-goa/0001-kbuild-fix-escaping-in-appending-U-Boot-own-DT.patch b/board/batocera/rockchip/odroidgoa/patches/uboot-odroid-goa/0001-kbuild-fix-escaping-in-appending-U-Boot-own-DT.patch new file mode 100644 index 00000000000..5302b30f2d9 --- /dev/null +++ b/board/batocera/rockchip/odroidgoa/patches/uboot-odroid-goa/0001-kbuild-fix-escaping-in-appending-U-Boot-own-DT.patch @@ -0,0 +1,31 @@ +From 0c544115379ed77c1843a194e26960e5b8f3d369 Mon Sep 17 00:00:00 2001 +From: Masahiro Yamada +Date: Wed, 19 Sep 2018 11:35:57 +0900 +Subject: [PATCH] kbuild: fix # escaping in appending U-Boot own DT + +The escape sequence '\#' does not work for the latest GNU Make from +the git tree. + +Replace it with $(pound) as Linux did. + +Signed-off-by: Masahiro Yamada +--- + scripts/Makefile.lib | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib +index f8c3fff1d1..4dceb6d1b3 100644 +--- a/scripts/Makefile.lib ++++ b/scripts/Makefile.lib +@@ -299,7 +299,7 @@ quiet_cmd_dtc = DTC $@ + # Modified for U-Boot + # Bring in any U-Boot-specific include at the end of the file + cmd_dtc = mkdir -p $(dir ${dtc-tmp}) ; \ +- (cat $<; $(if $(u_boot_dtsi),echo '\#include "$(u_boot_dtsi)"')) > $(pre-tmp); \ ++ (cat $<; $(if $(u_boot_dtsi),echo '$(pound)include "$(u_boot_dtsi)"')) > $(pre-tmp); \ + $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $(pre-tmp) ; \ + $(DTC) -O dtb -o $@ -b 0 \ + -i $(dir $<) $(DTC_FLAGS) \ +-- +2.27.0 + diff --git a/board/batocera/rockchip/odroidgoa/patches/uboot-odroid-goa/0001-scripts-dtc-Remove-redundant-YYLOC-global-declaratio.patch b/board/batocera/rockchip/odroidgoa/patches/uboot-odroid-goa/0001-scripts-dtc-Remove-redundant-YYLOC-global-declaratio.patch new file mode 100644 index 00000000000..60a8ac1d2ee --- /dev/null +++ b/board/batocera/rockchip/odroidgoa/patches/uboot-odroid-goa/0001-scripts-dtc-Remove-redundant-YYLOC-global-declaratio.patch @@ -0,0 +1,71 @@ +From d988ec14978819bc2e0662fd9f853f52aedce498 Mon Sep 17 00:00:00 2001 +From: Dirk Mueller +Date: Tue, 14 Jan 2020 18:53:41 +0100 +Subject: [PATCH] scripts/dtc: Remove redundant YYLOC global declaration + +commit e33a814e772cdc36436c8c188d8c42d019fda639 upstream. + +gcc 10 will default to -fno-common, which causes this error at link +time: + + (.text+0x0): multiple definition of `yylloc'; dtc-lexer.lex.o (symbol from plugin):(.text+0x0): first defined here + +This is because both dtc-lexer as well as dtc-parser define the same +global symbol yyloc. Before with -fcommon those were merged into one +defintion. The proper solution would be to to mark this as "extern", +however that leads to: + + dtc-lexer.l:26:16: error: redundant redeclaration of 'yylloc' [-Werror=redundant-decls] + 26 | extern YYLTYPE yylloc; + | ^~~~~~ +In file included from dtc-lexer.l:24: +dtc-parser.tab.h:127:16: note: previous declaration of 'yylloc' was here + 127 | extern YYLTYPE yylloc; + | ^~~~~~ +cc1: all warnings being treated as errors + +which means the declaration is completely redundant and can just be +dropped. + +Signed-off-by: Dirk Mueller +Signed-off-by: David Gibson +[robh: cherry-pick from upstream] +Cc: stable@vger.kernel.org +Signed-off-by: Rob Herring +[nc: Also apply to dtc-lexer.lex.c_shipped due to a lack of + e039139be8c2, where dtc-lexer.l started being used] +Signed-off-by: Nathan Chancellor +Signed-off-by: Greg Kroah-Hartman +Change-Id: I7f299451e99aab09375883546e47505ec0937c26 +--- + scripts/dtc/dtc-lexer.l | 1 - + scripts/dtc/dtc-lexer.lex.c_shipped | 1 - + 2 files changed, 2 deletions(-) + +diff --git a/scripts/dtc/dtc-lexer.l b/scripts/dtc/dtc-lexer.l +index fd825ebba6..24af549977 100644 +--- a/scripts/dtc/dtc-lexer.l ++++ b/scripts/dtc/dtc-lexer.l +@@ -38,7 +38,6 @@ LINECOMMENT "//".*\n + #include "srcpos.h" + #include "dtc-parser.tab.h" + +-YYLTYPE yylloc; + extern bool treesource_error; + + /* CAUTION: this will stop working if we ever use yyless() or yyunput() */ +diff --git a/scripts/dtc/dtc-lexer.lex.c_shipped b/scripts/dtc/dtc-lexer.lex.c_shipped +index 011bb9632f..79952cd3ca 100644 +--- a/scripts/dtc/dtc-lexer.lex.c_shipped ++++ b/scripts/dtc/dtc-lexer.lex.c_shipped +@@ -631,7 +631,6 @@ char *yytext; + #include "srcpos.h" + #include "dtc-parser.tab.h" + +-YYLTYPE yylloc; + extern bool treesource_error; + + /* CAUTION: this will stop working if we ever use yyless() or yyunput() */ +-- +2.27.0 +