Re: [edk2] [PATCH] BaseTools/VfrCompile: honor EXTRA_LDFLAGS

2018-08-22 Thread Laszlo Ersek
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

2018-08-22 Thread Gao, Liming
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

2018-08-22 Thread Laszlo Ersek
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

2018-08-16 Thread Laszlo Ersek
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