From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=66.187.233.73; helo=mx1.redhat.com; envelope-from=lersek@redhat.com; receiver=edk2-devel@lists.01.org Received: from mx1.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 082D9210FBEF4 for ; Wed, 22 Aug 2018 01:24:06 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id DE24A40216E3; Wed, 22 Aug 2018 08:24:05 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-120-77.rdu2.redhat.com [10.10.120.77]) by smtp.corp.redhat.com (Postfix) with ESMTP id 714872026D74; Wed, 22 Aug 2018 08:24:05 +0000 (UTC) From: Laszlo Ersek To: edk2-devel-01 Cc: Liming Gao References: <20180817023802.7474-1-lersek@redhat.com> Message-ID: <0898ad82-bc09-32ae-d2e4-452634dfa73f@redhat.com> Date: Wed, 22 Aug 2018 10:24:04 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <20180817023802.7474-1-lersek@redhat.com> X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.5]); Wed, 22 Aug 2018 08:24:05 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.5]); Wed, 22 Aug 2018 08:24:05 +0000 (UTC) for IP:'10.11.54.4' DOMAIN:'int-mx04.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'lersek@redhat.com' RCPT:'' Subject: Re: [PATCH] BaseTools/VfrCompile: honor EXTRA_LDFLAGS X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 22 Aug 2018 08:24:07 -0000 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Hi Liming, On 08/17/18 04:38, Laszlo Ersek wrote: > In commit 81502cee20ac ("BaseTools/Source/C: take EXTRA_LDFLAGS from the > caller", 2018-08-16), I missed that "VfrCompile/GNUmakefile" does not use > BUILD_LFLAGS in the APPLICATION linking rule, unlike "app.makefile" does. > Instead, "VfrCompile/GNUmakefile" uses the (undefined) LFLAGS macro. > Therefore commit 81502cee20ac did not cover the linking step of > VfrCompile. > > Thankfully, the structure of the linking rules is the same, between > "app.makefile" and "VfrCompile/GNUmakefile". Rename the undefined LFLAGS > macro in "VfrCompile/GNUmakefile" to VFR_LFLAGS (for consistency with > VFR_CXXFLAGS), and set it to EXTRA_LDFLAGS. > > As a result, we have: > > | compilation | linking > -----------+--------------------------------+---------------------- > VfrCompile | VFR_CXXFLAGS = | VFR_LFLAGS = > | BUILD_OPTFLAGS = | EXTRA_LDFLAGS > | '-O2' + EXTRA_OPTFLAGS | > -----------+--------------------------------+---------------------- > other apps | BUILD_CFLAGS/BUILD_CXXFLAGS = | BUILD_LFLAGS = > | [...] + BUILD_OPTFLAGS = | [...] + EXTRA_LDFLAGS > | [...] + '-O2' + EXTRA_OPTFLAGS | > > This table shows > - that the VfrCompile compilation and linking flags are always a subset of > the corresponding flags used by the other apps, > - and that the EXTRA flags are always at the end. > > Cc: Liming Gao > Cc: Yonghong Zhu > Ref: https://bugzilla.redhat.com/show_bug.cgi?id=1540244 > Fixes: 81502cee20ac4046f08bb4aec754c7091c8808dc > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Laszlo Ersek > --- > > Notes: > Repo: https://github.com/lersek/edk2.git > Branch: extra_flags_rhbz1540244_round2 > > BaseTools/Source/C/VfrCompile/GNUmakefile | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) If your time allows, can you please check this patch? I'm sorry I didn't catch this part in the original series. I really hope I won't have to touch the BaseTools makefiles for the foreseeable future. The commit message ended up a bit long, but the patch is quite simple. Thanks! Laszlo > diff --git a/BaseTools/Source/C/VfrCompile/GNUmakefile b/BaseTools/Source/C/VfrCompile/GNUmakefile > index bbe562cbc54f..9273589ff805 100644 > --- a/BaseTools/Source/C/VfrCompile/GNUmakefile > +++ b/BaseTools/Source/C/VfrCompile/GNUmakefile > @@ -28,6 +28,9 @@ VFR_CPPFLAGS = -DPCCTS_USE_NAMESPACE_STD $(BUILD_CPPFLAGS) > # keep BUILD_OPTFLAGS last > VFR_CXXFLAGS = $(BUILD_OPTFLAGS) > > +# keep EXTRA_LDFLAGS last > +VFR_LFLAGS = $(EXTRA_LDFLAGS) > + > LINKER = $(BUILD_CXX) > > EXTRA_CLEAN_OBJECTS = EfiVfrParser.cpp EfiVfrParser.h VfrParser.dlg VfrTokens.h VfrLexer.cpp VfrLexer.h VfrSyntax.cpp tokens.h > @@ -42,7 +45,7 @@ APPLICATION = $(MAKEROOT)/bin/$(APPNAME) > all: $(MAKEROOT)/bin $(APPLICATION) > > $(APPLICATION): $(OBJECTS) > - $(LINKER) -o $(APPLICATION) $(LFLAGS) $(OBJECTS) -L$(MAKEROOT)/libs $(LIBS) > + $(LINKER) -o $(APPLICATION) $(VFR_LFLAGS) $(OBJECTS) -L$(MAKEROOT)/libs $(LIBS) > > VfrCompiler.o: ../Include/Common/BuildVersion.h > >