{"id":810185,"url":"http://patchwork.ozlabs.org/api/patches/810185/?format=json","web_url":"http://patchwork.ozlabs.org/project/uboot/patch/20170905140719.20192-5-xypron.glpk@gmx.de/","project":{"id":18,"url":"http://patchwork.ozlabs.org/api/projects/18/?format=json","name":"U-Boot","link_name":"uboot","list_id":"u-boot.lists.denx.de","list_email":"u-boot@lists.denx.de","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20170905140719.20192-5-xypron.glpk@gmx.de>","list_archive_url":null,"date":"2017-09-05T14:07:19","name":"[U-Boot,v2,4/4] efi_loader: allow multiple source files for EFI apps","commit_ref":null,"pull_url":null,"state":"accepted","archived":false,"hash":"f4045ea2632e3cdb7562ee7f360a9a1406d2c6ee","submitter":{"id":61270,"url":"http://patchwork.ozlabs.org/api/people/61270/?format=json","name":"Heinrich Schuchardt","email":"xypron.glpk@gmx.de"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/uboot/patch/20170905140719.20192-5-xypron.glpk@gmx.de/mbox/","series":[{"id":1589,"url":"http://patchwork.ozlabs.org/api/series/1589/?format=json","web_url":"http://patchwork.ozlabs.org/project/uboot/list/?series=1589","date":"2017-09-05T14:07:16","name":"Clean up make process for EFI payload","version":2,"mbox":"http://patchwork.ozlabs.org/series/1589/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/810185/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/810185/checks/","tags":{},"related":[],"headers":{"Return-Path":"<u-boot-bounces@lists.denx.de>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.denx.de\n\t(client-ip=81.169.180.215; helo=lists.denx.de;\n\tenvelope-from=u-boot-bounces@lists.denx.de;\n\treceiver=<UNKNOWN>)","Received":["from lists.denx.de (dione.denx.de [81.169.180.215])\n\tby ozlabs.org (Postfix) with ESMTP id 3xmpWb3d07z9t2R\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed,  6 Sep 2017 00:10:03 +1000 (AEST)","by lists.denx.de (Postfix, from userid 105)\n\tid 26C49C21FA6; Tue,  5 Sep 2017 14:08:48 +0000 (UTC)","from lists.denx.de (localhost [IPv6:::1])\n\tby lists.denx.de (Postfix) with ESMTP id 18DF0C21D95;\n\tTue,  5 Sep 2017 14:08:12 +0000 (UTC)","by lists.denx.de (Postfix, from userid 105)\n\tid 26AD4C21D64; Tue,  5 Sep 2017 14:07:50 +0000 (UTC)","from mout.gmx.net (mout.gmx.net [212.227.15.18])\n\tby lists.denx.de (Postfix) with ESMTPS id 06900C21E3E\n\tfor <u-boot@lists.denx.de>; Tue,  5 Sep 2017 14:07:46 +0000 (UTC)","from laptop1.fritz.box ([92.40.248.116]) by mail.gmx.com (mrgmx002\n\t[212.227.17.184]) with ESMTPSA (Nemesis) id\n\t0Lh7sF-1dA68H41eZ-00oaUX; Tue, 05 Sep 2017 16:07:43 +0200"],"X-Spam-Checker-Version":"SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de","X-Spam-Level":"","X-Spam-Status":"No, score=-0.7 required=5.0 tests=FREEMAIL_FROM,\n\tRCVD_IN_DNSWL_LOW,\n\tRCVD_IN_MSPIKE_H2 autolearn=unavailable autolearn_force=no\n\tversion=3.4.0","From":"Heinrich Schuchardt <xypron.glpk@gmx.de>","To":"Alexander Graf <agraf@suse.de>","Date":"Tue,  5 Sep 2017 16:07:19 +0200","Message-Id":"<20170905140719.20192-5-xypron.glpk@gmx.de>","X-Mailer":"git-send-email 2.11.0","In-Reply-To":"<20170905140719.20192-1-xypron.glpk@gmx.de>","References":"<20170905140719.20192-1-xypron.glpk@gmx.de>","X-Provags-ID":"V03:K0:lTtvjJu1vNBDB4iPZYxL5e5Zx4VpgHEYo74L/PTS7YW1SfOGNCD\n\tVM7pLmJTqZ3LM+ZqVmAe6e0zU5m5qhOwCJE/JG7zLLYxLzBRCiHnyzAqIcHbSYKJ2mIWuYG\n\tbaTVCsjPCi05pAxHBKoeJ+ZPwYRjlNjsNlwxAT7foyUgk1IjU6ndgjAJVH1HjqVUgxQVGjy\n\tqUZyeh7Y8mIYMUNOAFE/A==","X-UI-Out-Filterresults":"notjunk:1; V01:K0:cIXNnRdhoBY=:APcn4hGjDUr48kIv1Kw0kC\n\tBcYKTKxvY3BqxKsvw/mvrHnz4rK9kXkkaeA9AevzeFWdkkZryRg4e9/Atxrjupwh/ZwE8E6jW\n\tSZ9Zye48MpyIXryAo2DOBvekBbhPv3FoaqG7e7ZJ6G0BPdRJiU1JzCxBHDQ7hf9oQNafUfSwX\n\thmPiGU/XoLT2xeNMWEyZJFEWxslR/pI30KtapIc5/RfY5UF5Pqr0OECyQLO3NDMzijXqTZMR9\n\t7r/V4GoFdqgOISzzpXL6jgijydVZfXagnKbyV4E9prDvxUxg74HPTFaWSKQkmT9lmFrE36wo5\n\tq/5EzbVLJM82GGtYlsTB/zVOpjFOxy1FuD6uVg/tDE4+T68mecs5FEP5HyWyNFnjbLV+KCEUA\n\tWPTpkg/kKg8upzWbjaKtNqi6WypBhBXHfqqynvJOmWYdW/90slR9nNOfx6ocTlqkYXsTGKkRg\n\tcgsvTZJiA0NcSupOxZ5BFJndaxyE1phuX3dKpr7o9MhGqzrbeuKW11iCnYR2wi0nxy8pHbMDA\n\t3VxOY/4XogJ2bGzDVKv/WL/K207S2B1tsb3CdsY3BxlH0Ni9Prbo5AMDRzh2/0gP2fnAlXeyv\n\tnxnNOzVMHn9KDsrop48w0AKRqNeyrcEozQGy+wC/sjPct3Pqeece74xvRR5uNkLh80iRhLn//\n\tdEFdvI3zR6S9Tn37ncwPTFH/8SgjzPF7i5lhkazZHqNCIZrfKKH37t4quC5Vk82iOBFkHqYnm\n\tuAtjxmjf7cp6EjDI7wIOs1vDS3TEax9KBVZjY9E8yDhOJuHzz/uAxePmgaUuJ697e5pDBHePQ\n\tppLnghtuuDKTR0jBosbMt9f+HTjUw==","Cc":"Mark Kettenis <kettenis@openbsd.org>, u-boot@lists.denx.de,\n\tHeinrich Schuchardt <xypron.glpk@gmx.de>","Subject":"[U-Boot] [PATCH v2 4/4] efi_loader: allow multiple source files for\n\tEFI apps","X-BeenThere":"u-boot@lists.denx.de","X-Mailman-Version":"2.1.18","Precedence":"list","List-Id":"U-Boot discussion <u-boot.lists.denx.de>","List-Unsubscribe":"<https://lists.denx.de/options/u-boot>,\n\t<mailto:u-boot-request@lists.denx.de?subject=unsubscribe>","List-Archive":"<http://lists.denx.de/pipermail/u-boot/>","List-Post":"<mailto:u-boot@lists.denx.de>","List-Help":"<mailto:u-boot-request@lists.denx.de?subject=help>","List-Subscribe":"<https://lists.denx.de/listinfo/u-boot>,\n\t<mailto:u-boot-request@lists.denx.de?subject=subscribe>","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"base64","Errors-To":"u-boot-bounces@lists.denx.de","Sender":"\"U-Boot\" <u-boot-bounces@lists.denx.de>"},"content":"With this patch an EFI application can be built\nout of multiple source files.\n\nAll object files that are to be included into the EFI\napplication %.efi must be added to variable %-objs. E.g.\n\n\thelloworld-objs = helloworld.o\n\nscript/Makefile.lib automatically generates file %_efi.d\ncontaining the dependency definition.\n\nThis file is included in the next run of make. From now on\nall objects in %-objs are built.\n\nThe %_efi.d file should be included in the source\ndistribution.\n\nAfter adding a new file to %-objs the first make run will\nfail due to the outdated %_efi.d file.\n\nSigned-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>\n---\nv2\n\tnew patch\n---\n lib/efi_loader/Makefile         |  3 +++\n lib/efi_loader/helloworld_efi.d |  1 +\n scripts/Makefile.lib            | 12 ++++++++++--\n 3 files changed, 14 insertions(+), 2 deletions(-)\n create mode 100644 lib/efi_loader/helloworld_efi.d","diff":"diff --git a/lib/efi_loader/Makefile b/lib/efi_loader/Makefile\nindex 5200497230..d6a9635cc8 100644\n--- a/lib/efi_loader/Makefile\n+++ b/lib/efi_loader/Makefile\n@@ -10,6 +10,9 @@\n CFLAGS_helloworld.o := $(CFLAGS_EFI)\n CFLAGS_REMOVE_helloworld.o := $(CFLAGS_NON_EFI)\n \n+helloworld-objs = \\\n+helloworld.o\n+\n ifneq ($(CONFIG_CMD_BOOTEFI_HELLO_COMPILE),)\n always += helloworld.efi\n endif\ndiff --git a/lib/efi_loader/helloworld_efi.d b/lib/efi_loader/helloworld_efi.d\nnew file mode 100644\nindex 0000000000..892db64c8b\n--- /dev/null\n+++ b/lib/efi_loader/helloworld_efi.d\n@@ -0,0 +1 @@\n+lib/efi_loader/helloworld_efi.d: lib/efi_loader/helloworld.o\ndiff --git a/scripts/Makefile.lib b/scripts/Makefile.lib\nindex ebc74f8987..1a9f32902d 100644\n--- a/scripts/Makefile.lib\n+++ b/scripts/Makefile.lib\n@@ -373,14 +373,22 @@ $(obj)/%.efi: $(obj)/%_efi.so\n \n quiet_cmd_efi_ld = LD      $@\n cmd_efi_ld = $(LD) -nostdlib -znocombreloc -T $(EFI_LDS_PATH) -shared \\\n-\t\t-Bsymbolic $^ -o $@\n+\t\t-Bsymbolic $(foreach _s, $($*-objs), $(obj)/$(_s)) -o $@\n \n EFI_LDS_PATH = $(srctree)/arch/$(ARCH)/lib/$(EFI_LDS)\n \n-$(obj)/%_efi.so: $(obj)/%.o arch/$(ARCH)/lib/$(EFI_CRT0) \\\n+.PRECIOUS: $(obj)/%_efi.d\n+\n+$(obj)/%_efi.so: $(obj)/%.o $(obj)/%.d arch/$(ARCH)/lib/$(EFI_CRT0) \\\n \t\tarch/$(ARCH)/lib/$(EFI_RELOC)\n+\t@echo $(obj)/$*_efi.d: $(foreach _s, $($*-objs), $(obj)/$(_s)) \\\n+\t\t> $(obj)/$*_efi.d\n \t$(call cmd,efi_ld)\n \n+$(obj)/%.d:;\n+\n+include $(wildcard $(foreach _s, $(filter %_efi.o, $(obj-y)), $(_s:.o=.d)))\n+\n # ACPI\n # ---------------------------------------------------------------------------\n quiet_cmd_acpi_c_asl= ASL     $<\n","prefixes":["U-Boot","v2","4/4"]}