Message ID | 1552300145-12526-1-git-send-email-thuth@redhat.com |
---|---|
State | New |
Headers | show |
Series | configure: Remove old *-config-devices.mak.d files when running configure | expand |
On 3/11/19 5:29 AM, Thomas Huth wrote: > When running "make" in a build directory from the pre-Kconfig merge time, > the build process currently fails with: > > make: *** No rule to make target `.../default-configs/pci.mak', > needed by `aarch64-softmmu/config-devices.mak'. Stop. > > To make sure that this problem at least goes away when the user runs > "configure" (or "sh config.status") again, we have to make sure that > we re-generate the .mak.d files. Thus remove the old stale files > while running the configure script. > > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > configure | 3 +++ > 1 file changed, 3 insertions(+) What are the conditions for make deciding it needs to rerun config.status? Are end users still going to get 'make' failing with the cryptic message (where we just advise on-list and on-wiki to './config.status' to fix it), or is there a way to build in a dependency so that the makefile itself knows that if config.status has to be rerun, that takes priority over any other rule that depends on .mak files? > > diff --git a/configure b/configure > index b354e74..32c847f 100755 > --- a/configure > +++ b/configure > @@ -1792,6 +1792,9 @@ EOF > exit 0 > fi > > +# Remove old dependency files to make sure that they get properly regenerated > +rm -f *-config-devices.mak.d > + > if ! has $python; then > error_exit "Python not found. Use --python=/path/to/python" > fi >
On 11/03/2019 17.21, Eric Blake wrote: > On 3/11/19 5:29 AM, Thomas Huth wrote: >> When running "make" in a build directory from the pre-Kconfig merge time, >> the build process currently fails with: >> >> make: *** No rule to make target `.../default-configs/pci.mak', >> needed by `aarch64-softmmu/config-devices.mak'. Stop. >> >> To make sure that this problem at least goes away when the user runs >> "configure" (or "sh config.status") again, we have to make sure that >> we re-generate the .mak.d files. Thus remove the old stale files >> while running the configure script. >> >> Signed-off-by: Thomas Huth <thuth@redhat.com> >> --- >> configure | 3 +++ >> 1 file changed, 3 insertions(+) > > What are the conditions for make deciding it needs to rerun > config.status? Are end users still going to get 'make' failing with the > cryptic message (where we just advise on-list and on-wiki to > './config.status' to fix it), or is there a way to build in a dependency > so that the makefile itself knows that if config.status has to be rerun, > that takes priority over any other rule that depends on .mak files? I just noticed that I never replied to this mail so far, sorry! The conditions for rerunning config.status can be found in the Makefile: config-host.mak: $(SRC_PATH)/configure $(SRC_PATH)/pc-bios $(SRC_PATH)/VERSION @echo $@ is out-of-date, running configure ... At least we change VERSION regularly, so while not being perfect, the problem should go away after a while with this patch. Not sure whether there is a better way to do this - maybe depend on the files in default-configs/, too? Or maybe we could simply bump VERSION from x.y.50 to x.y.51 the next time when we ever hit such a problem again...? Thomas
diff --git a/configure b/configure index b354e74..32c847f 100755 --- a/configure +++ b/configure @@ -1792,6 +1792,9 @@ EOF exit 0 fi +# Remove old dependency files to make sure that they get properly regenerated +rm -f *-config-devices.mak.d + if ! has $python; then error_exit "Python not found. Use --python=/path/to/python" fi
When running "make" in a build directory from the pre-Kconfig merge time, the build process currently fails with: make: *** No rule to make target `.../default-configs/pci.mak', needed by `aarch64-softmmu/config-devices.mak'. Stop. To make sure that this problem at least goes away when the user runs "configure" (or "sh config.status") again, we have to make sure that we re-generate the .mak.d files. Thus remove the old stale files while running the configure script. Signed-off-by: Thomas Huth <thuth@redhat.com> --- configure | 3 +++ 1 file changed, 3 insertions(+)