git: 86f325711c07 - main - rtld: silence clang's unterminated-string-initialization warning

From: Alex Richardson <arichardson_at_FreeBSD.org>
Date: Tue, 16 Dec 2025 20:22:44 UTC
The branch main has been updated by arichardson:

URL: https://cgit.FreeBSD.org/src/commit/?id=86f325711c07b723b85c031d581d0a5c1a0964f3

commit 86f325711c07b723b85c031d581d0a5c1a0964f3
Author:     Alex Richardson <arichardson@FreeBSD.org>
AuthorDate: 2025-12-16 18:09:10 +0000
Commit:     Alex Richardson <arichardson@FreeBSD.org>
CommitDate: 2025-12-16 20:21:45 +0000

    rtld: silence clang's unterminated-string-initialization warning
    
    Since the initializer is used in other places where we can't just
    replace it with a char-by-char initializer, this adds a macro for the
    nonstring attribute (match the linuxkpi definition).
    
    Reviewed by:    emaste, jhb
    MFC after:      1 week
    Differential Revision: https://reviews.freebsd.org/D52535
---
 lib/libsysdecode/utrace.c      | 3 ++-
 libexec/rtld-elf/rtld.c        | 3 ++-
 libexec/rtld-elf/rtld_utrace.h | 2 +-
 3 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/lib/libsysdecode/utrace.c b/lib/libsysdecode/utrace.c
index 67ba86bfbf7b..8932f4b7e58f 100644
--- a/lib/libsysdecode/utrace.c
+++ b/lib/libsysdecode/utrace.c
@@ -169,7 +169,8 @@ sysdecode_utrace(FILE *fp, void *p, size_t len)
 	struct utrace_malloc um;
 	struct utrace_malloc32 *pm;
 #endif
-	static const char rtld_utrace_sig[RTLD_UTRACE_SIG_SZ] = RTLD_UTRACE_SIG;
+	static const char rtld_utrace_sig[RTLD_UTRACE_SIG_SZ] __nonstring =
+	    RTLD_UTRACE_SIG;
 
 	if (len == sizeof(struct utrace_rtld) && bcmp(p, rtld_utrace_sig,
 	    sizeof(rtld_utrace_sig)) == 0)
diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c
index 8ac897508870..39fb6bc5fb31 100644
--- a/libexec/rtld-elf/rtld.c
+++ b/libexec/rtld-elf/rtld.c
@@ -348,7 +348,8 @@ ld_utrace_log(int event, void *handle, void *mapbase, size_t mapsize,
     int refcnt, const char *name)
 {
 	struct utrace_rtld ut;
-	static const char rtld_utrace_sig[RTLD_UTRACE_SIG_SZ] = RTLD_UTRACE_SIG;
+	static const char rtld_utrace_sig[RTLD_UTRACE_SIG_SZ] __nonstring =
+	    RTLD_UTRACE_SIG;
 
 	memset(&ut, 0, sizeof(ut));	/* clear holes */
 	memcpy(ut.sig, rtld_utrace_sig, sizeof(ut.sig));
diff --git a/libexec/rtld-elf/rtld_utrace.h b/libexec/rtld-elf/rtld_utrace.h
index c14a62ddcb0b..dee807cc0098 100644
--- a/libexec/rtld-elf/rtld_utrace.h
+++ b/libexec/rtld-elf/rtld_utrace.h
@@ -49,7 +49,7 @@
 #define	RTLD_UTRACE_SIG			"RTLD"
 
 struct utrace_rtld {
-	char sig[RTLD_UTRACE_SIG_SZ];
+	char sig[RTLD_UTRACE_SIG_SZ] __nonstring;
 	int event;
 	void *handle;
 	void *mapbase;			/* Used for 'parent' and 'init/fini' */