On 08/31/20 16:37, Ard Biesheuvel wrote:

> Not sure how Leif feels about this, but i wouldn't mind retaining
> GCC48 support only for IA32/X64.

I've never considered GCC48 usable for ARM/AARCH64. I already use GCC48
for IA32/X64 only.

Anyway... it looks like I am able to consume gcc-9
("devtoolset-9-gcc-9.3.1-2.el7.x86_64") and compatible binutils
("devtoolset-9-binutils-2.32-16.el7.x86_64"), for building edk2 with the
GCC5 toolchain tag on RHEL7. I've done a few tests with OVMF; nothing
seems to break.

> Agreed. But one final remark on the distro/system toolchain situation:
> distros have good reasons for sticking with a single GCC version to
> build the world, but I wonder if any of them hold for UEFI builds such
> as OVMF, which runs entirely in its own context, and is mangled by
> GenFw so the ELF objects are never even consumed directly. So as I see
> it, the *only* benefit of retaining GCC48 support is for the
> convenience of developers that use 'mature' distros like RHEL 7 and
> prefer to use the compiler that happens to be installed. I am not
> saying this is not a good enough reason, just something we have to
> realize.

You're not wrong -- I'd just like to clarify that "prefer" is not always
a simple personal choice. Building gcc + binutils from source (and
finding the right versions in the first place) is traditionally not one
of the easier "I'll just build this for myself" endeavors. (With gcc
rebuilding itself several times etc.)

Furthermore, given that "devtoolset-9" is a "software collection"
(managed by the "scl" cmdline utility) at least in my env, its usage is
*really* inconvenient in some circumstances. It modifies a bunch of
environment variables (of course), but (AIUI) the recommended /
supported end-user interface is to let "scl" start a command or subshell
for you. The mode when it outputs a bunch of "export" statements for
one's shell to "source" requires gymnastics, and it does not seem
officially supported. I find it unfortunate that it wants to become the
parent of whatever I'm trying to run. Add in the fact that single-line
invocations require unwieldy quoting:

"""
       scl enable example 'less --version'
              runs command 'less --version' in the environment with collection 
'example' enabled

       scl enable foo bar bash
              runs bash instance with foo and bar Software Collections enabled
"""

Obviously the following form would be preferred:

  scl enable example -- less --version

Because this form would not require quoting, just prefixing.

Anyway... I've now hacked those scripts of mine that needed hacking, so
I guess I'm no longer tied to GCC48 for IA32/X64 either.

Thanks,
Laszlo


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#64847): https://edk2.groups.io/g/devel/message/64847
Mute This Topic: https://groups.io/mt/75351533/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to