[edk2] [PATCH v3] OvmfPkg/QemuBootOrderLib: Fix NOOPT build failure

Dandan Bi posted 1 patch 7 years, 8 months ago
Failed in applying to current master (apply log)
OvmfPkg/Library/QemuBootOrderLib/ExtraRootBusMap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[edk2] [PATCH v3] OvmfPkg/QemuBootOrderLib: Fix NOOPT build failure
Posted by Dandan Bi 7 years, 8 months ago
This patch is to fix the IA32/NOOPT/VS Toolchain build failure.
The VS2015 failure log as below:
QemuBootOrderLib.lib(ExtraRootBusMap.obj) : 
error LNK2001: unresolved external symbol __allmul
s:\..\Build\OvmfIa32\NOOPT_VS2015\IA32\MdeModulePkg\
Universal\BdsDxe\BdsDxe\DEBUG\BdsDxe.dll : 
fatal error LNK1120: 1 unresolved externals
NMAKE : fatal error U1077: 
'"C:\Program Files\Microsoft Visual Studio 14.0\Vc\bin\link.exe"' : 
return code '0x460'
Stop.

Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Dandan Bi <dandan.bi@intel.com>

Notes:
  V3: Add VS compiler error message in commit log.

---
 OvmfPkg/Library/QemuBootOrderLib/ExtraRootBusMap.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/OvmfPkg/Library/QemuBootOrderLib/ExtraRootBusMap.c b/OvmfPkg/Library/QemuBootOrderLib/ExtraRootBusMap.c
index ec42214..70ba161 100644
--- a/OvmfPkg/Library/QemuBootOrderLib/ExtraRootBusMap.c
+++ b/OvmfPkg/Library/QemuBootOrderLib/ExtraRootBusMap.c
@@ -306,8 +306,8 @@ MapRootBusPosToBusNr (
     return EFI_INVALID_PARAMETER;
   }
   if (RootBusPos > ExtraRootBusMap->Count) {
     return EFI_NOT_FOUND;
   }
-  *RootBusNr = ExtraRootBusMap->BusNumbers[RootBusPos - 1];
+  *RootBusNr = ExtraRootBusMap->BusNumbers[(UINTN)RootBusPos - 1];
   return EFI_SUCCESS;
 }
-- 
1.9.5.msysgit.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [PATCH v3] OvmfPkg/QemuBootOrderLib: Fix NOOPT build failure
Posted by Laszlo Ersek 7 years, 8 months ago
On 02/09/17 03:08, Dandan Bi wrote:
> This patch is to fix the IA32/NOOPT/VS Toolchain build failure.
> The VS2015 failure log as below:
> QemuBootOrderLib.lib(ExtraRootBusMap.obj) : 
> error LNK2001: unresolved external symbol __allmul
> s:\..\Build\OvmfIa32\NOOPT_VS2015\IA32\MdeModulePkg\
> Universal\BdsDxe\BdsDxe\DEBUG\BdsDxe.dll : 
> fatal error LNK1120: 1 unresolved externals
> NMAKE : fatal error U1077: 
> '"C:\Program Files\Microsoft Visual Studio 14.0\Vc\bin\link.exe"' : 
> return code '0x460'
> Stop.

Ah! So after all, it is the 64-bit multiplication implicit to the
subscripting by a UINT64! That's something I'll have to keep in mind.

Reviewed-by: Laszlo Ersek <lersek@redhat.com>

Thanks!
Laszlo

> 
> Cc: Jordan Justen <jordan.l.justen@intel.com>
> Cc: Laszlo Ersek <lersek@redhat.com>
> Cc: Liming Gao <liming.gao@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Dandan Bi <dandan.bi@intel.com>
> 
> Notes:
>   V3: Add VS compiler error message in commit log.
> 
> ---
>  OvmfPkg/Library/QemuBootOrderLib/ExtraRootBusMap.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/OvmfPkg/Library/QemuBootOrderLib/ExtraRootBusMap.c b/OvmfPkg/Library/QemuBootOrderLib/ExtraRootBusMap.c
> index ec42214..70ba161 100644
> --- a/OvmfPkg/Library/QemuBootOrderLib/ExtraRootBusMap.c
> +++ b/OvmfPkg/Library/QemuBootOrderLib/ExtraRootBusMap.c
> @@ -306,8 +306,8 @@ MapRootBusPosToBusNr (
>      return EFI_INVALID_PARAMETER;
>    }
>    if (RootBusPos > ExtraRootBusMap->Count) {
>      return EFI_NOT_FOUND;
>    }
> -  *RootBusNr = ExtraRootBusMap->BusNumbers[RootBusPos - 1];
> +  *RootBusNr = ExtraRootBusMap->BusNumbers[(UINTN)RootBusPos - 1];
>    return EFI_SUCCESS;
>  }
> 

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel