From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2607:f8b0:400c:c08::22a; helo=mail-ua0-x22a.google.com; envelope-from=adurbin@google.com; receiver=edk2-devel@lists.01.org Received: from mail-ua0-x22a.google.com (mail-ua0-x22a.google.com [IPv6:2607:f8b0:400c:c08::22a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 972AB21B00DDB for ; Fri, 10 Nov 2017 14:22:50 -0800 (PST) Received: by mail-ua0-x22a.google.com with SMTP id f46so7838823uae.1 for ; Fri, 10 Nov 2017 14:26:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=SVUK63WFlqtqVtdLtRLzdQ9iPuwnoqc35tgqKPDHq3c=; b=tz/HTd0jF5h6sJxFEnKfk6qBrLk94Xtr1MM8ijM16AaE20FWoRy98ByU7d7t5JLRio OZ98py9gfqhF+jfAjQjaJ6aVFU1WvgdfKR5/IyEGOxXNK8LoDLCZwsJy+vbGnLc+JJpg i5Vgo0APzAXAWUFvej8j7fTst5ZCiK1ZNrjHsJy+Ebtw9eAP3QAPbK7dN43WHNAxUoBh Fl0ntC+sKl1XC/OtuvAFTa1TQqpXadoYPUmQYF5g7whPojE5l9qcOP9Pnbx5WK3HysjT HJT/TFey/MHSPoFyQjjEII0hsKPRbgrHis93tesRD1nmDOYxRvvG6+s4iAOtCwyaHrZH qtjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=SVUK63WFlqtqVtdLtRLzdQ9iPuwnoqc35tgqKPDHq3c=; b=P91zPoVw654/NUfeKMGz5kVdtSnWSD33peCK/WzLG4Ampv5M/WuDn2auXugnj/YoF7 KUBdlxPnfM6BuogFqfskzSb6Z0ugQ/TcfEp7G3wkTcoPIMm3yS1fBW5IcsW2iFSVKThu I37g7njW+TFA2GgS1MRMwZMvtvtdhsxmgd4EmiUD/XCFUw0LN39XKLY6FKUrTXMm3IV0 Z5oBo08o50hyuSv0vCdT539X3GrCEh2qNIhCwCB/KamPB3ikk0gEwT1WuyhrVCWqDHx2 e8wkVN/+bXV3h3zRgQv7hT3EUw6Z4W03fYbPct2RLmsoigXC3MO0HL88eGkyPKcufSW9 SBGw== X-Gm-Message-State: AJaThX6woCCFY9ieTDmFeet3OQBplQ7Ahn2kSqmAb4/mq6R49lH0+vYC IwbCm9VMqKyZGzxagk/291S8WH/r7zb70746VxTeSdMhwPs= X-Google-Smtp-Source: AGs4zMYzG301+4G6dwm3mZ/chrIamxJhFlsmNpFbrDNcsQxewQ8gQq56B0YMmeE356aGVMSRhABGg19HlOUo0VL/Xgo= X-Received: by 10.176.19.232 with SMTP id n37mr1720097uae.194.1510352812463; Fri, 10 Nov 2017 14:26:52 -0800 (PST) MIME-Version: 1.0 Received: by 10.31.158.87 with HTTP; Fri, 10 Nov 2017 14:26:51 -0800 (PST) From: Aaron Durbin Date: Fri, 10 Nov 2017 15:26:51 -0700 Message-ID: To: edk2-devel@lists.01.org Subject: EDK2 build issues X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Nov 2017 22:22:50 -0000 Content-Type: text/plain; charset="UTF-8" Hello, Here are some observations I've encountered trying to utilize edk2 for certain builds. Part of the problem seems to be with implicit assumptions in how edk2 is used. I'm trying to build things using edk2 from a clean enviroment on an automated builder. i.e. there isn't a workspace that exists on one persons computer for the lifetime of development. 1. BaseTools can't build in parallel. The tests are racey which result in test failures. Because of this one has to build these in serial instead of in parallel. ====================================================================== FAIL: testHelp (TianoCompress.Tests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/zoombini/tmp/portage/sys-boot/fsp-cnl-9999/work/fsp-cnl-9999/Edk2/BaseTools/Tests/TianoCompress.py", line 34, in testHelp self.assertTrue(result == 0) AssertionError: False is not true ====================================================================== FAIL: testRandomDataCycles (TianoCompress.Tests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/build/zoombini/tmp/portage/sys-boot/fsp-cnl-9999/work/fsp-cnl-9999/Edk2/BaseTools/Tests/TianoCompress.py", line 65, in testRandomDataCycles self.compressionTestCycle(data) File "/build/zoombini/tmp/portage/sys-boot/fsp-cnl-9999/work/fsp-cnl-9999/Edk2/BaseTools/Tests/TianoCompress.py", line 44, in compressionTestCycle self.assertTrue(result == 0) AssertionError: False is not true In addition, it seems compilation even breaks trying to build a parser: VfrSyntax.cpp:53:1: error: expected class-name before '{' token {^M ^ VfrSyntax.cpp: In constructor 'CVfrDLGLexer::CVfrDLGLexer(DLGFileInput*)': VfrSyntax.cpp:55:36: error: class 'CVfrDLGLexer' does not have any field named 'VfrLexer' CVfrDLGLexer (DLGFileInput *F) : VfrLexer (F) {};^M ^ This just slows down builds needing to things serially. 2. It appears the BaseTools uses the ARCH environment variable. I'm not sure of the origins, but ARCH seems like a complete misnomer for the *host* you are trying to build tools on -- not the target. Trying to incorporate edk2 builds into a portage environment effectively breaks because of this as ARCH refers to target architecture -- not host builder's ARCH. 3. This more of an observation, but the tools definition seems to make quite the leap on how consistent compilers are of a certain version. e.g. GCC 4.9 can be built with all kinds of default options that edk2 implicitly assumes are set based on some distribution's default flags? And in order to extend toolchain support one needs to create a series of entries associated with a certain family. Barrier to entry is pretty high in teasing out where to put things in the ~8000 line tools_def.template. Thanks for the consideration. -Aaron