mirror of
https://git.yoctoproject.org/poky
synced 2026-05-04 13:39:49 +02:00
gcc: Fix mangled patch
To quote Zhuang <qiuguang.zqg@alibaba-inc.com>:
"""
A few days ago, I tried to compile a gcc plugin with the toolchain from poky sdk.
It failed with errors about missing header files such as backend.h etc.
After investigation, I found that the problem was brought by a gcc patch:
0012-gcc-Fix-argument-list-too-long-error.patch (which is considered derived from the original patch)
- headers=`echo $(PLUGIN_HEADERS) $$(cd $(srcdir); echo *.h *.def) | tr ' ' '\012' | sort -u`; \
+ headers="$(sort $(PLUGIN_HEADERS) $$(cd $(srcdir); echo *.h *.def))"; \
It changes the commands of install-plugin, making the sorting taken effect before the shell globs.
Thus results in the header files under gcc $(srcdir) being not installed.
By checking log.do_install, we can find that the `headers=' statement to run is incorrect and will not work as expected:
headers="$(cd *.def) *.h ../../../../../../../work-shared/gcc-10.1.0-r0/gcc-10.1.0/gcc/../include/ansidecl.h ...
As the patch says,
"The PLUGIN_HEADERS is too long before sort, so the "echo" can't handle it, ..."
my suggestion is that we can simply take care of PLUGIN_HEADERS
using the original proposed sort.
"""
This fixes the gcc patch as proposed as it does appear its been
broken over time.
(From OE-Core rev: dce28d8ac7fbae487cb6674b91fe2b574036b26d)
(From OE-Core rev: cfa92a4d57f49188ca7b568e2003e4a11526fc95)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 94eb5724b1)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -17,6 +17,10 @@ $(sort list) doesn't need this.
|
||||
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
|
||||
RP: gcc then added *.h and *.def additions to this list, breaking the original
|
||||
fix. Add the sort to the original gcc code, leaving the tr+sort to fix the original
|
||||
issue but include the new files too as reported by Zhuang <qiuguang.zqg@alibaba-inc.com>
|
||||
|
||||
Upstream-Status: Pending
|
||||
---
|
||||
gcc/Makefile.in | 2 +-
|
||||
@@ -31,7 +35,7 @@ index fef6c4c61e3..57cf7804f0a 100644
|
||||
# files. All other files are flattened to a single directory.
|
||||
$(mkinstalldirs) $(DESTDIR)$(plugin_includedir)
|
||||
- headers=`echo $(PLUGIN_HEADERS) $$(cd $(srcdir); echo *.h *.def) | tr ' ' '\012' | sort -u`; \
|
||||
+ headers="$(sort $(PLUGIN_HEADERS) $$(cd $(srcdir); echo *.h *.def))"; \
|
||||
+ headers=`echo $(sort $(PLUGIN_HEADERS)) $$(cd $(srcdir); echo *.h *.def) | tr ' ' '\012' | sort -u`; \
|
||||
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`; \
|
||||
for file in $$headers; do \
|
||||
if [ -f $$file ] ; then \
|
||||
|
||||
Reference in New Issue
Block a user