From nobody Sat Mar 7 00:12:14 2026 X-Original-To: dev-commits-src-branches@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 4fSNxp6xw6z6TjW9 for ; Sat, 07 Mar 2026 00:12:14 +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 4fSNxp5m02z43Fx for ; Sat, 07 Mar 2026 00:12:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772842334; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NL/hI1/VmQskL4yGqFTauxPL0vXbeYFvWM44T3nUdSU=; b=QAQmRNvNUUxTX/mg8rl35oGlsRxiAsTNWzWBCMv5lWaXO54A+EFN4WDrJdvxtTfcKcxZxJ cjgYDOQn+bE+niWuKmiM86ajQePDgZPfiOcwY/ewbdlEbZ8xDxxjbiGA91v/xSX3fzhOE6 GkYjnsaFXwPFd5F+sRK6V9bZexFud8ggXwquIl8Ra5wCkP7Jn+Ao/wYrjWPZp574XcwGO9 DL9MtU0xvQHNQ2vZ+Noj/iyMU6keL0m+FU6E3U5P9nhdpH+vL0aCSW0je5E7FPFHNAVM4i lYYw6xLLLiL13vu3tciy1/NwOVjZtamSLvDKwJYGpsCCsD2kwBAAP9Ixqp9Zig== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772842334; a=rsa-sha256; cv=none; b=iDxVxh05l9/Jeu/PgPScrQmdGv13CEcnH9uf4kFeMW2ia3fqM/YrDI9fBE9f4HhwME6mTV 8ltyrC7wlnf7B75WYnUKGh1Ps76X4XAlSB7cfOyGTP5A+yierNu7ga8E3sR6xW7qk24+nr 7meOCWYp8z1aNuKyjI7zs/fmPYxrhirJDpcKhKWpqkZSCFVKcE4fcrFXjZu+DswOGizJaa nzqEc2mtebuO95HzzHIviL0pIPsNfWM3wG2vv4oQ2W2uVmLReSPpf9zHr5DPVZq+ImxBe8 a1PBC6IETSTH/cWAQyuChe1GxC+9ZST4RJwOZdeKA7D19RwClqyvBbAHoAIf4A== 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=1772842334; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NL/hI1/VmQskL4yGqFTauxPL0vXbeYFvWM44T3nUdSU=; b=Yh6vC9qRNjUmxNqKuPs9KKQpxncJ0d+zt3PuTnisoj+qA94mC4bEShoyFKSZXJi5jCdFVF Le5HxRob2CEx28sueneX46r797OgosjkjhCi8iatoaZHBczCy5b72f7Scj2O36docH3GjH iV+CB1bQIikkkDzB/fJc92a3+C3ILvjGHq1c5e5O1IVF80m98qx5kHAEu8/PxQtsabZiTX FL5O0VLshm7Ue5csMJjLnjDCjkG8kzqwo8SA5hCG9rF4dfHpdAu6ACbSnzwye7KS4iPAz5 7cear0GWpbSSj3NyDK3Hqa+WsqwLQYgivjj7Jh6/mJMwzR/nD4MFKOrbtC9IqQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fSNxp5KkLzlWm for ; Sat, 07 Mar 2026 00:12:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 18d5d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sat, 07 Mar 2026 00:12:14 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kirk McKusick Subject: git: b7a7d51107f3 - stable/15 - Refinements to the output when the EXTERROR_VERBOSE environment is set List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mckusick X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: b7a7d51107f37a2753921f18478341a92662066a Auto-Submitted: auto-generated Date: Sat, 07 Mar 2026 00:12:14 +0000 Message-Id: <69ab6d5e.18d5d.749fc5e6@gitrepo.freebsd.org> The branch stable/15 has been updated by mckusick: URL: https://cgit.FreeBSD.org/src/commit/?id=b7a7d51107f37a2753921f18478341a92662066a commit b7a7d51107f37a2753921f18478341a92662066a Author: Kirk McKusick AuthorDate: 2026-02-26 06:20:12 +0000 Commit: Kirk McKusick CommitDate: 2026-03-06 21:13:28 +0000 Refinements to the output when the EXTERROR_VERBOSE environment is set Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D55494 Sponsored-by: Netflix (cherry picked from commit 6fd98877de633f5ec6f028e78d5a2d94527d63d0) --- lib/libc/gen/err.3 | 8 +++++++- lib/libc/gen/uexterr_format.c | 28 ++++++++++++++++++++-------- 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/lib/libc/gen/err.3 b/lib/libc/gen/err.3 index 70a214152a19..2df03c2dcdde 100644 --- a/lib/libc/gen/err.3 +++ b/lib/libc/gen/err.3 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd March 29, 2012 +.Dd February 23, 2026 .Dt ERR 3 .Os .Sh NAME @@ -128,6 +128,12 @@ environment variable is present, an additional report is printed. The report includes at least the category of the error, the name of the source file (if known by the used version of libc), the source line number, and parameters. +If the +.Ev EXTERROR_VERBOSE +environment variable is present and set to "brief", +the report adds only the name of +the source file (if known by the used version of libc) +and the source line number. The format of the printed string is not contractual and might be changed. .Pp In the case of the diff --git a/lib/libc/gen/uexterr_format.c b/lib/libc/gen/uexterr_format.c index c1974f3c361a..308220adea1f 100644 --- a/lib/libc/gen/uexterr_format.c +++ b/lib/libc/gen/uexterr_format.c @@ -35,13 +35,16 @@ static const char exterror_verbose_name[] = "EXTERROR_VERBOSE"; enum exterr_verbose_state { EXTERR_VERBOSE_UNKNOWN = 100, EXTERR_VERBOSE_DEFAULT, - EXTERR_VERBOSE_ALLOW, + EXTERR_VERBOSE_ALLOW_BRIEF, + EXTERR_VERBOSE_ALLOW_FULL, }; static enum exterr_verbose_state exterror_verbose = EXTERR_VERBOSE_UNKNOWN; static void exterr_verbose_init(void) { + const char *v; + /* * No need to care about thread-safety, the result is * idempotent. @@ -50,8 +53,9 @@ exterr_verbose_init(void) return; if (issetugid()) { exterror_verbose = EXTERR_VERBOSE_DEFAULT; - } else if (getenv(exterror_verbose_name) != NULL) { - exterror_verbose = EXTERR_VERBOSE_ALLOW; + } else if ((v = getenv(exterror_verbose_name)) != NULL) { + exterror_verbose = strcmp(v, "brief") == 0 ? + EXTERR_VERBOSE_ALLOW_BRIEF : EXTERR_VERBOSE_ALLOW_FULL; } else { exterror_verbose = EXTERR_VERBOSE_DEFAULT; } @@ -78,13 +82,21 @@ __uexterr_format(const struct uexterror *ue, char *buf, size_t bufsz) strlcpy(buf, "", bufsz); } - if (exterror_verbose == EXTERR_VERBOSE_ALLOW || !has_msg) { + if (exterror_verbose > EXTERR_VERBOSE_DEFAULT || !has_msg) { char lbuf[128]; - snprintf(lbuf, sizeof(lbuf), - "errno %d category %u (src sys/%s:%u) p1 %#jx p2 %#jx", - ue->error, ue->cat, cat_to_filename(ue->cat), - ue->src_line, (uintmax_t)ue->p1, (uintmax_t)ue->p2); +#define SRC_FMT "(src sys/%s:%u)" + if (exterror_verbose == EXTERR_VERBOSE_ALLOW_BRIEF) { + snprintf(lbuf, sizeof(lbuf), SRC_FMT, + cat_to_filename(ue->cat), ue->src_line); + } else if (!has_msg || + exterror_verbose == EXTERR_VERBOSE_ALLOW_FULL) { + snprintf(lbuf, sizeof(lbuf), + "errno %d category %u " SRC_FMT " p1 %#jx p2 %#jx", + ue->error, ue->cat, cat_to_filename(ue->cat), + ue->src_line, (uintmax_t)ue->p1, (uintmax_t)ue->p2); + } +#undef SRC_FMT if (has_msg) strlcat(buf, " ", bufsz); strlcat(buf, lbuf, bufsz);