Reviewed-by: Liming Gao <liming....@intel.com> And, push at aa4e0df1f0c7ffdff07d7e382c9da89cbe207cdb
Thanks Liming > -----Original Message----- > From: Laszlo Ersek [mailto:ler...@redhat.com] > Sent: Thursday, August 16, 2018 7:38 PM > To: edk2-devel-01 <edk2-devel@lists.01.org> > Cc: Gao, Liming <liming....@intel.com>; Zhu, Yonghong <yonghong....@intel.com> > Subject: [PATCH] BaseTools/VfrCompile: honor EXTRA_LDFLAGS > > 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 <liming....@intel.com> > Cc: Yonghong Zhu <yonghong....@intel.com> > Ref: https://bugzilla.redhat.com/show_bug.cgi?id=1540244 > Fixes: 81502cee20ac4046f08bb4aec754c7091c8808dc > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Laszlo Ersek <ler...@redhat.com> > --- > > 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(-) > > 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 > > -- > 2.14.1.3.gb7cf6e02401b _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel