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
This commit is contained in:
Andrew Turner
2026-02-03 14:01:07 +00:00
parent 00f6839213
commit f0516ed465
3 changed files with 14 additions and 3 deletions
+14
View File
@@ -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
-2
View File
@@ -1,3 +1 @@
#include "aarch64/memcpy-advsimd.S"
#include "aarch64/memcpy-mops.S"
#include "aarch64/memmove-mops.S"
-1
View File
@@ -1,2 +1 @@
#include "aarch64/memset.S"
#include "aarch64/memset-mops.S"