<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=gb2312"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Helvetica;
        panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:等线;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"\@等线";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"Segoe UI";
        panose-1:2 11 5 2 4 2 4 2 2 3;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.apple-converted-space
        {mso-style-name:apple-converted-space;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:等线;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=ZH-CN link=blue vlink=purple style='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;font-family:等线'>CLANG tool issue has been resolved. CLANGPDB tool chain has been added in Edk2. </span><span lang=EN-US style='font-family:"Segoe UI",sans-serif;color:#24292E;background:white'>OVMF IA32X64 platform has been verified on Windows/Linux/Mac with CLANGPDB tool chain. On release build, OVMF IA32X64 can generates the same binary BIOS images on Windows/Linux/Mac OS. </span><span lang=EN-US style='font-size:10.5pt;font-family:等线'><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;font-family:等线'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;font-family:等线'>Here is wiki page <a href="https://github.com/tianocore/tianocore.github.io/wiki/CLANG9-Tools-Chain">https://github.com/tianocore/tianocore.github.io/wiki/CLANG9-Tools-Chain</a>. <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;font-family:等线'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;font-family:等线'>Thanks<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;font-family:等线'>Liming<o:p></o:p></span></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span style='font-family:等线'>发件人<span lang=EN-US>:</span></span></b><span lang=EN-US style='font-family:等线'> bounce+27952+65963+4905953+8761045@groups.io <bounce+27952+65963+4905953+8761045@groups.io> </span><b><span style='font-family:等线'>代表 </span></b><span lang=EN-US style='font-family:等线'>Andrew Fish via groups.io<br></span><b><span style='font-family:等线'>发送时间<span lang=EN-US>:</span></span></b><span lang=EN-US style='font-family:等线'> 2020</span><span style='font-family:等线'>年<span lang=EN-US>10</span>月<span lang=EN-US>7</span>日<span lang=EN-US> 13:42<br></span><b>收件人<span lang=EN-US>:</span></b><span lang=EN-US> edk2-devel-groups-io <devel@edk2.groups.io>; michael.kubacki@outlook.com<br></span><b>抄送<span lang=EN-US>:</span></b><span lang=EN-US> Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>; Leif Lindholm <leif@nuviainc.com>; Laszlo Ersek <lersek@redhat.com>; Ard Biesheuvel <ard.biesheuvel@arm.com>; Ni, Ray <ray.ni@intel.com>; Chaganty, Rangasai V <rangasai.v.chaganty@intel.com>; Dong, Eric <eric.dong@intel.com>; Bi, Dandan <dandan.bi@intel.com>; Mike Kinney <michael.d.kinney@intel.com>; Steele, Kelly <kelly.steele@intel.com>; Sun, Zailiang <zailiang.sun@intel.com>; Qian, Yi <yi.qian@intel.com>; Chiu, Chasel <chasel.chiu@intel.com>; Agyeman, Prince <prince.agyeman@intel.com>; Feng, Bob C <bob.c.feng@intel.com>; Liming Gao <gaoliming@byosoft.com.cn>; Abner Chang <abner.chang@hpe.com>; Daniel Schaefer <daniel.schaefer@hpe.com>; Gilbert Chen <gilbert.chen@hpe.com>; Christian Walter <christian.walter@9elements.com><br></span><b>主题<span lang=EN-US>:</span></b><span lang=EN-US> Re: [edk2-devel] [edk2-platforms] [RFC] Compatibility Expectations in edk2-platforms<o:p></o:p></span></span></p></div></div><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><div><p class=MsoNormal><span lang=EN-US><br><br><o:p></o:p></span></p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=MsoNormal><span lang=EN-US>On Oct 6, 2020, at 10:01 PM, Michael Kubacki <<a href="mailto:michael.kubacki@outlook.com">michael.kubacki@outlook.com</a>> wrote:<o:p></o:p></span></p></div><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><div><p class=MsoNormal><span lang=EN-US style='font-size:9.0pt;font-family:"Helvetica",sans-serif'>Hi Nate,<br><br>On 10/6/2020 9:19 PM, Desimone, Nathaniel L wrote:<br style='caret-color: rgb(0, 0, 0);font-variant-caps: normal;text-align:start;-webkit-text-stroke-width: 0px;word-spacing:0px'><br></span><span lang=EN-US><o:p></o:p></span></p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal><span lang=EN-US style='font-size:9.0pt;font-family:"Helvetica",sans-serif'>Hey Michael,<br>On 10/5/20, 3:36 PM, Michael Kubacki <<a href="mailto:michael.kubacki@outlook.com">michael.kubacki@outlook.com</a>> wrote:<br><br><o:p></o:p></span></p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal><span lang=EN-US style='font-size:9.0pt;font-family:"Helvetica",sans-serif'><br>1. Inconsistent maintainer support<br>    * Some packages currently do not build. Some packages are not getting<br>updated often.<br><br>    * Example: Last week I had to update Vlv2TbltDevicePkg which did not<br>build.<br>    * Example: Many packages only document support for old toolchains.<o:p></o:p></span></p></blockquote><p class=MsoNormal><span lang=EN-US style='font-size:9.0pt;font-family:"Helvetica",sans-serif'>100% agreed here.<br><br><o:p></o:p></span></p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal><span lang=EN-US style='font-size:9.0pt;font-family:"Helvetica",sans-serif'><br>2. Inconsistent toolchain support<br><br>To build these according to instruction, a developer needs to install Visual<br>Studio dating back to 2015 (though it is 2020), and multiple versions of iASL,<br>NASM, a separate host OS for Linux/Windows builds, etc.<o:p></o:p></span></p></blockquote><p class=MsoNormal><span lang=EN-US style='font-size:9.0pt;font-family:"Helvetica",sans-serif'>IMHO, the best way forward would be to finish the EDK II native clang port that Liming started some time ago. This would need to include robust support for Windows, Linux, and Mac host systems. From what I remember the last status update was issues with stability of the LLVM linker's support for PE/COFF output.<o:p></o:p></span></p></blockquote><p class=MsoNormal><span lang=EN-US style='font-size:9.0pt;font-family:"Helvetica",sans-serif'><br>Aligning on Clang support would be great. It's worth noting that current CI support in edk2 does not support Clang so that needs to be enabled -<span class=apple-converted-space> </span></span><span lang=EN-US><a href="https://github.com/tianocore/edk2/blob/master/.pytool/Readme.md"><span style='font-size:9.0pt;font-family:"Helvetica",sans-serif'>https://github.com/tianocore/edk2/blob/master/.pytool/Readme.md</span></a></span><span lang=EN-US style='font-size:9.0pt;font-family:"Helvetica",sans-serif'>.<br style='caret-color: rgb(0, 0, 0);font-variant-caps: normal;text-align:start;-webkit-text-stroke-width: 0px;word-spacing:0px'><br></span><span lang=EN-US><o:p></o:p></span></p></div></blockquote><div><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p></div><div><p class=MsoNormal><span lang=EN-US>Is adding a new toolchain just a documenting the config, and testing? <o:p></o:p></span></p></div><div><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p></div><div><p class=MsoNormal><span lang=EN-US>Thanks,<o:p></o:p></span></p></div><div><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p></div><div><p class=MsoNormal><span lang=EN-US>Andrew Fish<o:p></o:p></span></p></div><p class=MsoNormal><span lang=EN-US><br><br><o:p></o:p></span></p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=MsoNormal><span lang=EN-US style='font-size:9.0pt;font-family:"Helvetica",sans-serif'>Is anyone looking at those LLVM issues now?<br><br style='caret-color: rgb(0, 0, 0);font-variant-caps: normal;text-align:start;-webkit-text-stroke-width: 0px;word-spacing:0px'><br></span><span lang=EN-US><o:p></o:p></span></p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal><span lang=EN-US style='font-size:9.0pt;font-family:"Helvetica",sans-serif'>Otherwise build reproducibility will always be a problem since the binary generated will be different depending on which OS/compiler the developer was using at the time. The coreboot community handles this issue by only supporting GCC, which I think is inappropriate for TianoCore since Windows ports of GCC differ greatly from Linux versions. While I think the goal of supporting many different C toolchains is admirable and definitely appropriate for edk2 core code... for edk2-platforms I think it would be better to have everyone agree on a single cross-platform toolchain; at least for x86 and ARM since clang supports those architectures well (maybe other architectures depending on the clang's maturity.)<br><br><o:p></o:p></span></p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal><span lang=EN-US style='font-size:9.0pt;font-family:"Helvetica",sans-serif'><br>3. Inconsistent build requirements<br><br>Many builds use the "build" command. Others have script wrappers with<br>unique parameters. Platforms are free to choose what they do and do not<br>support and developers have to figure it out.<o:p></o:p></span></p></blockquote><p class=MsoNormal><span lang=EN-US style='font-size:9.0pt;font-family:"Helvetica",sans-serif'>We solved that for MinPlatform based boards with build_bios.py, but agreed that that at an overall project level this is still an issue. I believe Bob and Liming were working on adding extensibility to BaseTools needed for "build" to work everywhere, but I'm not sure what the status of that work is.<o:p></o:p></span></p></blockquote><p class=MsoNormal><span lang=EN-US style='font-size:9.0pt;font-family:"Helvetica",sans-serif'><br>I've always liked the simplicity of build_bios.py. There's also a lot of effort put into edk2-pytool-extensions. I'm not partial to any particular solution as I've had positive experiences with both but having more consistency at a repo level would be awesome.<br><br>Perhaps a community discussion around leveraging existing tool support for open source platforms would help with adoption. Apart from consistency across open source platforms, usage could also serve as a practical example to closed source consumers on how to better integrate such tools into their environments.<br><br style='caret-color: rgb(0, 0, 0);font-variant-caps: normal;text-align:start;-webkit-text-stroke-width: 0px;word-spacing:0px'><br></span><span lang=EN-US><o:p></o:p></span></p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal><span lang=EN-US style='font-size:9.0pt;font-family:"Helvetica",sans-serif'><br>4. Lack of build health indicators<br><br>Basically, there is no public CI across platforms. It is not clear exactly what<br>platform builds are broken, what configurations they are broken against,<br>how long they have been broken, etc.<o:p></o:p></span></p></blockquote><p class=MsoNormal><span lang=EN-US style='font-size:9.0pt;font-family:"Helvetica",sans-serif'>Public CI seems like a great idea. Public automated testing would also be awesome. I believe 9elements has been working on building a pool of hardware for automated testing of Open System Firmware, maybe we should check and see if they would be interested in supporting automated testing for TianoCore. We would also need to see what the intersection is between what they have in their pool and what boards are supported in edk2-platforms.<o:p></o:p></span></p></blockquote><p class=MsoNormal><span lang=EN-US style='font-size:9.0pt;font-family:"Helvetica",sans-serif'><br>I look forward to hearing from 9elements.<br><br>Do you think it would be feasible for Intel to support something like KabylakeOpenBoardPkg/GalagoPro3 and/or WhiskeylakeOpenBoardPkg/UpXtreme in public CI?<br><br style='caret-color: rgb(0, 0, 0);font-variant-caps: normal;text-align:start;-webkit-text-stroke-width: 0px;word-spacing:0px'><br></span><span lang=EN-US><o:p></o:p></span></p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal><span lang=EN-US style='font-size:9.0pt;font-family:"Helvetica",sans-serif'>Without such support, I believe platforms can only have a dependency on<br>edk2 (not vice versa). Maintainers move their edk2 pointer when they have<br>verified that their platform properly integrates the latest changes. This is<br>relatively common in relationships with package-based dependencies and<br>how this is typically handled outside edk2-platforms. I believe this is<br>reasonable even with public CI in place unless maintainers understand and<br>accept the challenges and additional support that is involved with being on<br>edk2/master.<o:p></o:p></span></p></blockquote><p class=MsoNormal><span lang=EN-US style='font-size:9.0pt;font-family:"Helvetica",sans-serif'>Coreboot handles this problem by auditing the how good the maintenance is of boards over time. If a given board becomes stale, then the board becomes a candidate for getting deleted from master and moved to a legacy branch. Sometimes entire technologies are dropped, for example FSP v1.0 is only supported up to coreboot 4.11, for that reason there is a long-lived 4.11_branch in coreboot git to maintain platforms dependent on FSP v1.0 binaries.<br>I think we need some sort of deprecation process for edk2-platforms as well because as you note, the Bay Trail Minnow Max is not receiving particularly good maintenance at this point. A similar issue happened with PurleyOpenBoardPkg last year and you actually sent the patch series to delete it.<o:p></o:p></span></p></blockquote><p class=MsoNormal><span lang=EN-US style='font-size:9.0pt;font-family:"Helvetica",sans-serif'><br>Deprecation branches sound reasonable to me personally. I'm not aware of prior documentation or discussion around platform deprecation in edk2-platforms. Is anyone else?<br><br style='caret-color: rgb(0, 0, 0);font-variant-caps: normal;text-align:start;-webkit-text-stroke-width: 0px;word-spacing:0px'><br></span><span lang=EN-US><o:p></o:p></span></p><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal style='margin-bottom:12.0pt'><span lang=EN-US style='font-size:9.0pt;font-family:"Helvetica",sans-serif'><br>I just wanted to give my observation of some recent challenges and see if<br>the community can align on some practices to help simplify edk2-platforms<br>integration and testing.<br><br>Thanks,<br>Michael<br><br><br><o:p></o:p></span></p></blockquote></blockquote><p class=MsoNormal><span lang=EN-US style='font-size:9.0pt;font-family:"Helvetica",sans-serif'><br><br style='caret-color: rgb(0, 0, 0);font-variant-caps: normal;text-align:start;-webkit-text-stroke-width: 0px;word-spacing:0px'><br></span><span lang=EN-US><o:p></o:p></span></p></div></blockquote></div><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><div><p class=MsoNormal></o:p></span></p></div></div></body></html>


 <div width="1" style="color:white;clear:both">_._,_._,_</div> <hr> Groups.io Links:<p>   You receive all messages sent to this group.    <p> <a target="_blank" href="https://edk2.groups.io/g/devel/message/66146">View/Reply Online (#66146)</a> |    |  <a target="_blank" href="https://groups.io/mt/77475895/1813853">Mute This Topic</a>  | <a href="https://edk2.groups.io/g/devel/post">New Topic</a><br>    <a href="https://edk2.groups.io/g/devel/editsub/1813853">Your Subscription</a> | <a href="mailto:devel+owner@edk2.groups.io">Contact Group Owner</a> |  <a href="https://edk2.groups.io/g/devel/unsub">Unsubscribe</a>  [edk2-devel-archive@redhat.com]<br> <div width="1" style="color:white;clear:both">_._,_._,_</div>