Re: [edk2] [PATCH] BaseTools/VfrCompile: honor EXTRA_LDFLAGS
On 08/22/18 18:34, Gao, Liming wrote: > Reviewed-by: Liming Gao Thanks! > And, push at aa4e0df1f0c7ffdff07d7e382c9da89cbe207cdb That's very kind of you! Thanks! :) Laszlo > Thanks > Liming >> -Original Message- >> From: Laszlo Ersek [mailto:ler...@redhat.com] >> Sent: Thursday, August 16, 2018 7:38 PM >> To: edk2-devel-01 >> Cc: Gao, Liming ; Zhu, Yonghong >> >> 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 >> 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(-) >> >> 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
Re: [edk2] [PATCH] BaseTools/VfrCompile: honor EXTRA_LDFLAGS
Reviewed-by: Liming Gao 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 > Cc: Gao, Liming ; Zhu, Yonghong > 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 > 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(-) > > 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
Re: [edk2] [PATCH] BaseTools/VfrCompile: honor EXTRA_LDFLAGS
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 > > ___ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
[edk2] [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 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(-) 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