git: f0516ed4652c - main - libc/aarch64: Split out the MOPS functions
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 03 Feb 2026 17:27:44 UTC
The branch main has been updated by andrew:
URL: https://cgit.FreeBSD.org/src/commit/?id=f0516ed4652cfb7435f8c5a16b46dc067779a1a8
commit f0516ed4652cfb7435f8c5a16b46dc067779a1a8
Author: Andrew Turner <andrew@FreeBSD.org>
AuthorDate: 2026-02-03 14:01:07 +0000
Commit: Andrew Turner <andrew@FreeBSD.org>
CommitDate: 2026-02-03 17:11:50 +0000
libc/aarch64: Split out the MOPS functions
This allows static binaries to only include the functions they
reference.
Reviewed by: imp
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D54775
---
lib/libc/aarch64/string/Makefile.inc | 14 ++++++++++++++
lib/libc/aarch64/string/memcpy.S | 2 --
lib/libc/aarch64/string/memset.S | 1 -
3 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/lib/libc/aarch64/string/Makefile.inc b/lib/libc/aarch64/string/Makefile.inc
index faf2f4566b30..20a844f80e17 100644
--- a/lib/libc/aarch64/string/Makefile.inc
+++ b/lib/libc/aarch64/string/Makefile.inc
@@ -14,6 +14,11 @@ AARCH64_STRING_FUNCS= \
strnlen \
strrchr
+AARCH64_STRING_IFUNC_FILES= \
+ memcpy-mops.S \
+ memmove-mops.S \
+ memset-mops.S
+
# SIMD-enhanced routines not derived from Arm's code
MDSRCS+= \
memchr.S \
@@ -58,6 +63,15 @@ MDSRCS+= ${FUNC}.S
CFLAGS.${FUNC}.S+=-I${SRCTOP}/contrib/arm-optimized-routines/string
.endfor
+.for FILE in ${AARCH64_STRING_IFUNC_FILES}
+${FILE}: ${LIBC_SRCTOP}/aarch64/string/Makefile.inc
+ printf '/* %sgenerated by libc/aarch64/string/Makefile.inc */\n' @ > ${.TARGET}
+ printf '#include "aarch64/%s"\n' ${FILE} >> ${.TARGET}
+CLEANFILES+= ${FILE}
+MDSRCS+= ${FILE}
+CFLAGS.${FILE}+=-I${SRCTOP}/contrib/arm-optimized-routines/string
+.endfor
+
# Several files are wrappers in the src tree for the implementation from
# arm-optimized-routines
CFLAGS.memchr.S+=-I${SRCTOP}/contrib/arm-optimized-routines/string
diff --git a/lib/libc/aarch64/string/memcpy.S b/lib/libc/aarch64/string/memcpy.S
index 06598d59bcf2..c4601d158d6b 100644
--- a/lib/libc/aarch64/string/memcpy.S
+++ b/lib/libc/aarch64/string/memcpy.S
@@ -1,3 +1 @@
#include "aarch64/memcpy-advsimd.S"
-#include "aarch64/memcpy-mops.S"
-#include "aarch64/memmove-mops.S"
diff --git a/lib/libc/aarch64/string/memset.S b/lib/libc/aarch64/string/memset.S
index dfe1c54273b9..acf707cdb7ec 100644
--- a/lib/libc/aarch64/string/memset.S
+++ b/lib/libc/aarch64/string/memset.S
@@ -1,2 +1 @@
#include "aarch64/memset.S"
-#include "aarch64/memset-mops.S"