[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/5] roms: add the edk2 project as a git submodu
From: |
Laszlo Ersek |
Subject: |
Re: [Qemu-devel] [PATCH 1/5] roms: add the edk2 project as a git submodule |
Date: |
Mon, 21 Jan 2019 19:41:53 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 |
On 01/21/19 12:25, Philippe Mathieu-Daudé wrote:
> 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" <address@hidden>
>> Cc: Ard Biesheuvel <address@hidden>
>> Cc: Gerd Hoffmann <address@hidden>
>> Cc: Igor Mammedov <address@hidden>
>> Cc: Philippe Mathieu-Daudé <address@hidden>
>> Cc: Shannon Zhao <address@hidden>
>> Signed-off-by: Laszlo Ersek <address@hidden>
>> ---
>> 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.
That's not correct; before I posted the series, I downloaded the
then-latest tarball release, and I saw that the roms/ submoule trees
were flattened into it. Try:
wget -O - -q https://download.qemu.org/qemu-3.1.0.tar.xz \
| tar -t --xz \
| grep roms/
>
>> + -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".
That applies equally to the other submodules (firmware or otherwise)
that we have under roms/. Edk2 is not being added as a nested submodule,
it is a sibling; so whatever tooling covers e.g. roms/seabios and
roms/ipxe, the same tooling should cover roms/edk2 too.
>
> 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}"
> ---
This shouldn't make a difference, as edk2 is not a nested submodule of
another submodule; it is a submodule directly under the main
superproject, i.e. QEMU.
Thanks,
Laszlo
>
>> 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
>>
[Qemu-devel] [PATCH 2/5] roms: build the EfiRom utility from the roms/edk2 submodule, Laszlo Ersek, 2019/01/18
[Qemu-devel] [PATCH 4/5] tests/uefi-test-tools: add build scripts, Laszlo Ersek, 2019/01/18