Cc'ing Daniel & Alex. On 1/18/19 11:33 PM, Laszlo Ersek wrote: > The roms/edk2 submodule can help with three goals: > - build the OVMF and ArmVirtQemu virtual UEFI firmware platforms (to be > implemented later), > - build the EfiRom tool on the fly, which is used in roms/Makefile, for > building the "efirom" target, > - build UEFI test applications (to be run in guests), for qtest support. > > Edk2 commit 85588389222a3636baf0f9ed8227f2434af4c3f9 stands for the latest > "stable tag", namely "edk2-stable201811". > > The edk2 repository tracks some binary files that should not be removed by > QEMU's top-level "make clean"; exempt the full pathnames from the "find" > command. > > Cc: "Michael S. Tsirkin" <m...@redhat.com> > Cc: Ard Biesheuvel <ard.biesheu...@linaro.org> > Cc: Gerd Hoffmann <kra...@redhat.com> > Cc: Igor Mammedov <imamm...@redhat.com> > Cc: Philippe Mathieu-Daudé <phi...@redhat.com> > Cc: Shannon Zhao <shannon.zha...@gmail.com> > Signed-off-by: Laszlo Ersek <ler...@redhat.com> > --- > Makefile | 6 +++++- > .gitmodules | 3 +++ > roms/edk2 | 1 + > 3 files changed, 9 insertions(+), 1 deletion(-) > > diff --git a/Makefile b/Makefile > index dccba1dca27f..1f768e2bcf8f 100644 > --- a/Makefile > +++ b/Makefile > @@ -602,7 +602,11 @@ clean: > rm -f config.mak op-i386.h opc-i386.h gen-op-i386.h op-arm.h opc-arm.h > gen-op-arm.h > rm -f qemu-options.def > rm -f *.msi > - find . \( -name '*.so' -o -name '*.dll' -o -name '*.mo' -o -name > '*.[oda]' \) -type f -exec rm {} + > + find . \( -name '*.so' -o -name '*.dll' -o -name '*.mo' -o -name > '*.[oda]' \) -type f \ > + ! -path ./roms/edk2/ArmPkg/Library/GccLto/liblto-aarch64.a \ > + ! -path ./roms/edk2/ArmPkg/Library/GccLto/liblto-arm.a \ > + ! -path ./roms/edk2/BaseTools/Source/Python/UPT/Dll/sqlite3.dll > \
Hmm I never try in-tree builds and thought this rule was for the archived release out of git, so this wouldn't matter. > + -exec rm {} + > rm -f $(filter-out %.tlb,$(TOOLS)) $(HELPERS-y) qemu-ga TAGS cscope.* > *.pod *~ */*~ > rm -f fsdev/*.pod scsi/*.pod > rm -f qemu-img-cmds.h > diff --git a/.gitmodules b/.gitmodules > index 6b91176098c8..ceafb0ee29a0 100644 > --- a/.gitmodules > +++ b/.gitmodules > @@ -49,3 +49,6 @@ > [submodule "tests/fp/berkeley-softfloat-3"] > path = tests/fp/berkeley-softfloat-3 > url = https://github.com/cota/berkeley-softfloat-3 > +[submodule "roms/edk2"] > + path = roms/edk2 > + url = https://github.com/tianocore/edk2.git Indeed this is enough to build EfiRom. However if you want to build firmwares (your patch 4/5), the submodule is incomplete, until you manually run "submodule update --init --recursive". I suggest the following change, Daniel/Alex what do you think? -- >8 -- diff --git a/scripts/git-submodule.sh b/scripts/git-submodule.sh index 98ca0f2737..5441fe3385 100755 --- a/scripts/git-submodule.sh +++ b/scripts/git-submodule.sh @@ -71,7 +71,7 @@ update) exit 0 fi - $GIT submodule update --init $modules 1>/dev/null + $GIT submodule update --init --recursive $modules 1>/dev/null test $? -ne 0 && error "failed to update modules" $GIT submodule status $modules > "${substat}" --- > diff --git a/roms/edk2 b/roms/edk2 > new file mode 160000 > index 000000000000..85588389222a > --- /dev/null > +++ b/roms/edk2 > @@ -0,0 +1 @@ > +Subproject commit 85588389222a3636baf0f9ed8227f2434af4c3f9 >