diff --git a/lib/physmem.c b/lib/physmem.c
index 0f035edcbe5025c833bcdd318edecc401b6186c1..f21ac243edccc88b86b2ee419c03385c8ad21974 100644
--- a/lib/physmem.c
+++ b/lib/physmem.c
@@ -10,8 +10,9 @@
 
 #include <common.h>
 #include <physmem.h>
+#include <linux/compiler.h>
 
-static phys_addr_t __arch_phys_memset(phys_addr_t s, int c, phys_size_t n)
+phys_addr_t __weak arch_phys_memset(phys_addr_t s, int c, phys_size_t n)
 {
 	void *s_ptr = (void *)(uintptr_t)s;
 
@@ -19,6 +20,3 @@ static phys_addr_t __arch_phys_memset(phys_addr_t s, int c, phys_size_t n)
 	assert(((phys_addr_t)(uintptr_t)(s + n)) == s + n);
 	return (phys_addr_t)(uintptr_t)memset(s_ptr, c, n);
 }
-
-phys_addr_t arch_phys_memset(phys_addr_t s, int c, phys_size_t n)
-	__attribute__((weak, alias("__arch_phys_memset")));