From 8e8cc6881836705818ee9cd70bd48c01823ded62 Mon Sep 17 00:00:00 2001 From: Michael D Kinney Date: Wed, 9 Aug 2017 12:19:46 -0700 Subject: [PATCH] QuarkSocPkg/MemoryInit: Remove use of memset()/memcpy() Map the use of memset() and memcpy() to the BaseMemoryLib functions ZeroMem(), SetMem(), and CopyMem(). This fixes GCC build issues with this module. With the remap of the functions, the [BuildOptions] MSFT CC_FLAGS to enable /Oi can also be removed, so the MSFT and GCC builds behave the same. Cc: Kelly Steele Cc: Liming Gao Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael D Kinney Reviewed-by: Kelly Steele --- .../QuarkNorthCluster/MemoryInit/Pei/MemoryInitPei.inf | 6 +----- .../QuarkNorthCluster/MemoryInit/Pei/meminit_utils.h | 10 +++++++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/QuarkSocPkg/QuarkNorthCluster/MemoryInit/Pei/MemoryInitPei.inf b/QuarkSocPkg/QuarkNorthCluster/MemoryInit/Pei/MemoryInitPei.inf index 78821f59a3..05766133ed 100644 --- a/QuarkSocPkg/QuarkNorthCluster/MemoryInit/Pei/MemoryInitPei.inf +++ b/QuarkSocPkg/QuarkNorthCluster/MemoryInit/Pei/MemoryInitPei.inf @@ -1,7 +1,7 @@ ## @file # This is the Memory Initialization Driver for Quark # -# Copyright (c) 2013-2015 Intel Corporation. +# Copyright (c) 2013-2017 Intel Corporation. # # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -74,7 +74,3 @@ [Depex] TRUE - -[BuildOptions] - # /Oi option to use the intrinsic memset function in source code. - MSFT:*_*_*_CC_FLAGS = /Oi diff --git a/QuarkSocPkg/QuarkNorthCluster/MemoryInit/Pei/meminit_utils.h b/QuarkSocPkg/QuarkNorthCluster/MemoryInit/Pei/meminit_utils.h index 04c59f5af0..dcc40c7782 100644 --- a/QuarkSocPkg/QuarkNorthCluster/MemoryInit/Pei/meminit_utils.h +++ b/QuarkSocPkg/QuarkNorthCluster/MemoryInit/Pei/meminit_utils.h @@ -1,6 +1,6 @@ /************************************************************************ * - * Copyright (c) 2013-2015 Intel Corporation. + * Copyright (c) 2013-2017 Intel Corporation. * * This program and the accompanying materials * are licensed and made available under the terms and conditions of the BSD License @@ -90,8 +90,12 @@ void restore_timings(MRCParams_t *mrc_params); void default_timings(MRCParams_t *mrc_params); #ifndef SIM -void *memset(void *d, int c, size_t n); -void *memcpy(void *d, const void *s, size_t n); +// +// Map memset() and memcpy() to BaseMemoryLib functions +// +#include +#define memset(d,c,n) ((c) == 0) ? ZeroMem ((d), (n)) : SetMem ((d), (n), (c)) +#define memcpy(d,s,n) CopyMem ((d), (s), (n)) #endif #endif // _MEMINIT_UTILS_H_