File riscv-redir-memcpy-generic.patch of Package glibc

From 60cabd0464c6722d4e1f13bbbeef191ea40ef2ef Mon Sep 17 00:00:00 2001
From: Adhemerval Zanella Netto <adhemerval.zanella@linaro.org>
Date: Sat, 21 Mar 2026 08:11:06 -0600
Subject: [PATCH] riscv: Resolve calls to memcpy using memcpy-generic in early
 startup

This patch from Adhemerval sets up the ifunc redirections so that we
resolve memcpy to memcpy_generic in early startup.  This avoids infinite
recursion for memcpy calls before the loader is fully initialized.

Tested-by: Jeff Law <jeffrey.law@oss.qualcomm.com>
(cherry picked from commit 0a9e54d40a4321ebf7d87cdbc0868c43d1e8a657)
---
 elf/dl-reloc-static-pie.c                        | 1 +
 sysdeps/riscv/multiarch/dl-symbol-redir-ifunc.h  | 1 +
 sysdeps/unix/sysv/linux/riscv/multiarch/Makefile | 1 +
 3 files changed, 3 insertions(+)

diff --git a/elf/dl-reloc-static-pie.c b/elf/dl-reloc-static-pie.c
index bdff2b5ee2..63ce609024 100644
--- a/elf/dl-reloc-static-pie.c
+++ b/elf/dl-reloc-static-pie.c
@@ -25,6 +25,7 @@
 
 #include <dl-machine.h>
 #include <dl-debug.h>
+#include <dl-symbol-redir-ifunc.h>
 
 #define RESOLVE_MAP(map, scope, sym, version, flags) map
 #include "dynamic-link.h"
diff --git a/sysdeps/riscv/multiarch/dl-symbol-redir-ifunc.h b/sysdeps/riscv/multiarch/dl-symbol-redir-ifunc.h
index 24b78711e3..69a0790838 100644
--- a/sysdeps/riscv/multiarch/dl-symbol-redir-ifunc.h
+++ b/sysdeps/riscv/multiarch/dl-symbol-redir-ifunc.h
@@ -21,6 +21,7 @@
 
 #ifndef SHARED
 asm ("memset = __memset_generic");
+asm ("memcpy = __memcpy_generic");
 #endif
 
 #endif
diff --git a/sysdeps/unix/sysv/linux/riscv/multiarch/Makefile b/sysdeps/unix/sysv/linux/riscv/multiarch/Makefile
index a865090a53..a033ea9569 100644
--- a/sysdeps/unix/sysv/linux/riscv/multiarch/Makefile
+++ b/sysdeps/unix/sysv/linux/riscv/multiarch/Makefile
@@ -11,4 +11,5 @@ sysdep_routines += \
 CFLAGS-memcpy_noalignment.c += -mno-strict-align
 # Called during static initialization
 CFLAGS-memset-generic.c += $(no-stack-protector)
+CFLAGS-memcpy-generic.c += $(no-stack-protector)
 endif
-- 
2.53.0

openSUSE Build Service is sponsored by