From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) (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 AD7208036A for ; Wed, 8 Mar 2017 09:37:26 -0800 (PST) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 08 Mar 2017 09:37:26 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.36,265,1486454400"; d="scan'208,217";a="57732303" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by orsmga002.jf.intel.com with ESMTP; 08 Mar 2017 09:37:25 -0800 Received: from fmsmsx104.amr.corp.intel.com ([169.254.3.29]) by FMSMSX106.amr.corp.intel.com ([169.254.5.63]) with mapi id 14.03.0248.002; Wed, 8 Mar 2017 09:37:25 -0800 From: "Medawar, David J" To: "edk2-devel@lists.01.org" Thread-Topic: LNK2001 error: unable to find _BdsDxeStrings Thread-Index: AdKYMb4mEtVBp5gHTG6BqzebAtqIxA== Date: Wed, 8 Mar 2017 17:37:24 +0000 Message-ID: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 10.0.102.7 dlp-reaction: no-action x-originating-ip: [10.1.200.106] MIME-Version: 1.0 X-Content-Filtered-By: Mailman/MimeDel 2.1.21 Subject: LNK2001 error: unable to find _BdsDxeStrings X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Mar 2017 17:37:26 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hello- We are using EDK2 (version 2.40). In addition to the BdsDxe library define= d by BdsDxe.inf, I've been attempting to create a near - identical copy of = this library file called BdsDxe_Recovery.inf. I've given this unique copy = a new GUID and it matches otherwise identically to BdsDxe in terms of listi= ng the same libraries being used, source, etc. The problem I'm seeing is that at link time, I'm getting this error: c:\bios\Build\ChvTbltDevicePkg\SecureBoot\DEBUG_VS2012x86\IA32\CgmPlatPkg\O= verride\ChvTbltDevicePkg\PlatformDxe\Platform\DEBUG\*.map c:\bios\Build\Chv= TbltDevicePkg\SecureBoot\DEBUG_VS2012x86\IA32\CgmPlatPkg\Override\ChvTbltDe= vicePkg\PlatformDxe\Platform\OUTPUT BdsDxe_Recovery.lib(FrontPage.obj) : error LNK2001: unresolved external sym= bol _BdsDxeStrings c:\bios\Build\ChvTbltDevicePkg\SecureBoot\DEBUG_VS2012x86\IA32\CgmPlatPkg\O= verride\IntelFrameworkModulePkg\Universal\BdsDxe\BdsDxe_Recovery\DEBUG\BdsD= xe_Recovery.dll : fatal error LNK1120: 1 unresolved externals Waiting for thread ending...(3) Generating code c:\bios\Build\ChvTbltDevicePkg\SecureBoot\DEBUG_VS2012x86\IA32\CgmPlatPkg\O= verride\ChvTbltDevicePkg\PlatformDxe\Platform\DEBUG\DxePlatform.map 1 file(s) copied. NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio= 11.0\Vc\bin\link.exe"' : return code '0x460' This error was only introduced after creating my new BdsDxe_Recovery.inf. = Here's a snippet of how I define the module name in my new inf: [Defines] INF_VERSION =3D 0x00010005 BASE_NAME =3D BdsDxe_Recovery FILE_GUID =3D 0A0FDAB8-FA0E-403C-A734-F373F775B95B MODULE_TYPE =3D DXE_DRIVER VERSION_STRING =3D 1.0 ENTRY_POINT =3D BdsInitialize Both BdsDxe.inf and BdsDxe_Recovery.inf list as source a file called FrontP= age.c (which is having the link time issue mentioned above) as that file ma= kes reference to BdsDxeStrings. Further, both modules include as source St= ring.h which externs this as an UINT8 array. Looking at the output of the VFR file, I do see the array is in fact genera= ted and entered in AutoGen.c, found in the same module: // //Unicode String Pack Definition // unsigned char BdsDxeStrings[] =3D { // STRGATHER_OUTPUT_HEADER 0x32, 0x3B, 0x00, 0x00, // PACKAGE HEADER 0x53, 0x1D, 0x00, 0x04, 0x34, 0x00, 0x00, 0x00, 0x34, 0x00, 0x0= 0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0= 0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0= 0, 0x00, 0x01, 0x00, 0x65, 0x6E, 0x2D, 0x55, 0x53, 0x00, ... Any idea why adding another BdsDxe module with a slightly different name wo= uld have such an issue? Thanks. David