public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Patrick Georgi <pgeorgi@google.com>
To: "Gao, Liming" <liming.gao@intel.com>
Cc: "edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Subject: Re: [PATCH] BaseTools: Add COREBOOT tools definition
Date: Mon, 10 Jul 2017 17:05:35 +0200	[thread overview]
Message-ID: <CAE-gjdVwB-w235+omABCXhON5_NarXnGaUhbNVT39N1Hc0t=jQ@mail.gmail.com> (raw)
In-Reply-To: <4A89E2EF3DFEDB4C8BFDE51014F606A14D753010@shsmsx102.ccr.corp.intel.com>

Hi Liming,

thank you for the review!

2017-07-10 16:46 GMT+02:00 Gao, Liming <liming.gao@intel.com>:

> Patrick:
>   Compared GCC5 and COREBOOT, the difference is that GCC5_IA32_PREFIX and
> GCC5_X64_PREFIX. CoreBoot tool chain has the different style. So, it can't
> reuse GCC5 tool chain. If GCC5 is update to refer to ENV (GCC5_IA32_PREFIX)
> and ENV (GCC5_X64_PREFIX) like ENV(GCC5_ARM_PREFIX) in CC_PATH, GCC5 can
> support COREBOOT usage. For the future, the different FLAG can be appended
> in [BuildOptions] of platform.dsc. So, I suggest to reuse GCC5 tool chain
> for coreboot.
>
We also use our own make and iasl binaries.
*_COREBOOT_*_MAKE_PATH               = DEF(COREBOOT_PREFIX)make
*_COREBOOT_*_ASL_PATH                = DEF(COREBOOT_PREFIX)iasl

The coreboot toolchain is gcc 6.3 based right now but will move to
something newer at some point. That the GCC5 configuration is sufficient
for now is a coincidence (although appreciated since it meant less work for
me). Unfortunately I likely won't be able to get away with that forever.
Asking people to adapt their Tianocore config because the toolchain was
updated is a bad user experience IMHO.

The two main benefits of using a well-defined, maintained toolchain and
configuration are:
1. a portable toolchain: you get the same results no matter the OS you're on
2. reproducible builds: with a given source tree and configuratoin, we get
bit identical binaries, which is rather useful for trust/security
assessments. See
https://tests.reproducible-builds.org/coreboot/coreboot.html

It might be useful to extend this effort to payloads such as
CorebootPayloadPkg. Dealing with random compilers (and their configs) is
something we at coreboot left behind ~10 years ago, and it was for the
better. (although I understand that the coreboot toolchain is just as
"random" to you as any other).
But if you feel this is too much extra stuff in your config files, I'll
have to see how to deal with the existing config sets instead.


Patrick
-- 
Google Germany GmbH, ABC-Str. 19, 20354 Hamburg
Registergericht und -nummer: Hamburg, HRB 86891, Sitz der Gesellschaft:
Hamburg
Geschäftsführer: Matthew Scott Sucherman, Paul Terence Manicle


  reply	other threads:[~2017-07-10 15:03 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-04 15:22 [PATCH] BaseTools: Add COREBOOT tools definition Patrick Georgi
2017-07-10 14:46 ` Gao, Liming
2017-07-10 15:05   ` Patrick Georgi [this message]
2017-07-11 14:00     ` Gao, Liming
  -- strict thread matches above, loose matches on Subject: below --
2017-06-30 22:39 Patrick Georgi
2017-07-03  3:08 ` Gao, Liming
2017-07-07  9:16   ` Patrick Georgi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAE-gjdVwB-w235+omABCXhON5_NarXnGaUhbNVT39N1Hc0t=jQ@mail.gmail.com' \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox