From patchwork Wed Aug 7 05:52:30 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chin Huat Ang X-Patchwork-Id: 170716 Delivered-To: patch@linaro.org Received: by 2002:a92:512:0:0:0:0:0 with SMTP id q18csp6678478ile; Tue, 6 Aug 2019 23:00:05 -0700 (PDT) X-Google-Smtp-Source: APXvYqx5Og7/7eS64ViVqGtQwg9siYB4SnV7vuq+LTljJkGWe9voN8z37WT7Gj6Yg8BnqdbodHCz X-Received: by 2002:a17:90a:9b8a:: with SMTP id g10mr6627563pjp.66.1565157605269; Tue, 06 Aug 2019 23:00:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565157605; cv=none; d=google.com; s=arc-20160816; b=HXeGfvH7jm7HJzcE+GHazWRZiBEh6Vj6kW59ycggHYEaTUT0xD75CFu6SKSy3kwnrb SVYurGC5jbMBlGbJFRVJL0XroKTgRVDu90xIKz9aKmLxwToGR0T7ywiF4qB44xc6tuWf YQjDiPZaM6uEaiZE6ENdk6bsOciU0M/ZE93HEBnLT8rmNyMtPjDdg2vBelyrfNmOdeW5 r+fOmj7iocB2zKkWpLmHIYxuh36pFT8QJcHav/XPiODVWg8JeHXLYU8fy4onjpe1hsjy QR68g1pa+6kS1E9i4qOUe1nX4pN0EaZXJhVdMJHGIbMGR9l/4ANulgLjiYol+KyQi6x4 /IkA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=errors-to:sender:content-transfer-encoding:mime-version :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:delivered-to; bh=LXDtYdAivFIn1ayY5DNtaLTEMNMBvrzFUod2SNLUV20=; b=beCPVbBOcjIVhFn2pvr3Rd2G7mLSux6qgUrAw7s9Jlh+N9SawzNgxQknlT5MVT2Rjc prFwHlUNSRX60yllvVRYzYuwqXHW9AFxyYeFf2U6oQg+FBxCh1dMHjao1GZst1FKAyLB mcIkOGUZQqg9yQ9xAiqgitLM5slTMi6nL+iuTOKfQsBF6CdxauBRzKy0BiScJqdyZL7p M5HX3TS+s6Hw3FsdIFUsmC4+3OzRNstoKxhsAVHPrndLifVK16PjeGTVdqLeSobgo+RJ dKfiL87Pcgpu27bINb8L9Itj6M1gvkeBn+Su6M9F9uqhXXJIDuCzxcfsuHvx0Y7UAz7c NSMg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of openembedded-core-bounces@lists.openembedded.org designates 140.211.169.62 as permitted sender) smtp.mailfrom=openembedded-core-bounces@lists.openembedded.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from mail.openembedded.org (mail.openembedded.org. [140.211.169.62]) by mx.google.com with ESMTP id a88si16501562pje.6.2019.08.06.23.00.04; Tue, 06 Aug 2019 23:00:05 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of openembedded-core-bounces@lists.openembedded.org designates 140.211.169.62 as permitted sender) client-ip=140.211.169.62; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of openembedded-core-bounces@lists.openembedded.org designates 140.211.169.62 as permitted sender) smtp.mailfrom=openembedded-core-bounces@lists.openembedded.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from ec2-34-214-78-129.us-west-2.compute.amazonaws.com (localhost [127.0.0.1]) by mail.openembedded.org (Postfix) with ESMTP id 183EF7F473; Wed, 7 Aug 2019 05:59:52 +0000 (UTC) X-Original-To: openembedded-core@lists.openembedded.org Delivered-To: openembedded-core@lists.openembedded.org Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mail.openembedded.org (Postfix) with ESMTP id AAB0B7F45D for ; Wed, 7 Aug 2019 05:59:40 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Aug 2019 22:52:37 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,356,1559545200"; d="scan'208";a="168519898" Received: from andromeda02.png.intel.com ([10.221.183.11]) by orsmga008.jf.intel.com with ESMTP; 06 Aug 2019 22:52:36 -0700 From: Chin Huat Ang To: "openembedded-core@lists.openembedded.org" Date: Wed, 7 Aug 2019 13:52:30 +0800 Message-Id: <1565157150-7729-4-git-send-email-chin.huat.ang@intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1565157150-7729-1-git-send-email-chin.huat.ang@intel.com> References: <1565157150-7729-1-git-send-email-chin.huat.ang@intel.com> Subject: [OE-core] [warrior][PATCH 4/4] efibootmgr: Pass correct flags to compiler from pkg-config X-BeenThere: openembedded-core@lists.openembedded.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Patches and discussions about the oe-core layer List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: openembedded-core-bounces@lists.openembedded.org Errors-To: openembedded-core-bounces@lists.openembedded.org From: Khem Raj efivar.h is in usr/include/efirvar directory so it should be added to include search path via -I to compiler cmdline to fix make[1]: *** No rule to make target 'efivar.h', needed by 'efibootmgr.o'. Stop. | make[1]: *** Waiting for unfinished jobs.... When running clang to generate dependencies -MM -MG -MF it still parses the compile unit and complains if certain header is not found where as gcc does not do that, hence the compile error is only seen when compiling with clang. (From OE-Core rev: db4fa7e765cb434119d816d86b943eeb62235601) Signed-off-by: Khem Raj Signed-off-by: Richard Purdie --- .../97668ae0bce776a36ea2001dea63d376be8274ac.patch | 83 ++++++++++++++++++++++ meta/recipes-bsp/efibootmgr/efibootmgr_17.bb | 1 + 2 files changed, 84 insertions(+) create mode 100644 meta/recipes-bsp/efibootmgr/efibootmgr/97668ae0bce776a36ea2001dea63d376be8274ac.patch -- 2.7.4 -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core diff --git a/meta/recipes-bsp/efibootmgr/efibootmgr/97668ae0bce776a36ea2001dea63d376be8274ac.patch b/meta/recipes-bsp/efibootmgr/efibootmgr/97668ae0bce776a36ea2001dea63d376be8274ac.patch new file mode 100644 index 0000000..9525ed8 --- /dev/null +++ b/meta/recipes-bsp/efibootmgr/efibootmgr/97668ae0bce776a36ea2001dea63d376be8274ac.patch @@ -0,0 +1,83 @@ +From 97668ae0bce776a36ea2001dea63d376be8274ac Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Wed, 6 Mar 2019 13:08:33 -0500 +Subject: [PATCH] Make sure PKGS= is propogated into the submake for "make + deps" + +When we're doing make deps with "$(CC) -MF", gcc and clang have different +behavior, both broken in different ways, which we're hitting because of a +missing -I argument for libefivar's includes. On clang, when a header can't +be found, it emits a rule with the header as a prerequisite without a path, +such as efivar.h here: + +efibootmgr.o: efibootmgr.c fix_coverity.h efivar.h efiboot.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/list.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/efi.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/unparse_path.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/efibootmgr.h \ + error.h + +Then the build that utilizes that rule will fail to find the +prerequisite and tell you something like: + +make[1]: *** No rule to make target 'efivar.h', needed by 'efibootmgr.o'. Stop. +make[1]: Leaving directory '/home/pjones/devel/github.com/efibootmgr/master/src' + +With gcc, when a header can't be found, it emits a rule without that header +as a prerequisite, as such (again with efivar.h): + +efibootmgr.o: efibootmgr.c fix_coverity.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/list.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/efi.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/unparse_path.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/efi.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/efibootmgr.h \ + error.h + +And then your build will fail if you haven't adjusted CFLAGS to tell it +where to find the header. + +Both of these would be better just erroring, but at least gcc's doesn't +insert a *wrong* dependency. + +This patch adds "PKGS=efivar efibootmgr popt" for all deps under src/. +Technically that's overkill, as efibootmgr itself doesn't need popt, but it +doesn't hurt anything to have the extra part there. The resulting +.efibootmgr.d file has the prerequisites expressed correctly: + +efibootmgr.o: efibootmgr.c fix_coverity.h /usr/include/efivar/efivar.h \ + /usr/include/efivar/efiboot.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/list.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/efi.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/unparse_path.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/efi.h \ + /home/pjones/devel/github.com/efibootmgr/master/src/include/efibootmgr.h \ + error.h + +This fixes the issue described in github PR #96 + +Signed-off-by: Peter Jones +Upstream-Status: Backport [https://github.com/rhboot/efibootmgr/commit/97668ae0bce776a36ea2001dea63d376be8274ac] +--- + src/Makefile | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/src/Makefile b/src/Makefile +index 258bac1..32fa188 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -31,8 +31,13 @@ efibootdump : PKGS=efivar efiboot popt + efibootnext : $(call objects-of,$(EFIBOOTNEXT_SOURCES)) + efibootnext : PKGS=efivar efiboot popt + ++deps : PKGS=efivar efiboot popt + deps : $(ALL_SOURCES) +- $(MAKE) -f $(TOPDIR)/Make.deps deps SOURCES="$(ALL_SOURCES)" SUBDIR_CFLAGS="$(SUBDIR_CFLAGS)" ++ $(MAKE) -f $(TOPDIR)/Make.deps \ ++ SOURCES="$(ALL_SOURCES)" \ ++ SUBDIR_CFLAGS="$(SUBDIR_CFLAGS)" \ ++ PKGS="$(PKGS)" \ ++ deps + + clean : + @rm -rfv *.o *.a *.so $(TARGETS) diff --git a/meta/recipes-bsp/efibootmgr/efibootmgr_17.bb b/meta/recipes-bsp/efibootmgr/efibootmgr_17.bb index 0e5a81e..5d6f200 100644 --- a/meta/recipes-bsp/efibootmgr/efibootmgr_17.bb +++ b/meta/recipes-bsp/efibootmgr/efibootmgr_17.bb @@ -12,6 +12,7 @@ COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux" SRC_URI = "git://github.com/rhinstaller/efibootmgr.git;protocol=https \ file://0001-remove-extra-decl.patch \ + file://97668ae0bce776a36ea2001dea63d376be8274ac.patch \ " SRCREV = "e067160ecef8208e1944002e5d50b275733211fb"