qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PULL 00/10] Gitlab-CI, qtest, moxie removal and misc patches


From: Thomas Huth
Subject: Re: [PULL 00/10] Gitlab-CI, qtest, moxie removal and misc patches
Date: Thu, 20 May 2021 07:08:44 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.0

On 20/05/2021 04.40, Philippe Mathieu-Daudé wrote:
On 5/14/21 12:25 PM, Thomas Huth wrote:
On 14/05/2021 12.22, Philippe Mathieu-Daudé wrote:
On 5/9/21 6:05 PM, Thomas Huth wrote:
On 07/05/2021 14.41, Paolo Bonzini wrote:
On 07/05/21 11:45, Thomas Huth wrote:


diff --git a/Makefile b/Makefile
index bcbbec71a1..3088502329 100644
--- a/Makefile
+++ b/Makefile
@@ -85,7 +85,8 @@ x := $(shell rm -rf meson-private meson-info
meson-logs)
    endif

    # 1. ensure config-host.mak is up-to-date
-config-host.mak: $(SRC_PATH)/configure $(SRC_PATH)/pc-bios
$(SRC_PATH)/VERSION
+config-host.mak: $(SRC_PATH)/configure $(SRC_PATH)/pc-bios
$(SRC_PATH)/VERSION \
+                $(SRC_PATH)/default-configs/targets
           @echo config-host.mak is out-of-date, running configure
           @if test -f meson-private/coredata.dat; then \
             ./config.status --skip-meson; \

I.e. re-run configure if somethings in default-configs/targets
changed.
Does that look sane?

I am not sure if using a directory is reliable (it's pre-existing for
pc-bios).  However you probably can use

# currently in tests/Makefile.include, move it to toplevel Makefile
TARGETS=$(patsubst libqemu-%.fa, %, $(filter libqemu-%.fa,
$(ninja-targets)))
config-host.mak: $(SRC_PATH)/configure
$(TARGETS:%=default-configs/targets/%)

And then if a file goes missing it will trigger the rebuild of
config-host.mak.

Sounds like an idea, too ... but I'm unsure whether it's doable due to
the order of the statements there... TARGETS gets populated from
ninja-targets, but ninja-targets gets set *after* the config-host.mak
block ... would it be safe to move the config-host.mak block around?

Not sure I understood Paolo's suggestion, I tried:

-- >8 --
diff --git a/Makefile b/Makefile
index bcbbec71a1c..3ef3622228b 100644
--- a/Makefile
+++ b/Makefile
@@ -152,6 +152,10 @@ ifneq ($(filter $(ninja-targets),
$(ninja-cmd-goals)),)
          +$(quiet-@)$(if $(MAKE.nq),@:, $(NINJA) -d keepdepfile \
             $(NINJAFLAGS) $(sort $(filter $(ninja-targets),
$(ninja-cmd-goals))) | cat)
   endif
+
+TARGETS=$(patsubst libqemu-%.fa, %, $(filter libqemu-%.fa,
$(ninja-targets)))
+config-host.mak: $(SRC_PATH)/configure
$(TARGETS:%=default-configs/targets/%)
+
   endif

   # Force configure to re-run if the API symbols are updated
---

But still get (after git pull this morning):

$ ninja qemu-system-ppc
[0/1] Regenerating build files.
...
meson.build:1303:2: ERROR: Failed to load
default-configs/targets/moxie-softmmu.mak: [Errno 2] No such file or
directory: 'default-configs/targets/moxie-softmmu.mak'
A full log can be found at meson-logs/meson-log.txt
FAILED: build.ninja

I'm keeping the directory unmodified in case you want me to try
other fixes.

If you run ninja directly, you certainly won't fix this issue by
patching the "Makefile" ;-)

OK... Not sure how to detect it from ninja then.

Every time you pull, there could be changes to the "configure" script which affect the build ... I guess you also won't notice those when you're only compiling with ninja? Thus at least after pulling from upstream, I think you have to type "make" once at least.

 Thomas




reply via email to

[Prev in Thread] Current Thread [Next in Thread]