From nobody Sat Apr 11 16:28:55 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ftJyh3bWVz6YkV3 for ; Sat, 11 Apr 2026 16:29:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ftJyh32p0z3NTw for ; Sat, 11 Apr 2026 16:29:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1775924940; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Po15zTpcxQMrCts5XXOrwhHdu+YSp0BrXAuaRQK6Smo=; b=FXPZnrzrWKs0NrCWQcSYJQJjJRje43/BJGeAtF97AFwGUehc/k20zSsiyDJ++DOFrAokWJ c5Xh2F2AAODmDKG80Cccw7WW3tqt/6TqjlwYDXzEdEag7T+8CIGM3+p/Z5e5e8pZJYqKBx LX8WhlCGcfFRWyZZBqda02uTwK4zWtowP6BUaxBaijQ5RBjnk7BaCwbZYGLc4aWJcbztGq QeQotPzpBLyl6fK0230/U/3llyEay+Z8toGnoCFm9tKi6YPnZKsNwqA8XaJFs5T29EeFlz 2PmY5w9z+/FeVi5ZjMpxtBAPzQRJneYv55dtjeEnMx6+Lz/UrNOj5XyhjnG3IA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1775924940; a=rsa-sha256; cv=none; b=GtDUNnp7YFb/7MgQIc0HEb4MOQH8oOYVvWdJVuLMQpHcheob4ePbBDrIaelqEEhF2c/Zwf fDtR2GSJetxfAimurn/fgDEX4B8UXKRfPVCJmGsR5RcXljWUgFfyveX2hFCt83DyTuFkFJ jWgRMh3Q9ukqt12DKweV8ci/8NM+VQ/iN/NPjyihz0g81+v49Y0zsMikx1st6paVJIG3nU /g0mWdO0lJs/lsl/V4TsPD0uvY69xkty0rwyjYvdsPR/yqNEyWbs+yyzFP85noxec91804 kA3FfK4oM31/SyUGJSRVU9Hnd+7iuq+lBSk4A3yyi8Q5CmCtdSdX2RUggnY31A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1775924940; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Po15zTpcxQMrCts5XXOrwhHdu+YSp0BrXAuaRQK6Smo=; b=GJukOC0152+YHr21XOahIEpKIPX4gKJfcecaCIRqIBGMkuMcFOwlf0XfmjVTe/ZOhO0qei SXU6MdbnbSqaYg9fjfHdtbEp1AZhB4RGdWVMwqjkF4cew0eYg5tPYJr6BLr1TCv3S+pV4q 29LPDo6VlTVRtbKBepZsY4bTMqQKpsI+cjGKJG9+pmH6MFspvigpT9Abq6jETydGfGCgde CqUky+STWF3kCbD1wNM7+aG4nGbQdz9roHrZo8VZgQW0kqvW9CbRJPtxeszHRJwfAnOeOt 8FH6/+GWwidVV7JwxvvyREBwCU/JNymyLAtU345lglEJFZbFX6gLMrEbLckUFw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4ftJyh2HZnzdtD for ; Sat, 11 Apr 2026 16:29:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 24858 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 11 Apr 2026 16:28:55 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Cc: Bjoern A. Zeeb From: Xin LI Subject: git: de2ea5423cc6 - main - zstd: disable weak-symbol tracing hooks in the kernel List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: delphij X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: de2ea5423cc63b62e7e42d11b667aa634109fc28 Auto-Submitted: auto-generated Date: Sat, 11 Apr 2026 16:28:55 +0000 Message-Id: <69da76c7.24858.7f9be8f2@gitrepo.freebsd.org> The branch main has been updated by delphij: URL: https://cgit.FreeBSD.org/src/commit/?id=de2ea5423cc63b62e7e42d11b667aa634109fc28 commit de2ea5423cc63b62e7e42d11b667aa634109fc28 Author: Bjoern A. Zeeb AuthorDate: 2026-04-11 16:24:32 +0000 Commit: Xin LI CommitDate: 2026-04-11 16:28:00 +0000 zstd: disable weak-symbol tracing hooks in the kernel zstd's tracing API (zstd_trace.h) declares ZSTD_trace_compress_begin() and friends as __attribute__((weak)) externals, gated on the ZSTD_HAVE_WEAK_SYMBOLS compile-time probe. That probe has covered x86_64 and i386 since at least zstd 1.5.6, and was extended to aarch64 and riscv in 1.5.7. In a static kernel image there is no dynamic linker to patch the PLT GOT entries at runtime. On amd64 the undefined weak symbols resolve directly to NULL, so the "!= NULL" guard in the zstd source correctly suppresses every call through the stubs. On aarch64 and riscv the ABI requires GOT-based indirection for external calls: the PLT stub address is non-NULL, the guard passes, and the call lands in an uninitialized GOT slot. Because this happens before exception handlers are in place the machine resets silently, making the kernel unbootable after the zstd 1.5.7 import. The upstream-supported suppression is ZSTD_NO_TRACE (zstd_internal.h), which skips inclusion of zstd_trace.h entirely and forces ZSTD_TRACE=0. Add it to ZSTD_C alongside the existing ZSTD_* defines, and while here group all three -DZSTD_* flags onto a single line in alphabetical order with ${.IMPSRC} on its own line. Reported by: many Tested by: lwhsu X-MFC-with: c0d9a07101a1 --- sys/conf/kern.pre.mk | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sys/conf/kern.pre.mk b/sys/conf/kern.pre.mk index 871cd1c0705a..3dc1efe3d5d2 100644 --- a/sys/conf/kern.pre.mk +++ b/sys/conf/kern.pre.mk @@ -158,9 +158,11 @@ NORMAL_FWO= ${CC:N${CCACHE_BIN}} -c ${ASM_CFLAGS} ${WERROR} -o ${.TARGET} \ NOSAN_C= ${NORMAL_C:N-fsanitize*:N-fno-sanitize*:N-fasan-shadow-offset*} # for ZSTD in the kernel (include zstd/lib/freebsd before other CFLAGS) -ZSTD_C= ${CC} -c -DZSTD_HEAPMODE=1 -I$S/contrib/zstd/lib/freebsd ${CFLAGS} \ +ZSTD_C= ${CC} -c -I$S/contrib/zstd/lib/freebsd ${CFLAGS} \ -I$S/contrib/zstd/lib -I$S/contrib/zstd/lib/common ${WERROR} \ - -Wno-missing-prototypes -U__BMI__ -DZSTD_NO_INTRINSICS ${.IMPSRC} + -Wno-missing-prototypes -U__BMI__ \ + -DZSTD_HEAPMODE=1 -DZSTD_NO_INTRINSICS -DZSTD_NO_TRACE \ + ${.IMPSRC} # https://github.com/facebook/zstd/commit/812e8f2a [zstd 1.4.1] # "Note that [GCC] autovectorization still does not do a good job on the # optimized version, so it's turned off via attribute and flag. I found