From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id ACB3B21A6F108 for ; Tue, 18 Apr 2017 20:39:52 -0700 (PDT) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga105.jf.intel.com with ESMTP; 18 Apr 2017 20:39:52 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.37,219,1488873600"; d="scan'208";a="847467184" Received: from mdkinney-mobl.amr.corp.intel.com ([10.241.98.50]) by FMSMGA003.fm.intel.com with ESMTP; 18 Apr 2017 20:39:52 -0700 From: Michael Kinney To: edk2-devel@lists.01.org Cc: Liming Gao , Yonghong Zhu , Kevin W Shaw Date: Tue, 18 Apr 2017 20:39:48 -0700 Message-Id: <1492573188-12276-2-git-send-email-michael.d.kinney@intel.com> X-Mailer: git-send-email 2.6.3.windows.1 In-Reply-To: <1492573188-12276-1-git-send-email-michael.d.kinney@intel.com> References: <1492573188-12276-1-git-send-email-michael.d.kinney@intel.com> Subject: [edk2-BuildSpecification PATCH] Add NMAKE response file for long command lines 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: Wed, 19 Apr 2017 03:39:52 -0000 https://bugzilla.tianocore.org/show_bug.cgi?id=479 If an NMAKE command line is too long, then the include paths and tool flags are added to a response file that is passed to NMAKE. Cc: Liming Gao Cc: Yonghong Zhu Cc: Kevin W Shaw Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael Kinney --- .../82_auto-generation_process.md | 20 ++++++++++++++++++++ README.md | 1 + 2 files changed, 21 insertions(+) diff --git a/8_pre-build_autogen_stage/82_auto-generation_process.md b/8_pre-build_autogen_stage/82_auto-generation_process.md index 4175552..b7c81ea 100644 --- a/8_pre-build_autogen_stage/82_auto-generation_process.md +++ b/8_pre-build_autogen_stage/82_auto-generation_process.md @@ -991,6 +991,26 @@ Quotes are also required if the path to the pre-build command contains space or special characters. ********** +#### 8.2.4.14 NMAKE Command line limitation handling + +`NMAKE` is limited to command-line length of 4096 characters. Due to the large +number of `/I` directives specified on command line (one per include directory), +the path length of `WORKSPACE` is multiplied by the number of `/I` directives +and can exceed this command-line length limitation. When this issue occurs, the +build tools pass the command line options via a response file instead of +directly on the command line. The contents of the response file is combination +of `FLAGS` options and `INC` options. If a build fails, the build tools print +the response file's file location and the contents of the response file. + +The **build** command supports the options `-l` and `--cmd-len` to set the +maximum command line length. The default value is 4096. + +********** +**Note:** The following `FLAGS` options are included in the response file: +`PP_FLAGS`, `CC_FLAGS`, `VFRPP_FLAGS`, `APP_FLAGS`, `ASLPP_FLAGS`, `ASLCC_FLAGS`, +and `ASM_FLAGS`. +********** + ### 8.2.5 Post processing Once all files are parsed, the build tools will do following work for each EDK diff --git a/README.md b/README.md index 2d9adb1..21bb782 100644 --- a/README.md +++ b/README.md @@ -205,3 +205,4 @@ Copyright (c) 2008-2017, Intel Corporation. All rights reserved. | | [#472](https://bugzilla.tianocore.org/show_bug.cgi?id=472) [Build Spec] Extend macro usage in the !include statements for DSC/FDF files | | | | [#483](https://bugzilla.tianocore.org/show_bug.cgi?id=483) Build Spec: add description for merge Pre-build and Post-build into build process | | | | [#490](https://bugzilla.tianocore.org/show_bug.cgi?id=490) Build Spec: specify the alignment requirements for VOID* PCDs stored in a PCD section | | +| | [#479](https://bugzilla.tianocore.org/show_bug.cgi?id=479) Build spec: add description for nmake long command line handling | | -- 2.6.3.windows.1