summaryrefslogtreecommitdiffstats
path: root/ArmPkg/Library/CompilerIntrinsicsLib/memset.c
diff options
context:
space:
mode:
Diffstat (limited to 'ArmPkg/Library/CompilerIntrinsicsLib/memset.c')
-rw-r--r--ArmPkg/Library/CompilerIntrinsicsLib/memset.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/memset.c b/ArmPkg/Library/CompilerIntrinsicsLib/memset.c
index 3d417d7972..0d837fcecf 100644
--- a/ArmPkg/Library/CompilerIntrinsicsLib/memset.c
+++ b/ArmPkg/Library/CompilerIntrinsicsLib/memset.c
@@ -31,6 +31,15 @@ void *memset(void *dest, int c, size_t n);
#ifdef __arm__
+//
+// Other modules (such as CryptoPkg/IntrinsicLib) may provide another
+// implementation of memset(), which may conflict with this one if this
+// object was pulled into the link due to the definitions below. So make
+// our memset() 'weak' to let the other implementation take precedence.
+//
+__attribute__((__weak__))
+void *memset(void *dest, int c, size_t n);
+
void __aeabi_memset(void *dest, size_t n, int c)
{
__memset(dest, c, n);