Re: [edk2] [PATCH 00/26] remove the GCC44 through GCC47 toolchains

2019-01-08 Thread Ard Biesheuvel
On Tue, 8 Jan 2019 at 02:54, Laszlo Ersek  wrote:
>
> On 01/07/19 19:08, Laszlo Ersek wrote:
> > On 01/07/19 13:15, Gao, Liming wrote:
> >> Laszlo:
> >>   This patch set is good to me. Reviewed-by: Liming Gao 
> >> 
> >
> > Many thanks to everyone for the quick reviews!
> >
> >>   Besides this patch set, I suggest to let GCC48/GCC49/GCC5 refer to the 
> >> common GCC_ flags. After I remove ELFGCC/UNIXGCC/CYGGCC tool chain, I will 
> >> update GCC_ flags to be same to current GCC48_ flags, then remove GCC48_ 
> >> flag definition.
> >
> > Sounds good to me, thanks. IIRC I actually looked into calling that
> > stuff just GCC_, but I seem to remember that the subject macros were
> > already defined for other purposes. Once you eliminate
> > ELFGCC/UNIXGCC/CYGGCC, hopefully all those macros can be collapsed.
> >
> > For this series, I plan to go through the feedback tags in detail,
> > shortly, and push the series if everything is sufficiently approved.
>
> That appears to be the case, so I've pushed the series: commit range
> 46f4c9677c61..7423ba9d499b.
>

Thanks a lot for this to the both of you.
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


Re: [edk2] [PATCH 00/26] remove the GCC44 through GCC47 toolchains

2019-01-07 Thread Laszlo Ersek
On 01/07/19 19:08, Laszlo Ersek wrote:
> On 01/07/19 13:15, Gao, Liming wrote:
>> Laszlo:
>>   This patch set is good to me. Reviewed-by: Liming Gao 
>> 
> 
> Many thanks to everyone for the quick reviews!
> 
>>   Besides this patch set, I suggest to let GCC48/GCC49/GCC5 refer to the 
>> common GCC_ flags. After I remove ELFGCC/UNIXGCC/CYGGCC tool chain, I will 
>> update GCC_ flags to be same to current GCC48_ flags, then remove GCC48_ 
>> flag definition.
> 
> Sounds good to me, thanks. IIRC I actually looked into calling that
> stuff just GCC_, but I seem to remember that the subject macros were
> already defined for other purposes. Once you eliminate
> ELFGCC/UNIXGCC/CYGGCC, hopefully all those macros can be collapsed.
> 
> For this series, I plan to go through the feedback tags in detail,
> shortly, and push the series if everything is sufficiently approved.

That appears to be the case, so I've pushed the series: commit range
46f4c9677c61..7423ba9d499b.

Thank you all again,
Laszlo
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


Re: [edk2] [PATCH 00/26] remove the GCC44 through GCC47 toolchains

2019-01-07 Thread Laszlo Ersek
On 01/07/19 13:15, Gao, Liming wrote:
> Laszlo:
>   This patch set is good to me. Reviewed-by: Liming Gao 

Many thanks to everyone for the quick reviews!

>   Besides this patch set, I suggest to let GCC48/GCC49/GCC5 refer to the 
> common GCC_ flags. After I remove ELFGCC/UNIXGCC/CYGGCC tool chain, I will 
> update GCC_ flags to be same to current GCC48_ flags, then remove GCC48_ flag 
> definition.

Sounds good to me, thanks. IIRC I actually looked into calling that
stuff just GCC_, but I seem to remember that the subject macros were
already defined for other purposes. Once you eliminate
ELFGCC/UNIXGCC/CYGGCC, hopefully all those macros can be collapsed.

For this series, I plan to go through the feedback tags in detail,
shortly, and push the series if everything is sufficiently approved.

Thanks!
Laszlo
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


Re: [edk2] [PATCH 00/26] remove the GCC44 through GCC47 toolchains

2019-01-07 Thread Gao, Liming
Laszlo:
  This patch set is good to me. Reviewed-by: Liming Gao 

  Besides this patch set, I suggest to let GCC48/GCC49/GCC5 refer to the common 
GCC_ flags. After I remove ELFGCC/UNIXGCC/CYGGCC tool chain, I will update GCC_ 
flags to be same to current GCC48_ flags, then remove GCC48_ flag definition.

Thanks
Liming
> -Original Message-
> From: Philippe Mathieu-Daudé [mailto:phi...@redhat.com]
> Sent: Monday, January 7, 2019 5:44 PM
> To: Laszlo Ersek ; edk2-devel-01 
> Cc: Ni, Ray ; Ye, Ting ; Kinney, Michael 
> D ; Gao, Liming
> ; Justen, Jordan L ; Anthony 
> Perard ; Qian, Yi
> 
> Subject: Re: [edk2] [PATCH 00/26] remove the GCC44 through GCC47 toolchains
> 
> On 1/3/19 3:47 AM, Laszlo Ersek wrote:
> > Repo:   https://github.com/lersek/edk2.git
> > Branch: drop_gcc44_gcc47_tiano1377
> >
> > (0) This series is meant as an alternative to
> >
> >   [edk2] [Patch 0/5] Remove unused tool chains in tools_def.template
> >   20181224150107.28624-1-liming.gao@intel.com">http://mid.mail-archive.com/20181224150107.28624-1-liming.gao@intel.com
> >
> > Out of that series, patch #1 (from Ard) is included here, while patch #3
> > is reimplemented from scratch (making up the bulk of this series) in a
> > way that at least I would be capable of reviewing.
> 
> Lovely.
> 
> > The rest of the
> > patches from Liming's series (#2, #4, #5) are out of scope for me, and I
> > ask for them to be rebased on top of this series (if this one is
> > acceptable).
> >
> > Thus, this series intends to address
> >
> >   https://bugzilla.tianocore.org/show_bug.cgi?id=1377
> >
> > only in part.
> >
> > (1) For locating GCC44 references, I used the following grep command:
> >
> >   git grep -H -n -i -E 'gcc[- ]?4\.?[4567]'
> >
> > That is,
> > - "gcc" (case-insensitively),
> > - optionally followed by hyphen or space,
> > - followed by "4",
> > - optionally followed by ".",
> > - followed by 4 through 7.
> >
> > One hit that persists after this patch set is in
> > "AppPkg/Applications/Python/Python-2.7.2/Lib/distutils/tests/test_unixccompiler.py".
> > It's a bundled software distribution so I didn't touch it.
> >
> > Another hit that remains is "StdLib/Include/sys/EfiCdefs.h"; see (2) for
> > that.
> >
> > (2) __GNUC_PREREQ__ is used in StdLib/Include. But StdLib/Include checks
> > for ancient GCC versions too (such as 2.0), so it clearly hasn't been
> > kept in sync with the minimum edk2 requirement over time. I didn't touch
> > it.
> >
> > (3) __GNUC_MINOR__ is used in the following directories:
> >
> > (3a) bundled Python:
> >
> > - AppPkg/Applications/Python/PyMod-2.7.2
> > - AppPkg/Applications/Python/Python-2.7.10
> > - AppPkg/Applications/Python/Python-2.7.2
> >
> > (3b) bundled Brotli:
> >
> > - BaseTools/Source/C/BrotliCompress/include/brotli
> > - MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/
> >
> > (3c) bundled LZMA:
> >
> > - BaseTools/Source/C/LzmaCompress/Sdk/C/
> > - IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/Sdk/C/
> > - MdeModulePkg/Library/LzmaCustomDecompressLib/Sdk/C/
> >
> > (3d) bundled Lua / Lua interface:
> >
> > - StdLib/Include/Lua/
> >
> > (3e) Same as (2):
> >
> > - StdLib/Include/sys/EfiCdefs.h
> >
> > (3f) bundled OpenSSL / OpenSSL interface:
> >
> > - CryptoPkg/Library/Include/openssl/opensslconf.h
> >
> > I didn't touch any of these.
> >
> > (4) I built OVMF with GCC48, and ArmVirtQemu with GCC5, using "-n 1",
> > and compared the build logs, before/after.
> >
> > (For the comparison, I first sorted the build logs: I didn't care about
> > the relative order between the commands, I just wanted the sets of
> > commands to be comparable. Sorting was necessary because even with "-n
> > 1", modules weren't built in the same order, and that interfered with
> > diffing.)
> >
> > The sorted logs were identical, except for any time stamps / durations
> > that had been logged.
> >
> > Cc: Andrew Fish 
> > Cc: Anthony Perard 
> > Cc: Ard Biesheuvel 
> > Cc: Bob Feng 
> > Cc: Gang Wei 
> > Cc: Jian Wang 
> > Cc: Jordan Justen 
> > Cc: Julien Grall 
> > Cc: Leif Lindholm 
> > Cc: Liming Gao 
> > Cc: Marvin Haeuser 
> > Cc: Michael D Kinney 
> > Cc: Ruiyu Ni 
> > Cc: Ting Ye 
> > Cc: Yi Qian 
> > Cc: Yonghong Zhu 
> > Cc: Zailiang Sun

Re: [edk2] [PATCH 00/26] remove the GCC44 through GCC47 toolchains

2019-01-07 Thread Philippe Mathieu-Daudé
On 1/3/19 3:47 AM, Laszlo Ersek wrote:
> Repo:   https://github.com/lersek/edk2.git
> Branch: drop_gcc44_gcc47_tiano1377
> 
> (0) This series is meant as an alternative to
> 
>   [edk2] [Patch 0/5] Remove unused tool chains in tools_def.template
>   20181224150107.28624-1-liming.gao@intel.com">http://mid.mail-archive.com/20181224150107.28624-1-liming.gao@intel.com
> 
> Out of that series, patch #1 (from Ard) is included here, while patch #3
> is reimplemented from scratch (making up the bulk of this series) in a
> way that at least I would be capable of reviewing.

Lovely.

> The rest of the
> patches from Liming's series (#2, #4, #5) are out of scope for me, and I
> ask for them to be rebased on top of this series (if this one is
> acceptable).
> 
> Thus, this series intends to address
> 
>   https://bugzilla.tianocore.org/show_bug.cgi?id=1377
> 
> only in part.
> 
> (1) For locating GCC44 references, I used the following grep command:
> 
>   git grep -H -n -i -E 'gcc[- ]?4\.?[4567]'
> 
> That is,
> - "gcc" (case-insensitively),
> - optionally followed by hyphen or space,
> - followed by "4",
> - optionally followed by ".",
> - followed by 4 through 7.
> 
> One hit that persists after this patch set is in
> "AppPkg/Applications/Python/Python-2.7.2/Lib/distutils/tests/test_unixccompiler.py".
> It's a bundled software distribution so I didn't touch it.
> 
> Another hit that remains is "StdLib/Include/sys/EfiCdefs.h"; see (2) for
> that.
> 
> (2) __GNUC_PREREQ__ is used in StdLib/Include. But StdLib/Include checks
> for ancient GCC versions too (such as 2.0), so it clearly hasn't been
> kept in sync with the minimum edk2 requirement over time. I didn't touch
> it.
> 
> (3) __GNUC_MINOR__ is used in the following directories:
> 
> (3a) bundled Python:
> 
> - AppPkg/Applications/Python/PyMod-2.7.2
> - AppPkg/Applications/Python/Python-2.7.10
> - AppPkg/Applications/Python/Python-2.7.2
> 
> (3b) bundled Brotli:
> 
> - BaseTools/Source/C/BrotliCompress/include/brotli
> - MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/
> 
> (3c) bundled LZMA:
> 
> - BaseTools/Source/C/LzmaCompress/Sdk/C/
> - IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/Sdk/C/
> - MdeModulePkg/Library/LzmaCustomDecompressLib/Sdk/C/
> 
> (3d) bundled Lua / Lua interface:
> 
> - StdLib/Include/Lua/
> 
> (3e) Same as (2):
> 
> - StdLib/Include/sys/EfiCdefs.h
> 
> (3f) bundled OpenSSL / OpenSSL interface:
> 
> - CryptoPkg/Library/Include/openssl/opensslconf.h
> 
> I didn't touch any of these.
> 
> (4) I built OVMF with GCC48, and ArmVirtQemu with GCC5, using "-n 1",
> and compared the build logs, before/after.
> 
> (For the comparison, I first sorted the build logs: I didn't care about
> the relative order between the commands, I just wanted the sets of
> commands to be comparable. Sorting was necessary because even with "-n
> 1", modules weren't built in the same order, and that interfered with
> diffing.)
> 
> The sorted logs were identical, except for any time stamps / durations
> that had been logged.
> 
> Cc: Andrew Fish 
> Cc: Anthony Perard 
> Cc: Ard Biesheuvel 
> Cc: Bob Feng 
> Cc: Gang Wei 
> Cc: Jian Wang 
> Cc: Jordan Justen 
> Cc: Julien Grall 
> Cc: Leif Lindholm 
> Cc: Liming Gao 
> Cc: Marvin Haeuser 
> Cc: Michael D Kinney 
> Cc: Ruiyu Ni 
> Cc: Ting Ye 
> Cc: Yi Qian 
> Cc: Yonghong Zhu 
> Cc: Zailiang Sun 
> 
> Thanks,
> Laszlo
> 
> Ard Biesheuvel (1):
>   BaseTools/Conf/tools_def.template: drop ARM/AARCH support from
> GCC46/GCC47
> 
> Laszlo Ersek (25):
>   EmulatorPkg: require GCC48 or later
>   OvmfPkg: require GCC48 or later
>   Vlv2TbltDevicePkg: assume GCC48 or later
>   BaseTools/tools_def.template: fix up LF-only line terminator
>   BaseTools/tools_def.template: strip trailing whitespace
>   BaseTools/tools_def.template: remove GCC48_IA32_X64_DLINK_COMMON
> dead-end
>   BaseTools/tools_def.template: remove GCC47 leaf definitions
>   BaseTools/tools_def.template: propagate loss of GCC47 references
>   BaseTools/tools_def.template: remove GCC47 documentation
>   BaseTools/tools_def.template: remove GCC46 leaf definitions
>   BaseTools/tools_def.template: propagate loss of GCC46 references
>   BaseTools/tools_def.template: remove GCC46 documentation
>   BaseTools/tools_def.template: remove GCC45 leaf definitions
>   BaseTools/tools_def.template: propagate loss of GCC45 references
>   BaseTools/tools_def.template: remove GCC45 documentation
>   BaseTools/tools_def.template: remove GCC44 leaf definitions
>   BaseTools/tools_def.template: propagate loss of GCC44 references
>   BaseTools/tools_def.template: rename GCC44_ALL_CC_FLAGS to
> GCC48_ALL_CC_FLAGS
>   BaseTools/tools_def.template: eliminate GCC44_IA32_X64_DLINK_FLAGS
>   BaseTools/tools_def.template: rename GCC44_IA32_X64_DLINK_COMMON to
> GCC48_IA32_X64_DLINK_COMMON
>   BaseTools/tools_def.template: remove comment about GCC44 +
> LzmaF86Compress
>   BaseTools/tools_def.template: remove GCC44 documentation
>   

Re: [edk2] [PATCH 00/26] remove the GCC44 through GCC47 toolchains

2019-01-03 Thread Jordan Justen
On 2019-01-02 18:47:50, Laszlo Ersek wrote:
> Repo:   https://github.com/lersek/edk2.git
> Branch: drop_gcc44_gcc47_tiano1377
> 
> (0) This series is meant as an alternative to
> 
>   [edk2] [Patch 0/5] Remove unused tool chains in tools_def.template
>   20181224150107.28624-1-liming.gao@intel.com">http://mid.mail-archive.com/20181224150107.28624-1-liming.gao@intel.com

I'm taking Liming's patchset as an indication that Intel is okay with
removing the older GCC toolchains.

Based on that, the series is
Reviewed-by: Jordan Justen 
___
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


[edk2] [PATCH 00/26] remove the GCC44 through GCC47 toolchains

2019-01-02 Thread Laszlo Ersek
Repo:   https://github.com/lersek/edk2.git
Branch: drop_gcc44_gcc47_tiano1377

(0) This series is meant as an alternative to

  [edk2] [Patch 0/5] Remove unused tool chains in tools_def.template
  20181224150107.28624-1-liming.gao@intel.com">http://mid.mail-archive.com/20181224150107.28624-1-liming.gao@intel.com

Out of that series, patch #1 (from Ard) is included here, while patch #3
is reimplemented from scratch (making up the bulk of this series) in a
way that at least I would be capable of reviewing. The rest of the
patches from Liming's series (#2, #4, #5) are out of scope for me, and I
ask for them to be rebased on top of this series (if this one is
acceptable).

Thus, this series intends to address

  https://bugzilla.tianocore.org/show_bug.cgi?id=1377

only in part.

(1) For locating GCC44 references, I used the following grep command:

  git grep -H -n -i -E 'gcc[- ]?4\.?[4567]'

That is,
- "gcc" (case-insensitively),
- optionally followed by hyphen or space,
- followed by "4",
- optionally followed by ".",
- followed by 4 through 7.

One hit that persists after this patch set is in
"AppPkg/Applications/Python/Python-2.7.2/Lib/distutils/tests/test_unixccompiler.py".
It's a bundled software distribution so I didn't touch it.

Another hit that remains is "StdLib/Include/sys/EfiCdefs.h"; see (2) for
that.

(2) __GNUC_PREREQ__ is used in StdLib/Include. But StdLib/Include checks
for ancient GCC versions too (such as 2.0), so it clearly hasn't been
kept in sync with the minimum edk2 requirement over time. I didn't touch
it.

(3) __GNUC_MINOR__ is used in the following directories:

(3a) bundled Python:

- AppPkg/Applications/Python/PyMod-2.7.2
- AppPkg/Applications/Python/Python-2.7.10
- AppPkg/Applications/Python/Python-2.7.2

(3b) bundled Brotli:

- BaseTools/Source/C/BrotliCompress/include/brotli
- MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/

(3c) bundled LZMA:

- BaseTools/Source/C/LzmaCompress/Sdk/C/
- IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/Sdk/C/
- MdeModulePkg/Library/LzmaCustomDecompressLib/Sdk/C/

(3d) bundled Lua / Lua interface:

- StdLib/Include/Lua/

(3e) Same as (2):

- StdLib/Include/sys/EfiCdefs.h

(3f) bundled OpenSSL / OpenSSL interface:

- CryptoPkg/Library/Include/openssl/opensslconf.h

I didn't touch any of these.

(4) I built OVMF with GCC48, and ArmVirtQemu with GCC5, using "-n 1",
and compared the build logs, before/after.

(For the comparison, I first sorted the build logs: I didn't care about
the relative order between the commands, I just wanted the sets of
commands to be comparable. Sorting was necessary because even with "-n
1", modules weren't built in the same order, and that interfered with
diffing.)

The sorted logs were identical, except for any time stamps / durations
that had been logged.

Cc: Andrew Fish 
Cc: Anthony Perard 
Cc: Ard Biesheuvel 
Cc: Bob Feng 
Cc: Gang Wei 
Cc: Jian Wang 
Cc: Jordan Justen 
Cc: Julien Grall 
Cc: Leif Lindholm 
Cc: Liming Gao 
Cc: Marvin Haeuser 
Cc: Michael D Kinney 
Cc: Ruiyu Ni 
Cc: Ting Ye 
Cc: Yi Qian 
Cc: Yonghong Zhu 
Cc: Zailiang Sun 

Thanks,
Laszlo

Ard Biesheuvel (1):
  BaseTools/Conf/tools_def.template: drop ARM/AARCH support from
GCC46/GCC47

Laszlo Ersek (25):
  EmulatorPkg: require GCC48 or later
  OvmfPkg: require GCC48 or later
  Vlv2TbltDevicePkg: assume GCC48 or later
  BaseTools/tools_def.template: fix up LF-only line terminator
  BaseTools/tools_def.template: strip trailing whitespace
  BaseTools/tools_def.template: remove GCC48_IA32_X64_DLINK_COMMON
dead-end
  BaseTools/tools_def.template: remove GCC47 leaf definitions
  BaseTools/tools_def.template: propagate loss of GCC47 references
  BaseTools/tools_def.template: remove GCC47 documentation
  BaseTools/tools_def.template: remove GCC46 leaf definitions
  BaseTools/tools_def.template: propagate loss of GCC46 references
  BaseTools/tools_def.template: remove GCC46 documentation
  BaseTools/tools_def.template: remove GCC45 leaf definitions
  BaseTools/tools_def.template: propagate loss of GCC45 references
  BaseTools/tools_def.template: remove GCC45 documentation
  BaseTools/tools_def.template: remove GCC44 leaf definitions
  BaseTools/tools_def.template: propagate loss of GCC44 references
  BaseTools/tools_def.template: rename GCC44_ALL_CC_FLAGS to
GCC48_ALL_CC_FLAGS
  BaseTools/tools_def.template: eliminate GCC44_IA32_X64_DLINK_FLAGS
  BaseTools/tools_def.template: rename GCC44_IA32_X64_DLINK_COMMON to
GCC48_IA32_X64_DLINK_COMMON
  BaseTools/tools_def.template: remove comment about GCC44 +
LzmaF86Compress
  BaseTools/tools_def.template: remove GCC44 documentation
  ArmPkg/ArmSoftFloatLib: drop build flags specific to GCC46/GCC47
  CryptoPkg/BaseCryptLib: drop build flags specific to GCC44
  Revert "MdePkg: avoid __builtin_unreachable() on GCC v4.4"

 ArmPkg/Library/ArmSoftFloatLib/ArmSoftFloatLib.inf |   2 -
 BaseTools/Conf/tools_def.template  | 638 +++-