diff options
| author | Andrew Turner <andrew@FreeBSD.org> | 2026-02-03 14:01:07 +0000 |
|---|---|---|
| committer | Andrew Turner <andrew@FreeBSD.org> | 2026-02-03 17:11:50 +0000 |
| commit | f0516ed4652cfb7435f8c5a16b46dc067779a1a8 (patch) | |
| tree | 72eb69d6ae5d32ca21430d42e108f3b4c1b07c7b | |
| parent | 00f68392130cf597c7c76669c63dab26b31630c1 (diff) | |
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
| -rw-r--r-- | lib/libc/aarch64/string/Makefile.inc | 14 | ||||
| -rw-r--r-- | lib/libc/aarch64/string/memcpy.S | 2 | ||||
| -rw-r--r-- | 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" |
