From 4f7531f655fae2d0cc481ba74ba6fba7ba4a3908 Mon Sep 17 00:00:00 2001 From: kettenis <> Date: Tue, 30 Jun 2026 19:18:54 +0000 Subject: LLVM now emits calls to strlen(3) and wcslen(3). Redirect those calls to our hidden aliases to prevent unnecessary PLT entries (like we already do for memmove(3), memcpy(4) and memset(3)). ok deraadt@ --- src/lib/libc/include/namespace.h | 6 +++++- src/lib/libc/string/strlen.c | 4 ++-- src/lib/libc/string/wcslen.c | 4 ++-- 3 files changed, 9 insertions(+), 5 deletions(-) (limited to 'src/lib') diff --git a/src/lib/libc/include/namespace.h b/src/lib/libc/include/namespace.h index cc83735b90..9058230429 100644 --- a/src/lib/libc/include/namespace.h +++ b/src/lib/libc/include/namespace.h @@ -1,4 +1,4 @@ -/* $OpenBSD: namespace.h,v 1.17 2025/10/23 19:06:10 miod Exp $ */ +/* $OpenBSD: namespace.h,v 1.18 2026/06/30 19:18:53 kettenis Exp $ */ #ifndef _LIBC_NAMESPACE_H_ #define _LIBC_NAMESPACE_H_ @@ -85,11 +85,15 @@ BUILTIN void *memmove(void *, const void *, __size_t); BUILTIN void *memcpy(void *__restrict, const void *__restrict, __size_t); BUILTIN void *memset(void *, int, __size_t); +BUILTIN __size_t strlen(const char *); +BUILTIN __size_t wcslen(const __wchar_t *); BUILTIN void __stack_smash_handler(const char [], int __unused); #if !defined(__clang__) PROTO_NORMAL(memmove); PROTO_NORMAL(memcpy); PROTO_NORMAL(memset); +PROTO_NORMAL(strlen); +PROTO_NORMAL(wcslen); PROTO_NORMAL(__stack_smash_handler); #endif #undef BUILTIN diff --git a/src/lib/libc/string/strlen.c b/src/lib/libc/string/strlen.c index a5721d3e7f..cf3cd8cf86 100644 --- a/src/lib/libc/string/strlen.c +++ b/src/lib/libc/string/strlen.c @@ -1,4 +1,4 @@ -/* $OpenBSD: strlen.c,v 1.9 2015/08/31 02:53:57 guenther Exp $ */ +/* $OpenBSD: strlen.c,v 1.10 2026/06/30 19:18:54 kettenis Exp $ */ /*- * Copyright (c) 1990, 1993 @@ -41,4 +41,4 @@ strlen(const char *str) return (s - str); } -DEF_STRONG(strlen); +DEF_BUILTIN(strlen); diff --git a/src/lib/libc/string/wcslen.c b/src/lib/libc/string/wcslen.c index 16d4bba128..937d352e31 100644 --- a/src/lib/libc/string/wcslen.c +++ b/src/lib/libc/string/wcslen.c @@ -1,4 +1,4 @@ -/* $OpenBSD: wcslen.c,v 1.4 2015/09/12 16:23:14 guenther Exp $ */ +/* $OpenBSD: wcslen.c,v 1.5 2026/06/30 19:18:54 kettenis Exp $ */ /* $NetBSD: wcslen.c,v 1.2 2001/01/03 14:29:36 lukem Exp $ */ /*- @@ -42,4 +42,4 @@ wcslen(const wchar_t *s) return p - s; } -DEF_STRONG(wcslen); +DEF_BUILTIN(wcslen); -- cgit v1.2.3-55-g6feb