linux: fix builds for kernels < 5.6 and host-gcc >= 10
During a linux-backports update, it was found that kernel v3.10.108 was failing to compile. See: https://lists.buildroot.org/pipermail/buildroot/2022-August/649507.html This issue was introduced by commit 9b41b54b "linux: fix build with host-gcc 10+", which removes all declarations of "yylloc" symbols in the dtc parser. This symbol is generated by bison, if the "%locations" directive is provided in the parser. See: https://git.savannah.gnu.org/cgit/bison.git/tree/doc/bison.texi?h=v3.8.2#n5984 Kernel versions < 5.6 did not include this directive, so removing all yylloc declararions in the parser also was failing for those version. In the kernel, dtc was updated to v1.5.1-22-gc40aeb60b47a in: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=0cec114e36606412908a35695a5db944cec2e3db This commit is included in kernel v5.6. This dtc update include the dtc commit: https://git.kernel.org/pub/scm/utils/dtc/dtc.git/commit/?id=7150286225476345bd6e7312331e3baf4d621c32 which adds the '%locations' directive. This commit fixes the issue by programmatically adding the '%locations' Bison directive, if it's not found in the parser file. Fixes: - https://bugs.busybox.net/show_bug.cgi?id=14971 Signed-off-by:Julien Olivain <ju.o@free.fr> Signed-off-by:
Yann E. MORIN <yann.morin.1998@free.fr>