public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH 00/26] remove the GCC44 through GCC47 toolchains
@ 2019-01-03  2:47 Laszlo Ersek
  2019-01-03  2:47 ` [PATCH 01/26] EmulatorPkg: require GCC48 or later Laszlo Ersek
                   ` (27 more replies)
  0 siblings, 28 replies; 39+ messages in thread
From: Laszlo Ersek @ 2019-01-03  2:47 UTC (permalink / raw)
  To: edk2-devel-01
  Cc: Andrew Fish, Anthony Perard, Ard Biesheuvel, Bob Feng, Gang Wei,
	Jian Wang, Jordan Justen, Julien Grall, Leif Lindholm, Liming Gao,
	Marvin Haeuser, Michael D Kinney, Ruiyu Ni, Ting Ye, Yi Qian,
	Yonghong Zhu, Zailiang Sun

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
  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 <afish@apple.com>
Cc: Anthony Perard <anthony.perard@citrix.com>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Gang Wei <gang.wei@intel.com>
Cc: Jian Wang <jian.j.wang@intel.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Julien Grall <julien.grall@linaro.org>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Marvin Haeuser <Marvin.Haeuser@outlook.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Ting Ye <ting.ye@intel.com>
Cc: Yi Qian <yi.qian@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Zailiang Sun <zailiang.sun@intel.com>

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 +++-----------------
 CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf    |   2 -
 CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf     |   2 -
 CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf |   2 -
 CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf     |   1 -
 EmulatorPkg/Unix/Host/Host.inf                     |   4 -
 EmulatorPkg/build.sh                               |  18 +-
 MdePkg/Include/Base.h                              |   3 +-
 OvmfPkg/README                                     |   6 +-
 OvmfPkg/build.sh                                   |  16 +-
 Vlv2TbltDevicePkg/bld_vlv.sh                       |  14 +-
 12 files changed, 81 insertions(+), 627 deletions(-)

-- 
2.19.1.3.g30247aa5d201



^ permalink raw reply	[flat|nested] 39+ messages in thread

end of thread, other threads:[~2019-01-08 11:34 UTC | newest]

Thread overview: 39+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-01-03  2:47 [PATCH 00/26] remove the GCC44 through GCC47 toolchains Laszlo Ersek
2019-01-03  2:47 ` [PATCH 01/26] EmulatorPkg: require GCC48 or later Laszlo Ersek
2019-01-03  2:47 ` [PATCH 02/26] OvmfPkg: " Laszlo Ersek
2019-01-03  9:33   ` Ard Biesheuvel
2019-01-03  2:47 ` [PATCH 03/26] Vlv2TbltDevicePkg: assume " Laszlo Ersek
2019-01-04  6:53   ` Sun, Zailiang
2019-01-03  2:47 ` [PATCH 04/26] BaseTools/Conf/tools_def.template: drop ARM/AARCH support from GCC46/GCC47 Laszlo Ersek
2019-01-03  2:47 ` [PATCH 05/26] BaseTools/tools_def.template: fix up LF-only line terminator Laszlo Ersek
2019-01-03  2:47 ` [PATCH 06/26] BaseTools/tools_def.template: strip trailing whitespace Laszlo Ersek
2019-01-03  2:47 ` [PATCH 07/26] BaseTools/tools_def.template: remove GCC48_IA32_X64_DLINK_COMMON dead-end Laszlo Ersek
2019-01-03  2:47 ` [PATCH 08/26] BaseTools/tools_def.template: remove GCC47 leaf definitions Laszlo Ersek
2019-01-03  2:47 ` [PATCH 09/26] BaseTools/tools_def.template: propagate loss of GCC47 references Laszlo Ersek
2019-01-03  2:48 ` [PATCH 10/26] BaseTools/tools_def.template: remove GCC47 documentation Laszlo Ersek
2019-01-03  2:48 ` [PATCH 11/26] BaseTools/tools_def.template: remove GCC46 leaf definitions Laszlo Ersek
2019-01-03  2:48 ` [PATCH 12/26] BaseTools/tools_def.template: propagate loss of GCC46 references Laszlo Ersek
2019-01-03  2:48 ` [PATCH 13/26] BaseTools/tools_def.template: remove GCC46 documentation Laszlo Ersek
2019-01-03  2:48 ` [PATCH 14/26] BaseTools/tools_def.template: remove GCC45 leaf definitions Laszlo Ersek
2019-01-03  2:48 ` [PATCH 15/26] BaseTools/tools_def.template: propagate loss of GCC45 references Laszlo Ersek
2019-01-03  2:48 ` [PATCH 16/26] BaseTools/tools_def.template: remove GCC45 documentation Laszlo Ersek
2019-01-03  2:48 ` [PATCH 17/26] BaseTools/tools_def.template: remove GCC44 leaf definitions Laszlo Ersek
2019-01-03  2:48 ` [PATCH 18/26] BaseTools/tools_def.template: propagate loss of GCC44 references Laszlo Ersek
2019-01-03  2:48 ` [PATCH 19/26] BaseTools/tools_def.template: rename GCC44_ALL_CC_FLAGS to GCC48_ALL_CC_FLAGS Laszlo Ersek
2019-01-03  2:48 ` [PATCH 20/26] BaseTools/tools_def.template: eliminate GCC44_IA32_X64_DLINK_FLAGS Laszlo Ersek
2019-01-03  2:48 ` [PATCH 21/26] BaseTools/tools_def.template: rename GCC44_IA32_X64_DLINK_COMMON to GCC48_IA32_X64_DLINK_COMMON Laszlo Ersek
2019-01-03  2:48 ` [PATCH 22/26] BaseTools/tools_def.template: remove comment about GCC44 + LzmaF86Compress Laszlo Ersek
2019-01-03  2:48 ` [PATCH 23/26] BaseTools/tools_def.template: remove GCC44 documentation Laszlo Ersek
2019-01-03  2:48 ` [PATCH 24/26] ArmPkg/ArmSoftFloatLib: drop build flags specific to GCC46/GCC47 Laszlo Ersek
2019-01-03  9:33   ` Ard Biesheuvel
2019-01-03  2:48 ` [PATCH 25/26] CryptoPkg/BaseCryptLib: drop build flags specific to GCC44 Laszlo Ersek
2019-01-03  5:02   ` Wang, Jian J
2019-01-03  2:48 ` [PATCH 26/26] Revert "MdePkg: avoid __builtin_unreachable() on GCC v4.4" Laszlo Ersek
2019-01-03  9:34   ` Ard Biesheuvel
2019-01-03 13:25   ` Marvin Häuser
2019-01-03 20:21 ` [PATCH 00/26] remove the GCC44 through GCC47 toolchains Jordan Justen
2019-01-07  9:44 ` Philippe Mathieu-Daudé
2019-01-07 12:15   ` Gao, Liming
2019-01-07 18:08     ` Laszlo Ersek
2019-01-08  1:54       ` Laszlo Ersek
2019-01-08 11:34         ` Ard Biesheuvel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox