]> code.ossystems Code Review - openembedded-core.git/commit
classes/archive: do_configure should not depend on do_ar_patched
authorJoshua Watt <JPEWhacker@gmail.com>
Fri, 3 Jul 2020 13:16:37 +0000 (08:16 -0500)
committerSteve Sakoman <steve@sakoman.com>
Sat, 11 Jul 2020 03:11:12 +0000 (17:11 -1000)
commit2399fdf98a6e6e4245c2e7ed1f72404ebece3eca
tree948df428744c81968760c354ce67e17103d1f602
parentb6d4176f82b9728af91a4b982ca25fbbee5f9890
classes/archive: do_configure should not depend on do_ar_patched

The commit d4be264061 ("classes/archiver: run do_unpack_and_patch after
do_preconfigure") correctly moved do_unpack_and_patch to depend on
do_preconfigure, but left do_ar_patched as a dependency of do_configure
introduced from 8a7c779487 ("classes/archiver: Create patched archive
before configuring"). Having do_configure depend on do_ar_patched is
blatantly wrong. Firstly, doing so causes the taskhash of do_configure
to change which is undesirable. Secondly, the anon python that sets up
the tasks carefully skips GCC recipes that depend on gcc-source to
provide their source code since running do_unpack_and_patch in them
would delete the source code. Adding in the dependency effectively
bypasses this and makes these recipes delete the shared gcc-source

This fixes errors (for real this time) like:

 cat: .../gcc/defaults.h: No such file or directory

when making certain configuration changes.

For posterity, you could easily reproduce gcc-source being erased by
running the commands (replacing aarch64 with your correct target arch):

 bitbake -c cleanall gcc-source gcc-cross-aarch64
 bitbake -c do_deploy_archives gcc-source

 # The following would fail because
 # gcc-cross-aarch64:do_unpack_and_patch erases shared source, so
 # do_configure after that fails.
 bitbake gcc-cross-aarch64

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f02c1904330da47a25cf85f0077712f584f4ee5b)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
meta/classes/archiver.bbclass